JavaScript的中运算符到底是什么?
运算符可以根据其操作数的个数进行分类:
二元运算符(binary operator):JavaScript中的大多数运算符(比如“*”乘法运算符)是一个二元运算符,将两个表达式合并成一个稍复杂的表达式。换句话说就是,它们的操作数均是两个。
一元运算符(一元运算符):它们将一个表达式转换成另一个稍复杂的表达式。表达式-x中的“ - ”运算符就是一个一元运算符,是将操作数x求负值。
三元运算符(ternary operator):JavaScript支持一个三元运算符,条件判断运算符“**?:**”,它将三个表达式合并成一个表达式。比如:
var a = true;
a == true? console.log("true") : console.log("false"); //条件为真时输出true,否则输出false
运算符的结合性
结合性制定了在多个具有同样优先级的运算符表达式中的运算顺序。从左到右是指运算的执行时按照由左到右的顺序进行。例如:减法运算符具有从左到右的结合性,因此:
w = x - y - z;//等同于下面这段代码
w = ((x-y)-z);
从右到左的结合性:
x = ~-y;
w = x = y = z;
q = a?b:c?d:e?f:g;
//和这段代码相同
x = ~(-y);
w = ( x= ( y = z ) );
q = a?b:(c?d:(e?f:g))
因为一元操作符、赋值和三元条件运算符都具有从右到左的结合性。
最后,有问题大家一起讨论啊。
注:本文摘自《JavaScript权威指南》。