運算式與運算子- JavaScript

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

在JavaScript 中基本的關鍵字與一般的運算式。

this: this 關鍵字可以參考執行函數的所在位置。

function (en-US): function 關鍵字可以定義一個函數 ... SkiptomaincontentSkiptosearchSkiptoselectlanguage給開發者的網頁技術文件JavaScriptJavaScript參考文件運算式與運算子ArticleActions正體中文(繁體)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中基本的關鍵字與一般的運算式。

this this關鍵字可以參考執行函數的所在位置。

function(en-US) function關鍵字可以定義一個函數運算式。

class(en-US) class關鍵字可以定義一個類別運算式。

function*(en-US) function*關鍵字可以定義一個Generator函數運算式 yield(en-US) 暫停與繼續一個產生器(Generator)函數。

yield*(en-US) 轉交另一個產生器(Generator)函數或可迭代(Iterable)的物件。

Experimental asyncfunction* async函數可以定義一個非同步函數運算式。

Experimental await 暫停與繼續一個非同步函數並等候承諾的結果/拒絕。

[] 陣列初始化/書寫格式。

{} 物件初始化/書寫格式。

/ab+c/i 正規表示法書寫格式。

()(en-US) 分組運算子。

左手邊運算式左側值為賦值的目標。

Propertyaccessors(en-US) 成員運算子可存取物件的屬性或方法 (object.propertyandobject["property"])。

new(en-US) new運算子可以建立一個建構子(Constructor)的實例。

new.target(en-US) 在建構子中new.target可以參考被new(en-US)呼叫的建構子(Constructor)。

super super關鍵字可以呼叫父建構子(Constructor)。

...obj(en-US) Thespreadoperatorallowsanexpressiontobeexpandedinplaceswheremultiplearguments(forfunctioncalls)ormultipleelements(forarrayliterals)areexpected. 遞增與遞減字尾/字首遞增與字尾/字首遞減運算子。

A++ 字尾遞增運算子。

A-- 字尾遞減運算子。

++A 字首遞增運算子。

--A 字首遞減運算子。

一元運算子一元運算是指只需要使用一個運算元的運算。

delete(en-US) delete運算子可刪除物件中的屬性。

void(en-US) void運算子可放棄一個運算式的回傳值。

typeof typeof運算子可以判斷一個指定物件的型態。

+ 一元正運算子可以轉換其運算元成為數值(Number)型態。

- 一元負運算子可以轉換其運算元成為數值(Number)型態並轉為負值。

~ 元位NOT運算子。

! 邏輯NOT運算子。

算術運算子算術運算子會要用到數值(不論是字面值或者變數)做為運算元,並且會回傳單一數值結果。

+ 加法運算子。

- 減法運算子。

/ 除法運算子。

* 乘法運算子。

% 餘數運算子。

** 指數運算子。

關係運算子比較運算子會比較其運算元並根據比較的結果是否成立回傳一個Boolean值的結果。

in(en-US) in運算子會判斷一個物件是否有指定的屬性。

instanceof(en-US) instanceof運算子會判斷一個物件是否為另一個物件的實例。

< 小於運算子。

> 大於運算子。

<= 小於等於運算子。

>= 大於等於運算子。

Note:=>isnotanoperator,butthenotationforArrowfunctions. 相等運算子執行相對運算子後的結果為比較結果是否成立的Boolean值。

== 相等運算子。

!= 不相等運算子。

=== 恆等運算子。

!== 不恆等運算子。

位元移位運算子用來位移運算元所有位元的運算。

<< 左移位元運算子。

>> 右移位元運算子。

>>> 右移無號位元運算子。

二元位元運算子位元運算子將其運算元當做是32位元(32個零與一)的數值處理並回傳標準JavaScript數值。

& 位元AND。

| 位元OR。

^ 位元XOR。

二元邏輯運算子邏輯運算子一般用在處理布林(邏輯)值,它們存在的地方會回傳一個布林(Boolean)值。

&& 邏輯AND。

|| 邏輯OR。

條件(三元)運算子 (condition?ifTrue:ifFalse) 條件運算子會根據條件的邏輯值判斷並回傳其中一個值。

賦值運算子賦值運算子會根據其右側運算元的數值處理後賦值給其左側的運算元。

=(en-US) 賦值運算子。

*=(en-US) 乘法賦值。

/=(en-US) 除法賦值。

%=(en-US) 餘數賦值。

+=(en-US) 加法賦值。

-=(en-US) 減法賦值。

<<=(en-US) 左移賦值。

