读JavaScript权威指南(第六版)笔记(第四章)
表达式和运算符
表达式:JavaScript中的一个短语,JavaScript解释器会将其计算出一个结果。
运算符:按照特定的运算规则对操作数(通常试两个)进行运算,并计算出新值。
4.1原始表达式
原始表达式是表达式的最小单位,不再包含其他表达式。例如:常量 直接量 关键字(true false null this) 变量
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属性访问表达式
属性访问表达式运算得到一个对象属性值或一个数组元素的值。
// 定义了两个访问方式 expression.identifier expression[expression]
4.5调用表达式
JavaScript中的调用表达式是一种调用(或者执行)函数或方法的语法表示。
f(0) // f是函数,0是一个参数表达式 Math.max(x,y,z) // Math.max是函数,x y z 是3个参数 a.sort() //a.sort()是函数,它没有参数
4.6对象创建表达式
对象创建表达式创建一个对象并调用一个函数(这个函数称作构造函数)初始化新对象的属性。
new Object() new Point(2,3) new Object // 无参数时,可以省略后面这对圆括号 new Date
4.7运算符概述
运算符分两种:标点符号(+ - × / ...)和关键字运算符(delete instancdof typeof void in )
4.7.1操作数的个数
按操作数的个数分类:一元运算符 二元运算符 三元运算符
4.7.3左值
左值:表达式只能出现在赋值运算符的左侧。 JavaScript中 变量 对象属性和数组元素均为左值。
4.7.5运算符优先级
运算符优先级控制着运算符的执行顺序。优先级越高越先执行。属性访问表达式和调用表达式的优先级比所有的运算符都高。
4.7.6运算符的结合性
左结合性:从左至右结合(从左至右执行运算)
右结合性:从右至左结合 (从右至左执行运算)
其中:一元操作符 赋值 和 三元条件运算符都是右结合性。