当前位置:嗨网首页>书籍在线阅读

19-赋值运算符

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

5.9.4 赋值运算符

赋值运算符很直观:它将一个值指派给某个变量。等号左边(有时候叫左值)必须是变量、属性或者数组元素。也就是说,左边必须是能够持有值的东西(从技术上讲,给常量赋值是声明的一种,而非赋值)。

回想一下本章一开始所讲过的,赋值本身是一个表达式,所以它的返回值就是被赋的那个值。这就可以链式赋值,就像是从其他表达式赋值一样:

let v, v0;
v = v0 = 9.8;        // 链式赋值; 首先给 v0 赋值9.8,然后给v赋值9.8
const nums = [ 3, 5, 15, 7, 5 ];
let n, i=0;
// 注意while条件中的赋值; n得到nums[i]的值后,整个赋值表达式也会计算该值,所以
// 可以进行比较:
while((n = nums[i]) < 10, i++ < nums.length) {
    console.log('Number less than 10: ${n}.');
}
console.log('Number greater than 10 found: ${n}.');
console.log('${nums.length} numbers remain.');

注意第二个例子,由于赋值运算符的优先级低于关系运算符,所以必须使用分组运算符。

除了普通的赋值运算符,还有一些赋值运算符能够非常方便地一次性完成与运算和赋值。就像普通的赋值运算符一样,这些运算符的计算结果就是最终要赋的那个值。表5-9中总结了这些便捷的赋值运算符。

表5-9  运算中赋值

| 运 算 符 | 等价表达式 | | :----- | :----- | :----- | :----- | | x += y | x = x + y | | x -= y | x = x + y | | x = y | x = x y | | x /= y | x = x / y | | x %= y | x = x % y | | x <<= y | x = x << y | | x >>= y | x = x >> y | | x >>>= y | x = x >>> y | | x &= y | x = x & y | | x |= y | x = x | y | | x ^= y | x = x ^ y |