|
3.8 ECMAScript赋值运算符及表达式 |
在ECMAScript语法中,赋值运算符通过等号(=)来实现,其功能就是把等号右边的值赋给等号左边的变量。当然,在具体编程实践中还可以将加性、乘性、位运算符与其组合起来用,用以提高代码的简洁性,这就是复合赋值运算符。
关于ECMAScript语法中定义的赋值运算符的内容详见表3-14。
表3-14 ECMAScript赋值运算符规则
下面,来看一个使用赋值运算符表达式的代码示例(详见源代码ch03目录中ch03-js-operator-assign.html文件)。
【代码3-31】
01 <script type="text/javascript"> 02 var i = 1; 03 console.log("i = " + i); 04 var j = i; 05 console.log("j = i is " + j); 06 j += i; 07 console.log("j += i is " + j); 08 j *= j; 09 console.log("j *= j is " + j); 10 j -= i; 11 console.log("j -= i is " + j); 12 j /= i; 13 console.log("j /= i is " + j); 14 j %= 2; 15 console.log("j %= 2 is " + j); 16 j <<= j; 17 console.log("j <<= j is " + j); 18 j >>= j; 19 console.log("j >>= j is " + j); 20 var n = -1; 21 console.log("n = " + n); 22 n >>>= 1; 23 console.log("n >>>= 1 is " + n); 24 </script>
关于【代码3-31】的分析如下:
这段代码的功能主要就是对数值应用各种赋值运算符进行运算,具体包括加法赋值(+=)、减法赋值(-=)、乘法赋值(*=)、除法赋值(/=)、取模赋值(%=)、左移赋值(<<=)、有符号右移/赋值(>>=)、无符号右移/赋值(>>>=)等几种复合赋值的运算。
页面效果如图3.34所示。
图3.34 ECMAScript赋值运算符
从第19行代码输出的结果来看,变量(j)进行保留符号位的右移赋值(j >>= j)后,返回值为0;
从第22行代码输出的结果来看,无符号位的右移赋值(>>>=)操作返回值为2147483647。
以上就是对ECMAScript语法中赋值运算符的测试,希望能帮助读者进一步理解赋值运算符的使用。