JS如何准确判断NaN(isNaN函数不可靠问题)

news/2024/7/19 14:30:58 标签: js

JS如何准确判断NaN(isNaN函数不可靠问题)

使用isNaN()判断一个变量是否为NaN踩了个坑。
在这里插入图片描述
undefined也能够通过isNaN()的判断,难道我还要在判断一下是否为undefined?很明显这样不够优雅 逼格。
那么如何一步到位准确判断一个变量是否为NaN?
可以利用NaN不等于其自身的特性来判断⬇⬇⬇⬇⬇⬇⬇⬇⬇
在这里插入图片描述
由此,我们只需要将需要判断的变量与它自身相比较,如果不相等,那么这个变量就是NaN⬇⬇⬇⬇⬇⬇⬇⬇

function myIsNaN(x){
    return x!==x
}

let myu = undefined;
let myN = NaN;
let myn = null;

console.log('undefined:',myIsNaN(myu))
console.log('NaN:',myIsNaN(myN))
console.log('null:',myIsNaN(myn)

在这里插入图片描述


http://www.niftyadmin.cn/n/1355282.html

相关文章

vb.net usb通用协议api_ USB和耳机接口的陷阱?使用之前要注意的兼容性问题

在电脑、手机以及其他种种电子设备上,都会出现各色各样的接口,对应着各自的用途。一般来说,这些接口都能在连接之后提供对应的功能。小雷收到了一个有趣的读者提问:一副3.5mm接口的耳机,可以在苹果手机上正常使用&…

delphi接口带上请求头是什么意思_接口测试其实很简单,手把手教你入门

请求模型看下图中“A”线,可以理解为接口就是一个电灯的开关,它在接口里面给你提供了一个参数,参数的值一个是“开”,一个是“关”。怎么才能让灯亮?一个灯头接两根线,一根线接火线,一根线接零线…

预编译与变长参数函数

目录 预处理指令#pragma#error 变长参数列表函数变长参数函数变长参数的宏定义实现原理 预定义宏预处理常量表达式其他#/## ​ 预处理指令 #pragma #pragma是一条预处理指令,用来向编译器传达语言标准以外的信息 _Pragma:_Pragma是与#pragma功能一样的…

postcss-loader打包css报错SyntaxError记录

问题表现: 先上我的代码: postcss.config: package.json 当我打包时会报错 原因:暂时不明,可能是postcss-loader或webpack的最新版本带来的问题。 解决: 删除postcss-loader的option 表现&#xff1a…

cad官方卸载工具_轻松解决卸载导致的疑难杂症,卸载无忧!

软件的安装并不复杂,但是卸载过程中也会碰见很多问题。无法直接卸载。提示文件被占用,无法彻底删除卸载残留文件。由于卸载不彻底导致无法二次安装,常见的有office、CAD和Adobe这些大型的软件。如何应对这些卸载导致的疑难杂症呢?…

VUE的单向数据流与sync

(1)prop的实现 子组件拿到父组件赋值的 attr> 筛选出 props并保存在子组件的_props里>_props中的数据逐一复制到子组件的实例上(同时设置get 和 set ) 当父组件data更新,渲染函数执行,又会执行上面的赋值。由此…

div生成图片_手把手教你撸一个能生成抖音风格动图的gif制作平台

前言又到了一周一次的周总结, 笔者基于之前的开源项目 blink , 开发了一款能在线配置故障艺术, 并一键生成gif动图的平台, 这里暂时取名为QT. 接下来笔者将复盘一下该可视化平台的实现步骤以及功能点, 让大家都能做自己的Gif动图生成平台.在线访问地址: 趣图——一款轻量级生成…

用JS实现响应式对象(VUE同原理)

Vue.js 实现响应式的核心是利用了 ES5 的Object.defineProperty,这儿尝试使用Object.defineProperty实现一个响应式对象,帮助理解Vue的深入响应式原理。 直接上代码: let x{}; let value 10; Object.defineProperty(x,v,{get(){console.log(…