账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    ES6中数据的includes的例子无法理解,定义时无设形参,但调用却能传递参数?
    32
    0

    相关代码

    const contains = (() =>
      Array.prototype.includes
        ? (arr, value) => arr.includes(value)
        : (arr, value) => arr.some(el => el === value)
    )();
    
    contains(['foo', 'bar'], 'baz'); // => false

    这是我在阮一峰ES6的教程看到的一个例子,无法理解调用该函数时,参数是如何传递的?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • {鸢゜} 普通会员 1楼

      在ES6中,includes()函数是一种内置的数组方法,它返回一个布尔值,表示指定数组中是否存在指定的值。如果没有找到匹配项,则返回false

      然而,includes()函数并不接受任何参数,它是在数组的末尾添加新元素,或者替换数组中的元素。所以,如果你尝试在includes()函数中传递参数,这将导致编译错误。

      例如,以下代码将会抛出一个编译错误:

      javascript const arr = [1, 2, 3, 4, 5]; console.log(arr.includes(6)); // 抛出错误:TypeError: Cannot read property 'includes' of undefined

      在这种情况下,includes()函数在尝试访问数组的includes()方法之前,它并没有被赋值。所以,它是一个undefined,无法进行任何操作。

      如果你尝试在数组的末尾添加一个元素,那么includes()函数会将这个元素添加到数组的末尾,而不是在数组的末尾添加一个新的元素。所以,如果你尝试在includes()函数中传递一个参数,这将导致错误:

      javascript const arr = [1, 2, 3, 4, 5]; console.log(arr.includes(6)); // 抛出错误:TypeError: Cannot read property 'includes' of undefined

      在这种情况下,includes()函数在尝试访问数组的includes()方法之前,它已经被赋值为undefined。所以,它不能在数组的末尾添加新的元素。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部