表达式
js中的一个短语,js解释器会将其计算出一个结果。
程序中的常量是最简单的一类表达式。
变量名也是一种简单的表达式,它的值就是赋值给变量的值。
复杂表达式是由简单表达式组成,比如:数组访问表达式是由一个表示数组的表达式,左方括号,一个整数表达式和右方括号构成,他们所组成的新的表达式的运算结果是该数组的特定位置的元素的值。同样的,函数调用表达式由一个表示函数对象的表达式和0个或多个参数表达式构成的。
将简单表达式组合成复杂表达式最常用的方法就是使用运算符。
运算符使用特定的运算规则对操作数进行运算,并计算出新值。比如:乘法运算法"*",表达式x*y是对两个变量表达式x和y进行运算并得出结果。
原始表达式
最简单的表达式是原始表达式,它是表达式的最小单位,并且它不再包含其他表达式。
js的原始表达式包含:常量或直接量,关键字,变量。
直接量是直接在程序中出现的常数值,如下:
1.12; // 数字直接量
"hello"; // 字符串直接量
/pattern/; RegExp直接量
js中的一些保留字构成了原始表达式,如下
true; // 返回一个布尔值,真
false; // 返回一个布尔值,假
null; // 返回一个值,空
this; // 返回当前对象
变量,如下
i; // 返回变量i的值
sum; // 返回变量sum的值
undefined; // 全局变量,和null不同,它不是关键字
当js代码中出现了标识符,js会将其当做变量而去查找它的值,如果变量名不存在,表达式运算结果是undefined。
在ECMAScript 5的严格模式中,对不存在的变量进行求值会抛出一个引用错误异常。