【问题标题】:What does this *= symbol mean in Javascript?这个 *= 符号在 Javascript 中是什么意思?
【发布时间】:2016-11-27 12:43:09
【问题描述】:

我目前正在阅读 Eloquent Javascript,并且不断出现这种情况:

*=

在上下文中:

function power(base, exponent) {
    if (exponent == undefined)
        exponent = 2;
    var result = 1;
    for (var count = 0; count < exponent; count++)
        result *= base;
    return result;
}

console.log(power(4));
// → 16
console.log(power(4, 3));
// → 64

我是一个初学者,所以请像我是一个 5 岁的孩子一样解释(不太远)。谢谢

【问题讨论】:

标签: javascript


【解决方案1】:

x *= y 是一个赋值运算符,它只是x = x * y 的语法糖

类似的操作符还有很多,比如x += y,频率比较高。

您可以在revelant page of the MDN documentation 上找到详尽的列表

【讨论】:

    【解决方案2】:

    概述

    这是一个简短的函数。

    x += 1;
    
    x = x + 1; //This is equivalent to the first variable declaration.
    

    同样如此:

    result *= base;
    

    等同于:

    result = result * base;
    

    有几个快捷操作符,如“+”、“-”、“*”和最近添加的“**”。最后一个是指数运算符。

    2 ** 3 === 2 * 2 * 2; // '===' means strict equivalence (value and type).
    result **= base === result = result ** base;
    

    在你写的循环中:

    for(let i = 0; i < 20; i++) {
      /*
      * Do something
      * That 'i++ is just a shortcut (syntactic sugar) of 'i = i + i'.
      * By the way, the 'let' variable means 'i' 
      * will only be available inside the loop. If you try to 
      * console.log(i) outside of it, the compiler will return 'undefined'.
      */
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-14
      • 2015-02-18
      • 2017-02-04
      • 2010-12-30
      • 2021-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多