JavaScript - MDN Web Docs
文章推薦指數: 80 %
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
延伸文章資訊
- 1在瀏覽器中啟用JavaScript - Google AdSense說明
您必須啟用瀏覽器的JavaScript 功能,才能看到網站上的Google 廣告。 在Google Chrome 中啟用JavaScript. 在電腦上開啟Chrome。 按一下 更多 接下來 ...
- 2什麼是JavaScript? - AWS
JavaScript 引擎是執行JavaScript 程式碼的電腦程式。最初的JavaScript 引擎只是解譯器,但所有現代引擎都使用即時或執行時間編譯來提高效能。 用戶端JavaScript.
- 3JavaScript 基礎- 學習該如何開發Web
JavaScript 是一個可以幫您在網站裡加入互動功能的程式語言(舉例來說,一個遊戲可能會在按鈕按下或資料被輸入表單內時回應、動態更改樣式、以及展示 ...
- 4JavaScript - MDN Web Docs
JavaScript (簡稱JS) 是具有一級函數(First-class functions) 的輕量級、直譯式或即時編譯(JIT-compiled)的程式語言。它因為用作網頁的腳本語言而大 ...
- 5如何在Windows 中啟用JavaScript
本文介紹了使用者允許Internet 區域中的所有網站在Internet Explorer、Chrome 和Firefox 中運行JavaScript 的步驟。