读JavaScript权威指南(第六版)笔记(第四章)

时间:2022-08-27 08:05:23

表达式和运算符

表达式: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运算符的结合性

左结合性:从左至右结合(从左至右执行运算)

右结合性:从右至左结合 (从右至左执行运算)

其中:一元操作符 赋值 和 三元条件运算符都是右结合性。