4.1原始表达式
原始表达式是最简单的表达式,,是表达式的最小单位--不再包含其他表达式。JavaScript的原始表达式包含常量或直接量、关键字和变量。
第一种原始表达式是直接量:
数字直接量--一个数字直接出现在JavaScript程序中, 1.23
字符串直接量--由单引号或者双引号括起来的字符序列, ‘aaa’
正则表达式直接量--两条斜线之间的文本构成 /pattern/
第二种原始表达式-JavaScript的一些保留字构成了原始表达式:true、false、null、this
*和其他关键字不同,this并不是一个常量,它在程序中的不同地方返回的值也不相同。this关键字经常出现在面向对象编程中,在一个方法体内,this返回调用这个方法的对象。
第三种原始表达式是变量:
i // 返回变量i的值
sum //返回sum的值
undefined //undefined是全局变量,和null不同,它不是一个关键字
当JavaScript中出现了标识符,JavaScript会将其当做变量而去查找它的值。如果变量名不存在,表达式运算结果为undefined,但在ECMAScript的严格模式中,对不存在的变量进行求值会抛出一个引用错误异常。
|
4.2 对象和数组的初始化表达式
对象和数组初始化表达式实际上是一个新创建的对象和数组,这些初始化表达式有时称作“对象直接量”和“数组直接量”,然而和布尔直接量不同,它们不是原始表达式,因为它们包含的成员和元素都是子表达式。
数组初始化表达式是通过一对方括号和其内由逗号隔开的列表构成的,初始化结果是一个新创建的数组,数组的元素是逗号分隔开的表达式的值:
var i = [] //空数组
var j = [1+2,2+3] //两个元素的数组
var x = [[1,2],[3,4],[5,6]] //嵌套数组
var y = [1,,,2] //中间两个元素undefined
console.log(y[2]); var z = [1,2,]; //结尾逗号后的元素不会创建
console.log(z[5]);
但是在实践过程中发现结尾的值也是undefined,猜测应该是使用时就创建了该元素
对象初始化表达式是由花括号开始,每个子表达式都包含一个属性名和一个冒号作为前缀:
var i = {} //空对象
var j = {a:1 ,b:2} //两个元素的对象
var x = {a:{x:1,y:2},b:{x:1,y:2}} //嵌套对象
|