这个* =符号在Javascript中意味着什么?

时间:2016-07-23 20:50:55

标签: javascript

我目前正在阅读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岁(不太远)。谢谢

2 个答案:

答案 0 :(得分:0)

x *= y是一个赋值运算符,它只是x = x * y

的语法糖

有很多类似的运算符,例如x += y更常见。

您可以在revelant page of the MDN documentation

上找到详尽的列表

答案 1 :(得分:-2)

概述

这是一个简短的功能。

x += 1;

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

同样如此:

result *= base;

与:

相同
result = result * base;

有几个快捷操作符,如&#34; +&#34;,&#34; - &#34;,&#34; *&#34;,以及最近添加的&#34; **& #34 ;.最后一个是指数运算符。

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'.
  */
}