javascript - === 与函数调用的含义

标签 javascript jquery equality function-call triple-equals

我一直在研究 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,因此测试确认在 xy 之后传递给函数的参数数量。

关于javascript - === 与函数调用的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41393349/

相关文章:

jquery - 动态改变一组 li 标签内的 html

java - 如何比较 Java 中的字符串?

java - 在平等规则之间切换

Javascript 函数不会在给定条件下终止

javascript - 如何设置可以缩放和拖动的背景图片?

javascript - 使用 XHR 或 Fetch API 的 HTTP/2 服务器推送

javascript - Slick Slider - 根据事件幻灯片将 slick 事件类应用于 <a>

javascript - json文件显示格式错误

javascript - 使用 jquery 动态访问 JSON 键值

php - PHP中is_null "== NULL"和 "=== NULL"的区别