标签:面向对象 size 不同 font 引用 之间 his 错误 没有
表达式是JS中的一个短语,JS 解释器会将其计算出一个结果。程序中的常量是最简单的一类表达式。变量名也是一种简单的表达式,它的值就是赋值给变量的值。复杂表达式是由最简单表达式组成的。
将简单表达式组合成复杂表达式最常用的方法就是使用运算符。
4.1 原始表达式
最简单的表达式是“原始表达式”。原始表达式是表达式最小单位 ---- 它们不再包含其他表达式。JS 中的原始表达式包含常量或直接量、关键字和变量。
直接量是直接在程序中国出现的常数值:
1.23 // 数字直接量 “hello” // 字符串直接量 /pattern/ // 正则表达式直接量
JS 中的一些保留字构成了原始表达式:
true // 返回一个布尔值:真 false // 返回一个布尔值:假 null // 返回一个值:空 this // 返回“当前”对象
和其他关键字不同,this 并不是一个常量,它在程序的不同地方返回的值也不相同。this 关键字经常在面向对象编程中出现。在一个方法体内,this 返回调用这个方法的对象
最后,第三种原始表达式是常量:
i // 返回变量 i 的值 sum // 返回 sum 的值 undefined // undefined 是全局变量,和null 不同,它不是一个关键字
当 JS 代码中出现了标识符,JS 会将其当做变量而去查找它的值。如果变量名不存在,表达式运算结果为 undefined。然后,在 ECMAScript 5 的严格模式中,对不存在的变量进行求值会抛出一个引用错误异常。
4.2 对象和数组的初始化表达式
对象和数组初始化表达式实际上是一个新创建的对象和数组。这些初始化表达式有时称作“对象直接量”和“数组直接量”。和布尔值不同,它们不是原始表达式,因为它们所包含的成员或者元素都是子表达式。
数组初始化表达式是通过方括号和逗号隔开的列表构成,初始化的结果是一个新创建的数组。
[ ] // 一个空数组,[] 内留空即表示该数组没有任何元素 [1+2,3+4] // 拥有两个元素的数组,第一个是3,第二个是7
数组初始化表达式中的元素初始化表达式也可以是数组初始化表达式。也就是说,这些表达式是可以嵌套的:
var matrix = [[1,2,3],[4,5,6],[7,8,9]];
JS 对数组初始化表达式进行求值的时候,数组初始化表达式中的元素表达式也都会各自计算一次,也就是说,数组初始化表达式每次计算的值又可能是不同的。
数组直接量中的列表逗号之间的元素可省略,这时省略的空位会填补 undefined。
var sparseArray = [1,,,,5]; // 第三个元素是 undefined
数组直接量的元素列表结尾处可以留下单个逗号,这时并不会创建一个新的值为 Undefined 的元素。
对象初始化表达式和数组初始化表达式非常类似,只是方括号被花括号代替。并且每个子表达式都包含一个属性名和一个冒号作为前缀:
var p = {x:2.3 , y: -1.2}; // 一个拥有两个属性成员的对象 var q = {}; // 一个空对象 q.x = 2.3; q.y = -1.2; // q 的属性成员和 p 的一样
对象直接量也可以嵌套:
var rectamgle = { upperleft:{x:2,y:2}, loweRight:{x:4,y:5} };
JS 求对象初始化表达式的值的时候,对象表达式也都会各自计算一次,并且它们不必包含常数值:它们可以是任意JS表达式。同样,对象直接量中的属性名称可以是字符串而不是标识符:
var side = 1; var square = { "upperleft" : {x:p.x , y:p.y}, ‘lowerRight‘ : { x:p.x + side , y:p.y + side }};
4.3 函数定义表达式
标签:面向对象 size 不同 font 引用 之间 his 错误 没有
原文地址:http://www.cnblogs.com/cimuly/p/7372691.html