JavaScript - MDN Web Docs

文章推薦指數: 80 %
投票人數:10人

JavaScript (簡稱JS) 是具有一級函數(First-class functions) 的輕量級、直譯式或即時編譯(JIT-compiled)的程式語言。

它因為用作網頁的腳本語言而大 ... SkiptomaincontentSkiptosearchSkiptoselectlanguage給開發者的網頁技術文件JavaScriptArticleActions正體中文(繁體)ThispagewastranslatedfromEnglishbythecommunity.LearnmoreandjointheMDNWebDocscommunity.教學參考工具與資源RelatedTopics JavaScript Tutorials: Completebeginners JavaScriptbasics JavaScriptfirststeps JavaScriptbuildingblocks IntroducingJavaScriptobjects JavaScriptGuide Introduction Grammarandtypes Controlflowanderrorhandling Loopsanditeration Functions Expressionsandoperators Numbersanddates Textformatting Regularexpressions Indexedcollections Keyedcollections Workingwithobjects Detailsoftheobjectmodel Usingpromises Iteratorsandgenerators Metaprogramming JavaScriptmodules Intermediate Client-sideJavaScriptframeworks Client-sidewebAPIs Are-introductiontoJavaScript JavaScriptdatastructures Equalitycomparisonsandsameness Closures Advanced Inheritanceandtheprototypechain Strictmode JavaScripttypedarrays MemoryManagement ConcurrencymodelandEventLoop References: Built-inobjects AggregateErrorArrayArrayBufferAsyncFunctionAtomicsBigIntBigInt64ArrayBigUint64ArrayBooleanDataViewDatedecodeURI()decodeURIComponent()encodeURI()encodeURIComponent()Error Deprecated escape()eval()EvalErrorFinalizationRegistryFloat32ArrayFloat64ArrayFunctionGeneratorGeneratorFunctionglobalThisInfinityInt16ArrayInt32ArrayInt8ArrayInternalErrorIntlisFinite()isNaN()JSONMapMathNaNNumberObjectparseFloat()parseInt()PromiseProxyRangeErrorReferenceErrorReflectRegExpSetSharedArrayBufferStringSymbolSyntaxErrorTypedArrayTypeErrorUint16ArrayUint32ArrayUint8ArrayUint8ClampedArrayundefined Deprecated unescape()URIErrorWeakMapWeakRefWeakSetWebAssembly Expressions&operators Addition(+)Additionassignment(+=)Assignment(=)asyncfunctionexpressionawaitBitwiseAND(&)BitwiseANDassignment(&=)BitwiseNOT(~)BitwiseOR(|)BitwiseORassignment(|=)BitwiseXOR(^)BitwiseXORassignment(^=)classexpressionCommaoperator(,)Conditional(ternary)operatorDecrement(--)deleteoperatorDestructuringassignmentDivision(/)Divisionassignment(/=)Equality(==)Exponentiation(**)Exponentiationassignment(**=)Functionexpressionfunction*expressionGreaterthan(>)Greaterthanorequal(>=)Groupingoperator()importimport.metainoperatorIncrement(++)Inequality(!=)instanceofLeftshift(<>)Rightshiftassignment(>>=)Spreadsyntax(...)Strictequality(===)Strictinequality(!==)Subtraction(-)Subtractionassignment(-=)superthistypeofUnarynegation(-)Unaryplus(+)Unsignedrightshift(>>>)Unsignedrightshiftassignment(>>>=)voidoperatoryieldyield* Statements&declarations asyncfunctionblockbreakclassconstcontinuedebuggerdo...whileemptyexportforforawait...offor...infor...offunctiondeclarationfunction*if...elseimportlabelletreturnswitchthrowtry...catchvarwhile Deprecated with Functions TheargumentsobjectArrowfunctionexpressionsDefaultparametersgetterMethoddefinitionsRestparameterssetter Classes ClassstaticinitializationblocksconstructorextendsPrivateclassfeaturesPublicclassfieldsstatic Errors Warning:-file-isbeingassigneda//#sourceMappingURL,butalreadyhasoneTypeError:invalidArray.prototype.sortargumentWarning:08/09isnotalegalECMA-262octalconstantRangeError:radixmustbeanintegerSyntaxError:invalidregularexpressionflag"x"SyntaxError:returnnotinfunctionRangeError:BigIntdivisionbyzeroRangeError:BigIntnegativeexponentTypeError:X.prototype.ycalledonincompatibletypeReferenceError:can'taccesslexicaldeclaration'X'beforeinitializationTypeError:can'taccessproperty"x"of"y"TypeError:can'tassigntoproperty"x"on"y":notanobjectRangeError:xcan'tbeconvertedtoBigIntbecauseitisn'tanintegerTypeError:can'tconvertBigInttonumberTypeError:can'tconvertxtoBigIntTypeError:can'tdefineproperty"x":"obj"isnotextensibleTypeError:property"x"isnon-configurableandcan'tbedeletedTypeError:can'tredefinenon-configurableproperty"x"TypeError:cyclicobjectvalueTypeError:can'taccessdeadobjectSyntaxError:applyingthe'delete'operatortoanunqualifiednameisdeprecatedReferenceError:deprecatedcallerorargumentsusageWarning:expressionclosuresaredeprecatedSyntaxError:"0"-prefixedoctalliteralsandoctalescapeseq.aredeprecatedSyntaxError:Using//@toindicatesourceURLpragmasisdeprecated.Use//#insteadWarning:String.xisdeprecated;useString.prototype.xinsteadWarning:Date.prototype.toLocaleFormatisdeprecatedSyntaxError:testforequality(==)mistypedasassignment(=)?TypeError:settinggetter-onlyproperty"x"SyntaxError:Unexpected'#'usedoutsideofclassbodySyntaxError:identifierstartsimmediatelyafternumericliteralSyntaxError:illegalcharacterTypeError:cannotuse'in'operatortosearchfor'x'in'y'RangeError:invalidarraylengthReferenceError:invalidassignmentleft-handsideSyntaxError:invalidBigIntsyntaxTypeError:invalidassignmenttoconst"x"RangeError:invaliddateSyntaxError:for-inloopheaddeclarationsmaynothaveinitializersSyntaxError:adeclarationintheheadofafor-ofloopcan'thaveaninitializerTypeError:invalid'instanceof'operand'x'TypeError:'x'isnotiterableSyntaxError:JSON.parse:badparsingSyntaxError:MalformedformalparameterURIError:malformedURIsequenceSyntaxError:missing]afterelementlistSyntaxError:missing:afterpropertyidSyntaxError:missing}afterfunctionbodySyntaxError:missing}afterpropertylistSyntaxError:missingformalparameterSyntaxError:missing=inconstdeclarationSyntaxError:missingnameafter.operatorSyntaxError:missing)afterargumentlistSyntaxError:missing)afterconditionSyntaxError:missing;beforestatementTypeError:MoreargumentsneededRangeError:repeatcountmustbenon-negativeTypeError:"x"isnotanon-nullobjectTypeError:"x"hasnopropertiesSyntaxError:missingvariablenameTypeError:can'tdeletenon-configurablearrayelementRangeError:argumentisnotavalidcodepointTypeError:"x"isnotaconstructorTypeError:"x"isnotafunctionReferenceError:"x"isnotdefinedRangeError:precisionisoutofrangeError:Permissiondeniedtoaccessproperty"x"TypeError:"x"isread-onlySyntaxError:redeclarationofformalparameter"x"TypeError:ReduceofemptyarraywithnoinitialvalueSyntaxError:"x"isareservedidentifierRangeError:repeatcountmustbelessthaninfinityWarning:unreachablecodeafterreturnstatementSyntaxError:"usestrict"notallowedinfunctionwithnon-simpleparametersInternalError:toomuchrecursionReferenceError:assignmenttoundeclaredvariable"x"ReferenceError:referencetoundefinedproperty"x"SyntaxError:UnexpectedtokenTypeError:"x"is(not)"y"SyntaxError:functionstatementrequiresanameSyntaxError:unterminatedstringliteral Misc JavaScripttechnologiesoverview Lexicalgrammar JavaScriptdatastructures Enumerabilityandownershipofproperties Iterationprotocols Strictmode Transitioningtostrictmode Templateliterals Deprecatedfeatures 教學參考工具與資源JavaScript JavaScript(簡稱JS)是具有一級函數(First-classfunctions)的輕量級、直譯式或即時編譯(JIT-compiled)的程式語言。

