我一直在学习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
是什么意思?
我知道===
用于比较操作符左右两侧的类型和值。
但是为什么要这样使用呢?
请详细解释一下它的用法。
这是我得到这个问题的链接:http://es6-features.org/#RestParameter