表达式JavaScript中的一个短语,JavaScript解释器会将其计算出一个结果。复杂表达式是由简单表达式组成。
原始表达式是表示表达式的最小单位——它们不再包含其他表达式。JavaScript中的原始表达式包含常量或直接量、关键字和变量。
例如:
1.23 //数字直接量
/pattern/ //正则表达式直接量
对象和数组的初始化表达式
数组初始化表达式是通过一对方括号和其内由逗号隔开的列表构成的。初始化的结果是一个新创建的数组。数组的元素是逗号分隔的表达式的值。
例如:
[1+2,3+1]
对象初始化表达式和数组初始化表达式非常类似,只是方括号被花括号代替,并且每个子表达式都包含一个属性名和一个冒号作为前缀。
例如:
var q={x:2.3,y:-1.2};
函数定义表达式:一个典型的函数定义表达式包含关键字function,紧跟其后的是一对圆括号,括号内是一个以逗号分隔的列表,列表含有0个或多个标识符(参数名),然后再跟随一个由花括号包裹的JavaScript代码段(函数体)
例如:
var square=function(x){return x*x;}
属性访问表达式:
expression.identifier
expression[expression]
例如:
var p={x:1,y:{z:3}};
var a=[0,4,[5,6]];
p.x //=>1
a[1] //=>4
运算符:
算术运算符: 可以对两个数字做加法,也可以做字符串连接操作,优先考虑字符串连接“+”、一元减法“-”、递增“++”、递减“--”
位运算符:按位与&、按位或|、按位异或^、按位非~、左移<<、带符号右移>>、无符号右移>>>
关系表达式:
相等运算符“==”、严格相等运算符“===”、不相等“!=”、不严格相等“!==”
比较运算符:小于<、大于>、小于等于<=、大于等于>=、
in运算符:左操作数是一个字符串或者可以转换为字符串,右操作符是一个对象,如果右侧的对象拥有一个名为左操作数值的属性名,那么表达式返回True。
instanceof运算符:左操作数是一个对象,右操作数标识对象的类,如果左侧的对象是右侧类的实例,则表达式返回true,否则为false。
逻辑表达式:逻辑与&&、逻辑或||、逻辑非!
赋值表达式:=、+=、-=、*=、/=、%=、<<=、>>=、>>>=、&=、|=、^=
表达式计算:解释运行由JavaScript源代码组成的字符串,并产生一个值,通过全局函数eval()来完成这个工作。
条件运算符:“?:”第一个操作数当成布尔值,如果它是真值,那么将计算第二个操作数,并返回其计算结果。
typeof运算符:返回值为表达式操作数类型的一个字符串。
delete运算符:用来删除对象属性或者数组元素。并不是所有的属性都可以被删除,一些内置核心和客户端属性是不能删除的,用户通过var语句声明的变量不能删除,通过function语句定义的函数和函数参数也不能删除。
void运算符
逗号运算符:计算左操作数,然后计算右操作数,最后返回右操作数的值。