javascript面试题:什么是NaN? 以及如何检查值是否为NaN?

2020-01-1623:27:42WEB前端开发Comments1,844 views字数 847阅读模式

56. 什么是NaN? 以及如何检查值是否为NaN?

NaN表示**“非数字”**是 JS 中的一个值,该值是将数字转换或执行为非数字值的运算结果,因此结果为NaN文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/17743.html

let a;

console.log(parseInt('abc')); // NaN
console.log(parseInt(null)); // NaN
console.log(parseInt(undefined)); // NaN
console.log(parseInt(++a)); // NaN
console.log(parseInt({} * 10)); // NaN
console.log(parseInt('abc' - 2)); // NaN
console.log(parseInt(0 / 0)); // NaN
console.log(parseInt('10a' * 10)); // NaN
复制代码

JS 有一个内置的isNaN方法,用于测试值是否为isNaN值,但是这个函数有一个奇怪的行为。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/17743.html

console.log(isNaN()); // true
console.log(isNaN(undefined)); // true
console.log(isNaN({})); // true
console.log(isNaN(String('a'))); // true
console.log(isNaN(() => { })); // true
复制代码

所有这些console.log语句都返回true,即使我们传递的值不是NaN文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/17743.html

ES6中,建议使用Number.isNaN方法,因为它确实会检查该值(如果确实是NaN),或者我们可以使自己的辅助函数检查此问题,因为在 JS 中,NaN是唯一的值,它不等于自己。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/17743.html

function checkIfNaN(value) {
  return value !== value;
}

作者:前端小智
链接:https://juejin.im/post/5e1faa3d51882520a167df0e
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/17743.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/17743.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/gcs/17743.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定