它因為用作網頁的腳本語言而大為知名,但也用於許多非瀏覽器的環境,像是node.js、ApacheCouchDB。

JavaScript是一個基於原型的(Prototype-based(en-US))、多範型的、動態語言,支援物件導向、指令式以及宣告式(如函數式程式設計)風格。

閱讀關於JavaScript以取得更多資訊。

本章節主要說明JavaScript,不涉及網頁特有項目或主機環境。

有關網頁特有的APIs,請參考WebAPI和DOM。

JavaScript所採用的標準是ECMAScript,自2012年起,所有現代的瀏覽器均已全面支援ECMAScript5.1。

較老舊的瀏覽器最少也會支援ECMAScript3。

ECMAInternational於2015年6月17日發布第六版的ECMAScript,其正式名稱是ECMAScript2015,原先被稱作ECMAScript6或ES6。

從那時起,ECMAScript標準的發布週期是一年,本文件參考了最新的草稿版本,也就是目前的ECMAScript2017。

別搞混了JavaScript和Java程式語言。

雖然"Java"和"JavaScript"都是Oracle公司在美國和其他國家的商標或註冊商標,但兩個語言有著非常不同的語法、語意和用途。

教學透過指南和教學來學習編寫JavaScript。

給完全新手如果你想學習JavaScript但過去沒有JavaScript或程式設計經驗,請前往JavaScrip-動態的用戶端指令。

