夜下客

繁体版 简体版
夜下客 > JS修炼法则 > 第15章 重温NaN

第15章 重温NaN

N

Number([1]) // 1

Number方法的参数是对象时,将返回NaN,除非是包含单个数值的数组,单个数值数组则返回该数值。

如果上面的自执行函数让你感兴趣了,那我就直接再表演一点魔法

// 自执行函数的方法

// 1.函数前添加感叹号

!function(){alert('123')}() // true

// 2.函数声明用括号包起来

(function(){alert('123')})() // true

// 3.括号位置放在最外层

(function(){alert('123')}()) // true

var i = function(){return 10}(); // undefined

1 && function(){return true}(); // true

1, function(){alert('123')}(); // undefined

!function(){alert('123')}() // true

~function(){alert('123')}() // -1

void function(){alert('123')}() // undefined

new function(){alert('123')}() // Object

delete function(){alert('123')}() // true

4.如何识别NaN

三种方式: isNaN 、 Number.isNaN 、 Object.is 、自己polyfill

isNaN 的参数会强制类型转换为数字类型, 推荐使用 Number.isNaN 。

// JS内置 isNaN

isNaN(undefined) // true

Number.isNaN(undefined) // false

// Object.is

0 === -0 // false

Object.is(0, -0) // false

Object.is(NaN, NaN) // true

// polyfill

const isNaN = (n) => n !== n;

『加入书签,方便阅读』