JavaScript中表达式和运算符
表达式(expression) JavaScript中的一个短语,JavaScript解释器会将其计算(evaluate)出一个结果。程序中的常量是最简单的一类表达式。变量名也是一种简单的
表达式,它的值就是赋值给变量的值。复杂表达式是由简单表达式组成的。比如,数组访问表达式是由一个表示数组的表达式、左方括号、一个整数表达式和右方括号构成。它们所组成的新的表达式的运算结果是该数组的特定位置的元素值。同样的,函数调用表达式由一个表示函数对象的表达式和0个或多个参数表达式构成。
将简单表达式组合成复杂表达式最常用的方法就是使用运算符(operator)。运算符按照特定的运算规则对操作数(通常是两个)进行运算,并计算出新值。乘法运算符‰”是比较简单的例子。表达式x*y是对两个变量表达式x和y进行运算并得出结果。有时我们更愿意说运算符返回了一个值而不是“计算”出了一个值。接下来将讲解所有的JavaScript运算符,同时也讲解不涉及运算符的表达式(比如访问数组元素和函数调用)。如果你熟悉C语法风格的其他编程语言,你会发现大多数JavaScript表达式和运算符都似曾相识。
原始表达式
最简单的表达式是“原始表达式” (primary expression)。原始表达式是表达式的最小单位——它们不再包含其他表达式。JavaScript中的原始表达式包含常量或直接量、关键字和变量。
直接量是直接在程序中出现的常数值。它们看起来像:”hello”
//字符串直接量
/pattern/ //正则表达式直接量
JavaScript数字直接量的语法在之前的文章中已经讲述了。
JavaScript中的一些保留字构成了原始表达式:
true //返回一个布尔值:真
false //返回一个布尔值:假
null //返回一个值:空
this //返回”当前”对象
true、+alse和null。和其他关键字不同,this并不是一个常量,它在程序的不同地方返回的值也不相同。this关键字经常在面向对象编程中出现。在一个方法体内,this返回调用这个方法的对象。最后,第三种原始表达式是变量:
//返回变量i的值
//返回sum的值
//undefined是全局变量,和null不同,它不是一个关键字
当JavaScript代码中出现了标识符,JavaScript会将其当做变量而去查找它的值。如果变量名不存在,表达式运算结果为unde+ined。然而,在ECMAScript 5昀严格模式中,对不存在的变量进行求值会抛出一个引用错误异常。