运算符概述
JavaScript 中的运算符可用于算术表达式、比较表达式、逻辑表达式、赋值表达式等:
操作数的个数
运算符可以根据操作数的个数进行分类,大部分是二元运算符(两个操作数,如加减乘除),还有一元运算符(如++、--),以及三元运算符(?:)。
操作数类型和结果类型
运算符通常会根据需要对操作数进行类型转换,如 "3"*"5"
是合法的,有一些运算符对操作数类型有着不同程度依赖,比如 +
作用于数字就是加法操作,作用于字符串则是起到连接作用;同理 <
作用于数字用于比较数字大小,作用于字符则用于比较字符在字母表中的顺序。
左值(lval)
表示表达式只能出现在赋值运算符的左侧,在 JavaScript 中,变量、对象属性和数组元素均是左值。
运算符的副作用
所谓的运算符副作用是指对后续程序执行是否有影响,赋值运算符显然是有副作用的,++
、--
也是。
运算符优先级
如上图所示,每个水平分割线内的一组运算符拥有相同的优先级,不同分组的运算符自上而下的优先级从高到低。优先级高的运算符总是先于优先级低的运算符执行。如果不确定使用的运算符的优先级,最简单的方法就是使用圆括号来强行指定运算顺序。
运算符的结合性
结合性指定了在多个具有同样优先级的运算符表达式中的运算顺序,一元运算符、赋值和三元条件运算符都具有从右到左的结合性,而二元运算符一般都是从左到右。
No Comments