首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

isNaN 和 Number.isNaN 函数的区别?

主题:【isNaN 和 Number.isNaN 函数的区别】 ( ps:今天图有点大,请放大观看 ) 图解: isNaN vs Number.isNaN 文字描述: 函数 isNaN 接收参数后,会尝试将这个参数转换为数值...函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。...mdn引用: 如果isNaN函数的参数不是Number类型, isNaN函数会首先尝试将这个参数转换为数值,然后才会对转换后的结果是否是NaN进行判断。...因此,对于能被强制转换为有效的非 NaN 数值来说(空字符串和布尔值分别会被强制转换为数值 0 和 1) 下一个版本的 ECMAScript (ES2015) 包含Number.isNaN()函数。...通过Number.isNaN(x)来检测变量x是否是一个NaN将会是一种可靠的做法。然而,在缺少Number.isNaN函数的情况下,通过表达式(x != x) 来检测变量 x是否是NaN会更加可靠。

38110
您找到你想要的搜索结果了吗?
是的
没有找到

【说站】js浮点数精度丢失的问题及解决

js浮点数精度丢失的问题及解决 说明 1、在数学计算中,小数会有一定的误差,这是计算机本身的bug,不仅是js语言,其他语言也有这个问题。...number数据类型中一个特殊的数值,是数学计算错误得到的一个结果        * 2.NaN与任何数字都不相等,包括它的本身        * 3.NaN与任何数字计算得到的都是NaN       isNaN...(数据):检测一个数据是不是NaN  得到的结果是布尔类型     console.log ( isNaN ( NaN ) );  //true     console.log ( isNaN ( 123... ) );  //false     //如果检测的数据不是number类型,js编译器会尝试着将这个数据转化为number类型,然后再判断     //这种数据类型转换称为隐式转换:下一小节讲解     ...console.log ( isNaN ( "abc" ) ); //true       //5.

3K30

js程序设计01——基本概念

本文为js高级程序设计学习笔记,笔记中不乏本人学习js的一些心得demo,喜欢的朋友可以直接参考原书“javascript高级程序设计”,写本笔记的目的是对js中容易出错、不易理解的地方作个笔记,以免后期继续踩坑...、下划线或$,之后可以是数字、字母、下划线或$;标识符不能使用系统关键字及保留字,比如var、true、false、null、let等 严格模式: 严格模式是ECMAScript 5中引入的概念,是为js...(NaN));    //true console.log(isNaN(""));    //false console.log(isNaN(12));    //false console.log(isNaN...("awd"));    //true console.log(isNaN("awd12"));    //true console.log(isNaN("12awd"));    //true console.log...(isNaN(null));    //false console.log(isNaN({}));      //true   console.log(isNaN({valueOf:function()

75900

给初学者:JavaScript 的常见注意点

这是一个广为人知的 JS 的 bug,,它从 JS 诞生开始就存在,从未、而且永远不会被修复 我们不必去探究它的黑历史,但是我们写代码时判断一个变量的类型时,首先需要判断它是否为 null if (someVal...== null && typeof someVal === 'object') { // someVal 是一个对象 } 做数值计算时,注意 JS 数值类型的精度 在 JS 里,所有的 number...还有一个方式是使用 Number.isNaN。注意如果不已知这个变量的类型是数字时,不要使用 isNaN做判断,因为 isNaN 有个很诡异的特性:它会先将待判断的变量转换为数值类型。...isNaN('abc') // true isNaN('123') // false isNaN('') // false isNaN([]) // false isNaN({}) // true 永远不要写...补:慎用 || 填充默认值 这反而是 JS 老鸟更容易犯的错误。

1.4K50

lodash源码分析之NaN不是NaN

具有相同的 Symbol 值,返回 true,否则返回 false 如果 x 和 y 指向同一个对象,返回 true, 否则返回 false Strict Equality Comparison js...== other) 在 js 中,只有 NaN 和自身是不相等的,当两个需要比较的值都是和自身不相等时,表明这两个值都为 NaN,返回 true。...可以用isNaN()吗? 还有个 isNaN 的全局方法,可以用来判断一个值是否为 NaN。例如 isNaN(NaN) 会返回 true ,那 eq 是否可以改成以下形式呢?...function eq(value, other) { return value === other || (isNaN(value) && isNaN(other)) } 答案是:不可以!...可以用Number.isNaN()吗 为了修复 isNaN 的缺陷,es6 在 Number 对象上扩展了 isNaN 方法,只有是 NaN 时才会返回 true,因此用 Number.isNaN 来判断是安全的

1.7K50

lodash源码分析之NaN不是NaN

y 具有相同的 Symbol 值,返回 true,否则返回 false 如果 x 和 y 指向同一个对象,返回 true, 否则返回 false Strict Equality Comparison js...== other) 在 js 中,只有 NaN 和自身是不相等的,当两个需要比较的值都是和自身不相等时,表明这两个值都为 NaN,返回 true。...可以用isNaN()吗? 还有个 isNaN 的全局方法,可以用来判断一个值是否为 NaN。例如 isNaN(NaN) 会返回 true ,那 eq 是否可以改成以下形式呢?...function eq(value, other) { return value === other || (isNaN(value) && isNaN(other)) } 答案是:不可以!...可以用Number.isNaN()吗 为了修复 isNaN 的缺陷,es6 在 Number 对象上扩展了 isNaN 方法,只有是 NaN 时才会返回 true,因此用 Number.isNaN 来判断是安全的

1.8K60

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券