JavaScript中表達式和運算符
表達式(expression) JavaScript中的一個短語,JavaScript解釋器會將其計算(evaluate)出一個結果。程序中的常量是最簡單的一類表達式。變量名也是一種簡單的
表達式,它的值就是賦值給變量的值。復雜表達式是由簡單表達式組成的。比如,數(shù)組訪問表達式是由一個表示數(shù)組的表達式、左方括號、一個整數(shù)表達式和右方括號構成。它們所組成的新的表達式的運算結果是該數(shù)組的特定位置的元素值。同樣的,函數(shù)調用表達式由一個表示函數(shù)對象的表達式和0個或多個參數(shù)表達式構成。
將簡單表達式組合成復雜表達式最常用的方法就是使用運算符(operator)。運算符按照特定的運算規(guī)則對操作數(shù)(通常是兩個)進行運算,并計算出新值。乘法運算符‰”是比較簡單的例子。表達式x*y是對兩個變量表達式x和y進行運算并得出結果。有時我們更愿意說運算符返回了一個值而不是“計算”出了一個值。接下來將講解所有的JavaScript運算符,同時也講解不涉及運算符的表達式(比如訪問數(shù)組元素和函數(shù)調用)。如果你熟悉C語法風格的其他編程語言,你會發(fā)現(xiàn)大多數(shù)JavaScript表達式和運算符都似曾相識。
原始表達式
最簡單的表達式是“原始表達式” (primary expression)。原始表達式是表達式的最小單位——它們不再包含其他表達式。JavaScript中的原始表達式包含常量或直接量、關鍵字和變量。
直接量是直接在程序中出現(xiàn)的常數(shù)值。它們看起來像:”hello”
//字符串直接量
/pattern/ //正則表達式直接量
JavaScript數(shù)字直接量的語法在之前的文章中已經講述了。
JavaScript中的一些保留字構成了原始表達式:
true //返回一個布爾值:真
false //返回一個布爾值:假
null //返回一個值:空
this //返回”當前”對象
true、+alse和null。和其他關鍵字不同,this并不是一個常量,它在程序的不同地方返回的值也不相同。this關鍵字經常在面向對象編程中出現(xiàn)。在一個方法體內,this返回調用這個方法的對象。最后,第三種原始表達式是變量:
//返回變量i的值
//返回sum的值
//undefined是全局變量,和null不同,它不是一個關鍵字
當JavaScript代碼中出現(xiàn)了標識符,JavaScript會將其當做變量而去查找它的值。如果變量名不存在,表達式運算結果為unde+ined。然而,在ECMAScript 5昀嚴格模式中,對不存在的變量進行求值會拋出一個引用錯誤異常。