【发布时间】:2016-12-30 08:55:39
【问题描述】:
我一直在使用 ES6,假设切换到 EcmaScript 2017 会很容易。
在浏览过程中,我对这段代码感到困惑
function f (x, y = 7, z = 42) {
return x + y + z
}
f(1) === 50
ES5 等价物
function f (x, y, z) {
if (y === undefined)
y = 7;
if (z === undefined)
z = 42;
return x + y + z;
};
f(1) === 50;
我确实从中了解了默认参数。
但是f(1)===50 在这两个代码中的含义是什么?它有什么用?
这是另一个例子
function f (x, y, ...a) {
return (x + y) * a.length
}
f(1, 2, "hello", true, 7) === 9
f(1, 2, "hello", true, 7) === 9 是什么意思?
我了解=== 用于比较运算符的 LHS 和 RHS,包括两者的类型而不仅仅是值。
但为什么会这样使用呢??
请解释一下它的用法。
这是我得到这个的链接。 http://es6-features.org/#RestParameter
【问题讨论】:
-
===operator 并不新鲜,它从一开始就存在于 JavaScript 中。 -
如果您的意思是“为什么要进行比较而不是将其分配给变量或在循环中使用它”,那可能只是要在控制台中显示的测试代码。
-
如果你把它包装起来,它是有道理的:console.log(f(1) === 50);
-
我认为这里使用它只是为了显示执行后返回的函数。在生产代码中这样使用它没有任何意义。
-
是的@ÁlvaroGonzález 我知道。我想知道为什么它与函数调用一起使用。
标签: javascript jquery equality function-call triple-equals