建议8:谨慎使用运算符(2)
++和--运算符只能够作用于变量、数组元素或对象属性。下面的用法是错误的。
- 4++;
正确的用法如下: - var n = 4;
- n++;
++和--运算符的位置不同所得运算结果也不同。例如,下面的递增运算符是先执行赋值运算,然后再执行递加运算。 - var n = 4;
- n++; // 4
而下面的递增运算符是先执行递加运算,再进行赋值运算。 - var n = 4;
- ++n;
3.小心逗号运算符
逗号在JavaScript语言中表示连续运算,并返回最后运算的结果。例如,在下面这个示例中,JavaScript先运算第一个数值直接量,再运算第二个数值直接量,然后运算第三个数值直接量,最后运算第四个数值直接量,并返回最后一个运算值4。
- var a = ( 1, 2, 3, 4);
- alert(a); //4
再如: - a = 1, b = 2, c = 3;
等价于: - a = 1;
- b = 2;
- c = 3;
作为运算符,逗号一般用在特殊环境中,即在只允许出现一个句子的地方,把几个不同的表达式句子合并成一个长句。在JavaScript实际开发中,逗号运算符常与for循环语句联合使用。例如,在下面这个简单的for循环结构中,通过连续的运算符在参数表达式中运算多个表达式,以实现传递或运算多个变量或表达式。 - for(var a = 10 , b = 0; a > b; a++ , b+=2){
- document.write("a = " + a +" b = " + b + "
"); - }
逗号运算符比较“怪异”,稍不留心就会出错。例如,在下面这个简单的示例中,变量a的返回值为1,而不是连续运算后的返回值4。 - a = 1, 2, 3, 4;
- alert(a); //1
第一个数值1先赋值给变量a,然后a再参与连续运算,整个句子的返回值为4,而变量a的返回值为1,代码演示如下: - alert((a = 1, 2, 3, 4)); //4
- alert(a = (1, 2, 3, 4)); //4