Es6源码--问题记录--关于includes、indexOf

博客探讨了ES6中`includes()`方法的源码实现,指出其使用了`SameValueZero`比较规则,不同于`indexOf`。通过查阅MDN和ECMAScript标准,解释了`SameValueZero`如何处理+0和-0,以及为何能正确识别`NaN`。文章还提到了内部比较抽象操作`SameValueNonNumber`在非数值比较中的应用。
摘要由CSDN通过智能技术生成

问题一:
这是一个乌龙问题。

function(){
   
    console.log([].includes(NaN));  //true 实验结果
    console.log([].includes(3));    //false 实验结果
}(1,2,4,5,NaN)

相当纳闷,参数是怎么传出去的。。。是否存在我还不知道的潜规则??
as we know
function 有一个属性——arguments:包含所有传进方法的参数
一开始我想源码里是不是这样写了

Array.prototype.includes = function(){
   
    //value:调用此方法对象
    var value = this || !function(){
   
        var tempArr = []
        for(var i =0;i<arguments.length,i++){
            tempArr.push(arguments[i]);
        }
        return tempArr
    }()
    ...
}

本着格物致知的原则,确定一下,没找到源码。

回顾看了一下

https://developer.mozilla.org/


示例代码

(function
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值