首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

JS高程】第3章 3.4.5(3)NaN(节选)

NaN,它的全称是 Not a Number,即非数值。用来表示“一个本来要返回数值的操作数,却未返回数值时的情况”。这样就不会报错了嘛。...在ECMAScript中,任何数值除以非数值都会返回NaN。...NaN有二个特点: 1、任何涉及到NaN的操作,都会返回NaN; 2、NaN与任何值都不相等,包括它自己; 根据这二个特点,ECMAScript定义了 isNaN()函数。...大概思路与用法是这样: 1、如果参数可以转为数值,就返回false。意思是说这个参数,“是数值”。 2、如果参数不能转为数值,就返回true。意思是说,这个参数“不是数值”。 挺绕的哈,反着的。...但从这个函数的名称来理解却也正常,isNaN嘛, “是数值”,返回的false; “不是数值”,却返回true; isNaN()方法也可以操作对象, ?

1.5K70

分享18个用于处理 null、NaN 和undefined 的 JS 代码片段

检查 NaN: 要检查值是否为 NaN(非数字),可以使用 isNaN() 函数: if (isNaN(value)) { // Code to handle NaN value } 4....如果为 NaN,则默认为一个值: 如果值为 NaN,您可以使用 isNaN() 函数以及逻辑 OR 运算符来提供默认值: const result = isNaN(value) ?...检查值是否为 null、undefined或 NaN: 将 null、未定义和 NaN 检查与逻辑 OR 运算符结合起来: if (variable === null || typeof variable...使用 NaN 进行短路评估: 如果值为 NaN,则可以使用逻辑 AND 运算符进行短路评估: const result = !isNaN(value) && someFunction(); 13....将 NaN 转换为布尔值: 要将 NaN 转换为布尔值,可以使用 isNaN() 函数和逻辑 NOT 运算符: const result = !isNaN(value); 17.

52350

JS中的NaN和isNaN,简直是双重人格?

number数字类型   包括数字和NaNNaN:not a number 但是它是数字类型的 isNaN的用法:检测当前值是否不是有效数字,返回true代表不是有效数字,返回false是有效数字...如果当前字符串中出现任意一个非有效数字字符,结果则为NaN Number('13.5') ->13.5 可以识别小数 [布尔转数字] Number(true) ->1 Number(false) ->...]):false 2、当前检测的值已经是数字类型,是有效数字返回false,不是返回true(数字类型中只有NaN不是有效数字,其余都是有效数字) parseInt / parseFloat,等同于Number...NaN的比较   NaN==NaNfalse NaN和谁都不相等,包括自己 if(Number(num)==NaN){   alert('num不是有效数字!')...} 【布尔 boolean】 只有两个值:true / false,把其它数据类型的值转换为布尔类型:除了“NaN/0/''/null/undefined”这五个值会转换为false,其余的都会转换为

1.4K30

彻底终结 Javascript 背后的隐式类型转换

正文从这开始~~ 网上已经有很多 JS 隐式类型转换相关的博客, 很多面试者专门复习过此问题, 但依然挡不住面试官一个又一个的无聊小题目~ [] == false // true !!...首先我们知道 [] 和 false 一个是对象, 一个是布尔值, 类型不同, 需要类型转换再做比较 要注意, JS 中规定, 如果 == 中有布尔值, 只能转换为数字, 那为什么不是转换成字符串呢?...显然就是返回 true 转换路程 推理到此结束, 我们回顾一下这个比较的转换规程 [] == false [] == 0 ‘’ == 0 0 == 0 看到这里我们猛然想明白了为啥 NaN 不能等于自身...相当于 NaN == NaN, 如果 NaN 可以等于自身的话, 这种情况就会返回 true 那整个隐式转换就乱套了 因此 NaN 不能等于自身也是哑巴吃黄连, 有苦说不出啊 以上纯属本人推测, 概不负责..., 毕竟 Java 中的 NaN 也不能等于自身 隐式转换的恶果 NaN 不能等于自身是隐式转换最大的恶果 你可以尝试如下操作 [1, 2, NaN].indexOf(NaN) // -1 [1, 2

88820

JS 中有趣的事实

使用 JS 有很多有趣的地方。尽管工程师们每天都在与之打交道,但仍有一些语言没有被开发出来。本广将介绍一些你可能想不到的JS特性。...NaN 是一个 number 类型 NaN是一个 number 类型。 而且,NaN等于它自己。 实际上NaN等于任何东西,验证一个变量是否是 NaN 可以使用 isNaN() 方法来判断。...> typeof(NaN) "number" > NaN === NaN false null 是一个对象 null是一个对象。 听起来奇怪! 对? 但这是事实。...> null instanceof Object false undefined 可以被定义 undefined不是 JS 中的保留关键字, 你可以为其指定值也不会报错,如果声明一个变量没有赋值...()返回false的事实看起来是错误的,但实际上它是正确的。

1K30

JS隐式转换_隐式转换是什么

在进行比较运算,或者进行四则运算时,常常会触发JS中的隐式转换机制。 首先要记住JS设计者的初衷是美好的,他希望 == 是美好的操作选择,但是在美好的希望也是希望。...小案例 为什么 [] == false ?...这是隐式转换的一个很大的弊端,es6的includes方法可以检测出NaN等于NaN,这是一大进步 null == 0 结果为false 这时候两边的类型也不同,但是却没有做类型转换,why...[] = true 这里并没有涉及 == 比较,只需要判断 [] 是true还是false即可 注意,字符串转换为数字调用的是Number方法,NaN也是数字,某些方面来说布尔类型也属于一种...int类型 隐式转换的最大弊端 NaN等于NaN 几种为false的情况,只要不是这几组值,结果均为true 0,’’,NaNfalse,null,undefined 涉及隐式转换最多的两个运算符

1.9K20
领券