天天看點

javascript運算符文法概述

javascript中的運算符大多由标點符号表示,少數由關鍵字表示,它們的文法言簡意赅,它們的數量卻着實不少。運算符始終都遵循着一些固定文法,隻有了解并掌握這些内容,才能正确使用運算符。本文将主要介紹javascript運算符文法概述

  javascript的運算符總共有46個,如果根據其操作數的個數進行分類,則大多數是二進制運算符(binary operator),它們的操作數都是兩個,它們将兩個表達式合并成複雜表達式

  javascript中的一進制運算符(unary operator)将一個表達式轉換為另一個稍複雜的表達式,主要包括以下9個:

  javascript隻有一個三元運算符(ternary operator),是條件判斷運算符?:,它将三個表達式合并成一個表達式

  運算符優先級控制着運算符的執行順序,優先級高的運算符的執行總是先于優先級運算符低的運算符

  46個運算符總共分為14級的優先級,從高到低依次是:

  由這14級的運算符優先級等級可以看出:

  [注意]邏輯取反運算符屬于一進制運算符,其優先級最高

例子

  像上面這種情況就比較複雜,逐漸來分解其運算順序

  先計算一進制運算符!,!2;//false

  計算算術運算符4*3+1;//13

  計算比較運算符<,false<1;//true

  可以使用圓括号來強行指定運算次序

  運算符具有兩種結合性,一種是從左向右結合,記号為L,一種是從右向左結合,記号為R。結合性指定了在多個具有同樣優先級的運算符表達式中的運算順序

  多數運算符都具有從左向右的結合性,隻有一進制運算符、條件運算符和指派運算符具有從右向左的結合性

  運算符的優先級和結合性決定了它們在複雜表達式中的運算順序,但子表達式互相有影響時,順序會發生變化

  先分析該表達式中,根據優先級的順序,分别運算遞增運算符、乘法運算符、加法運算符和指派運算符

  先計算第一個a++;//結果為1,a為2

  計算a--;//結果為2,a為1

  計算第二個a++;//結果為1,a為2

  是以,最終a = 2; b = 3;

  一些運算符可以作用于任何資料類型,但仍然希望它們的操作數是指定類型的資料,并且大多數運算符傳回一個特定類型的值,在下面的運算符規則表中,箭頭前為運算符操作數的類型,箭頭後為運算結果的類型

【左值】

  左值(lvalue)是一個古老的術語,指表達式隻能出現在運算符的左側

  在javascript中,變量、對象屬性和數組元素都是左值

  遞增運算符++、遞減運算符--和指派運算符的操作數類型是左值

繼續閱讀