const list = [-1, "A", NaN, 2];
list.findIndex((val) => isNaN(val)); //1
ps:Number.isNaN()和isNaN() 的区别是什么 ?
list.findIndex((val) => Number.isNaN(val)); //2
list.some((val) => Number.isNaN(val)); //true
list.some((val) => val === NaN);//false
ps:Object.is()是什么?Object.is()和===的区别是什么?
list.some((val) => Object.is(val, NaN)); //true
list.indexOf(NaN);//false
ps:includes()和indexOf()都是判断是否包含某个字符串的,那这里使用和indexOf()是否也可以?
list.includes(NaN); //true
isNaN("a"); //true
Number.isNaN("a"); //false
isNaN(undefined); //true
Number.isNaN(undefined); //false
isNaN(NaN); //true
Number.isNaN(NaN); //true
1. Object.is()用来比较两个值是否严格相等,和严格运算符(===)的功能基本一致
2. 例如:
Object.is("a", "a"); //true
"a" === "a"; //true
1 === "1"; //false
Object.is("1", 1); //false
3. 不同之处有两个
+0 === -0; //true
Object.is(+0, -0); //false
NaN === NaN; // false
Object.is(NaN, NaN); // true
const list = [-1, "A", NaN, 2];
list.indexOf(-1); // 0
list.includes(-1); // true
list.indexOf(NaN); // -1
list.includes(NaN); // true