原生js:isNaN和Number.isNaN

71 阅读1分钟

一、isNaN

isNaN(val):通过Number(val)隐式地将val转换为数字,结果为NaN时,返回true,否则返回false

1、'100'''200truenull[]这些值使用Number()转换都是数字,所以通过isNaN判断结果都是false

image.png image.png

2、NaN'100a''a'undefined{a: 1}[1, 2]这些值使用Number()转换结果是NaN,所以通过isNaN判断结果都是true

image.png image.png

3、实现isNaN函数

      function myIsNaN(val) {
        const res = Number(val) + ''
        return res === 'NaN'
      }

二、Number.isNaN

Number.isNaN(val):ES6的方法,判断val是否全等于NaN,是则返回true,否则返回false

image.png