該處完整單元如下: JavaScript入門 說明一些基本問題像是「什麼是JavaScript?」、「它看來像什麼?」、「它能做什麼?」,也討論JavaScript的主要特色,例如變數、字串、數值以及陣列。

JavaScript組成元素 繼續我們對JavaScript主要基本特色的說明,焦點轉向經常碰到的程式碼區塊類型,像是條件式陳述、迴圈、函數以及事件。

介紹JavaScript物件 如果你想加深對JavaScript語言的認識並撰寫更有效率的程式,理解JavaScript的物件導向特質是件重要的事。

JavaScript指南 JavaScript指南 更為詳細的JavaScript語言指南,供過去有JavaScript或其他語言的程式設計經驗的人看。

中階 客戶端webAPIs 在為網站或應用程序編寫客戶端JavaScript時,您將很快遇到應用程式介面(API)。

API是應用程式介面,用於操作運行站點的瀏覽器和操作系統的不同方面,或操縱來自其他網站或服務的資料。

在本單元中,我們將探討API是什麼,以及如何使用您在開發工作中經常遇到的一些最常見的API。

重新介紹JavaScript 為了那些以為他們懂JavaScript的人寫的簡介。

JavaScript資料結構 簡介在JavaScript可用的資料結構。

相等值比較和相等度 JavaScript提供了三種不同的數值比較方式:嚴謹的相等用===,寬鬆的相等用==,以及Object.is()(en-US)方法。

閉包(Closure) 閉包(Closure)是函式以及該宣告函式所包含的作用域環境(lexicalenvironment)的組合。

進階 繼承與原型鍊 對於原型繼承的常見的迷思和誤解。

嚴謹模式 嚴謹模式會禁止您使用未初始化過的變數。

這樣的限制源自於ECMAScript5的規範,為了提高效率和簡化偵錯。

JavaScript型別陣列 JavaScript類型陣列提供一個存取二進制資料的機制。

記憶體管理 JavaScript的記憶體生命週期和垃圾回收機制。

併行模組和事件循環 JavaScript具有基於「事件循環」的併行模組。

參考瀏覽完整的JavaScript參考文件。

標準內建物件 瞭解標準內建物件:Array、Boolean、Date、Error、Function、JSON、Math、Number、Object、RegExp、String、Map、Set、WeakMap、WeakSet等等。

表式法與運算子 瞭解更多JavaScript運算子的行為:instanceof(en-US)、typeof、new(en-US)、this、運算子優先序等等。

敘述和宣告 瞭解do-while(en-US)、for-in、for-of(en-US)、try-catch(en-US)、let、var、const、if-else、switch和其他JavaScript敘述和關鍵字的運作方式。

函數 瞭解如何運用函數來開發你的應用程式。

工具與資源有用的工具和資源幫助你更好的撰寫及除錯JavaScript程式碼。

Firefox開發工具 程式碼速記本(Scratchpad)、網頁主控台(WebConsole)、JavaScript效能分析器(JavaScriptProfiler)(en-US)、除錯器(Debugger)等等。

JavaScriptShell JavaScriptShell讓你更快的測試片段的JavaScript。

TogetherJSPaste 合作更簡單了。

藉著在你的網站增加TogetherJS,你的用戶們能在網站上互助inrealtime! StackOverflow StackOverflow上有關JavaScript的問題。

JavaScript版本和發行說明 瀏覽JavaScript的功能歷史和兼容狀態。

JSFiddle 編輯JavaScript、CSS、HTML並取得及時結果。

可以使用外部資源和與在線上與你的夥伴協作。

Foundaproblemwiththispage?EditonGitHubSourceonGitHubReportaproblemwiththiscontentonGitHubWanttofixtheproblemyourself?SeeourContributionguide.Lastmodified:2022年6月30日,byMDNcontributors



請為這篇文章評分?