这里我记录几个比较特殊的操作符。
1、一元 + 操作符
在非数值之前放一个+,它会像Number()转型函数那样对这个值进行数值转换。
var s1 = "01";
var s2 = "0.1";
var s3 = "a";
var s4 = "false";
s1 = +s1; //值变为1
s2 = +s2; //值变为0.1
s3 = +s3; //值变为NaN
s4 = +s4; //值变为0
2、逻辑与(&&)、逻辑或(||)
逻辑与(&&)是一个短路操作,进行&&操作的两个变量,如果第一个变量为false,则肯定返回false,不再对&&后面的变量做处理。
以下是一个第一个变量为true,第二个变量未定义的情况,我们可以看到javascript的一个特性(当解析遇到错误时,下文的javascript将得不到顺序执行):
var s1 = true;
var result = (s1 && undefinedVariable); //这里将会引发错误
alert(result); //由于上面的错误,这一行将不被执行
逻辑或(||)也是一个短路操作,只要第一变量为true,则肯定返回true;只有第一个变量为false时才进行完整的逻辑或(||)操作。