我一直在研究 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
最佳答案
这是一个严格的比较测试,函数 f(x,y,z)
在调用 x 参数值为 1 时是否返回值 50。当默认参数值为添加到 x
的值是 7 和 42。
这些函数调用和对比纯粹是为它们调用的函数提供使用示例和可能的测试示例。
代码
function f (x, y, ...a) {
return (x + y) * a.length
}
f(1, 2, "hello", true, 7) === 9
是扩展参数处理的示例。 ...a
变量的长度属性等于 3,因此测试确认在 x
和 y
之后传递给函数的参数数量。
关于javascript - === 与函数调用的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41393349/