第四章
4.1 原始表达式
原始表达式是表达式的最小单位,不再包含其他表达式。
例如:
- 常量
1.23
2
5
- 直接量 关键字(true false null this) 变量
“hello” 字符串直接量
/pattern/ 正则表达式直接量
4.2 对象和数组的初始化表达式
对象和数组初始化表达式实际上是一个新创建的对象和数组。
//数组初始化表达式
[] // 一个空数组
[1+2,3+4] // 含有两个元素的数组
[[1,2,3],[4,5,6]] // 数组嵌套 二维数组
//对象初始化表达式
{} // 一个空对象
{a:1,b:2} // 含两个属性值的对象
{a:{a1:1,a2:2},b:{b1:1,b2:2}} // 对象嵌套
4.3函数定义表达式
函数定义表达式定义一个JavaScript函数。或称“函数直接量”
var square = function(x) {return x*x;} // 把函数直接量赋值给square变量
4.4属性访问表达式
属性访问表达式运算得到一个对象属性值或一个数组元素的值。
4.5调用表达式
f(0) // f是函数,0是一个参数表达式
Math.max(x,y,z) // Math.max是函数,x y z 是3个参数
a.sort() //a.sort()是函数,它没有参数
4.6对象创建表达式
对象创建表达式创建一个对象并调用一个函数(这个函数称作构造函数)初始化新对象的属性。
4.7运算符概述
运算符分两种:标点符号(+ - × / …)和关键字运算符(delete instancdof typeof void in )
4.7.1操作数的个数
按操作数的个数分类:一元运算符 二元运算符 三元运算符
4.7.3左值
左值:表达式只能出现在赋值运算符的左侧。 JavaScript中 变量 对象属性和数组元素均为左值。
4.7.5运算符优先级
运算符优先级控制着运算符的执行顺序。优先级越高越先执行。属性访问表达式和调用表达式的优先级比所有的运算符都高。
4.7.6运算符的结合性
左结合性:从左至右结合(从左至右执行运算)
右结合性:从右至左结合 (从右至左执行运算)
其中:一元操作符 赋值 和 三元条件运算符都是右结合性。
4.8 算数表达式
位运算符:& | ^ ~ << >>
7<<2=28
7>>1=3
in运算符,instanceof运算符
var point = {x:1,y:1}
“x” in point //true 对象里有名为”x” 的属性
“tiString” in point // true 对象继承了toString()方法
var data = [7,8,9];
“0” in data //true 0代表索引
var d = new Date();
d instanceof Date; //true