我有一个要调用.splice()的数组。偶然地,有时代码以undefined
作为第一个参数运行,例如。
array.splice(undefined, 1);
但是我的代码仍然像被调用一样工作:
array.splice(0,1);
所以我的问题是,为什么这行得通?为什么下面的工作?
[0, 1,2,3].splice(undefined,1); //returns 0
谢谢
最佳答案
Javascript开发人员用于清除传递给函数的值,以便始终使用某些东西。
在这种情况下,我们可以确定它不是隐式强制,因为
Number(undefined); //NaN
Number("text"); //NaN
在拼接功能中,它们被强制为0。
他们可能使用了>> 0之类的按位运算符
"2">>0 //2
-8>>0 //-8
null>>0 //0
undefined>>0 //0
"text">>0 //0
关于javascript - 使用array.splice()第一个参数未定义,仍然有效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37361472/