>>=(en-US) 右移賦值。

>>>=(en-US) 無號右移賦值。

&=(en-US) 位元AND賦值。

^=(en-US) 位元XOR賦值。

|=(en-US) 位元OR賦值。

[a,b]=[1,2] {a,b}={a:1,b:2} 解構賦值讓您可使用如陣列或物件書寫格式來賦值給陣列或物件的屬性。

逗號運算子 , 逗號運算子允許在一個敘述句中執行多個運算式並回傳最後一個運算式的結果。

非標準功能 Non-Standard Legacygeneratorfunction Thefunctionkeywordcanbeusedtodefinealegacygeneratorfunctioninsideanexpression.Tomakethefunctionalegacygenerator,thefunctionbodyshouldcontainsatleastoneyield(en-US)expression. Non-Standard Expressionclosures Theexpressionclosuresyntaxisashorthandforwritingsimplefunction. Non-Standard [for(xofy)x] Arraycomprehensions. Non-Standard (for(xofy)y) Generatorcomprehensions. 技術規格SpecificationECMAScriptLanguageSpecification#sec-addition-operator-plusECMAScriptLanguageSpecification#sec-assignment-operatorsECMAScriptLanguageSpecification#sec-async-function-definitionsECMAScriptLanguageSpecification#sec-async-generator-function-definitionsECMAScriptLanguageSpecification#prod-BitwiseANDExpressionECMAScriptLanguageSpecification#sec-bitwise-not-operatorECMAScriptLanguageSpecification#prod-BitwiseORExpressionECMAScriptLanguageSpecification#prod-BitwiseXORExpressionECMAScriptLanguageSpecification#sec-class-definitionsECMAScriptLanguageSpecification#sec-comma-operatorECMAScriptLanguageSpecification#sec-conditional-operatorECMAScriptLanguageSpecification#sec-postfix-decrement-operatorECMAScriptLanguageSpecification#sec-delete-operatorECMAScriptLanguageSpecification#sec-destructuring-assignmentECMAScriptLanguageSpecification#sec-multiplicative-operatorsECMAScriptLanguageSpecification#sec-equality-operatorsECMAScriptLanguageSpecification#sec-exp-operatorECMAScriptLanguageSpecification#sec-function-definitionsECMAScriptLanguageSpecification#sec-generator-function-definitionsECMAScriptLanguageSpecification#sec-relational-operatorsECMAScriptLanguageSpecification#sec-grouping-operatorECMAScriptLanguageSpecification#sec-import-callsECMAScriptLanguageSpecification#prod-ImportMetaHTMLStandard#hostgetimportmetapropertiesECMAScriptLanguageSpecification#sec-postfix-increment-operatorECMAScriptLanguageSpecification#sec-left-shift-operatorECMAScriptLanguageSpecification#prod-LogicalANDExpressionECMAScriptLanguageSpecification#sec-logical-not-operatorECMAScriptLanguageSpecification#prod-LogicalORExpressionECMAScriptLanguageSpecification#sec-new-operatorECMAScriptLanguageSpecification#sec-built-in-function-objectsECMAScriptLanguageSpecification#sec-null-valueECMAScriptLanguageSpecification#prod-CoalesceExpressionECMAScriptLanguageSpecification#sec-object-initializerECMAScriptLanguageSpecification#prod-OptionalExpressionECMAScriptLanguageSpecification#sec-property-accessorsECMAScriptLanguageSpecification#sec-signed-right-shift-operatorECMAScriptLanguageSpecification#sec-array-initializerECMAScriptLanguageSpecification#sec-subtraction-operator-minusECMAScriptLanguageSpecification#sec-super-keywordECMAScriptLanguageSpecification#sec-this-keywordECMAScriptLanguageSpecification#sec-typeof-operatorECMAScriptLanguageSpecification#sec-unary-minus-operatorECMAScriptLanguageSpecification#sec-unary-plus-operatorECMAScriptLanguageSpecification#sec-unsigned-right-shift-operatorECMAScriptLanguageSpecification#sec-void-operatorECMAScriptLanguageSpecification#prod-YieldExpressionECMAScriptLanguageSpecification#sec-generator-function-definitions-runtime-semantics-evaluation相關文獻 Operatorprecedence Foundaproblemwiththispage?EditonGitHubSourceonGitHubReportaproblemwiththiscontentonGitHubWanttofixtheproblemyourself?SeeourContributionguide.Lastmodified:2022年6月30日,byMDNcontributors



請為這篇文章評分?