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

为什么parseInt(key) === NaN总是计算为false

parseInt(key) === NaN总是计算为false的原因是因为NaN是一个特殊的值,表示不是一个数字(Not a Number)。NaN与任何值都不相等,包括它自己。所以,NaN与任何值进行比较,包括自身,都会返回false。

在JavaScript中,NaN是一个全局属性,它表示一个非数字值。当parseInt函数无法解析一个字符串时,会返回NaN。所以,当使用parseInt(key)解析一个无法转换为数字的字符串时,结果就是NaN。

然而,NaN与任何值进行比较都会返回false,包括与自身的比较。这是因为NaN是一个特殊的值,表示不是一个数字。即使两个NaN进行比较,结果也是false。

所以,parseInt(key) === NaN总是计算为false,因为NaN与任何值进行比较都返回false。如果要判断一个值是否为NaN,应使用isNaN()函数来进行判断。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云云原生容器服务(TKE):https://cloud.tencent.com/product/tke
  • 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(IoT):https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发(移动推送、移动分析、移动测试等):https://cloud.tencent.com/product/mobile
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云区块链(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云元宇宙(Metaverse):https://cloud.tencent.com/product/metaverse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 大话 JavaScript(Speaking JavaScript):第十一章到第十五章

    ,您可以在最终结果中看到它): > NaN + 3 NaN > 25 / NaN NaN 陷阱:检查值是否 NaN NaN是唯一不等于自身的值: > NaN === NaN false 严格相等(==...这就是为什么无法将 精确表示十进制浮点数的原因——无法将 3 放入分母。二进制浮点数中只有二。让我们看看哪些十进制浮点数可以很好地表示二进制浮点数,哪些不能。...此外,一些引擎如果str以零开头,则将基数设置 8: > parseInt('010') 8 > parseInt('0109') // ignores digits ≥ 8 8 因此,最好总是明确指定基数...在以下公式中,n[i]表示将数字n的第i位解释布尔值(0 false,1 true)。...陷阱:转换不可逆 考虑到 JavaScript 自动转换的频率,遗憾的是转换并不总是可逆的,特别是在布尔值方面: > String(false) 'false' > Boolean('false') true

    61010

    9种数据类型,数据类型区别及判断数据类型方法

    ,而存在计算机中的值均是以二进制的数,当以000开头,便会视为是object类型,而null刚好是000,所以这也是为什么null是object类型 判断引用类型数据不准确,像Date,regex都会视为...,转化为10进制数 - 从左到右,当遇到第一个非数字止,返回非数字字符之前的数据 parseInt('abc')   NaN parseInt('123abc')   123 parseInt('123.3a...')   123 parseInt(null)   NaN parseInt(undefined)   NaN parseFloat(): - 将数据转化为浮点型 - 从左到右,当遇到第一个非数字(点不算...)止,返回非数字字符之前的数据 parseInt('123.3a')   123.3 Boolean(): - 仅以下六种false - 0,false,null,undefined,‘’,NaN String...undefined true NaN == NaN false typeof(typeof(a)) string typeof(typeof(undefined)) string

    36210

    前端必备,25个最基本的JavaScript面试问题及答案

    ——结果是false: console.log(NaN === NaN); // logs "false" 一种半可靠的方法来测试一个数字是否等于 NaN,是使用内置函数 isNaN(),但即使使用...问题是,在ECMAScript规格说明中,整数只概念上存在:即,数字值总是存储浮点值。...如果这个布尔值false,那么我们仍然不能知道 X||Y是真是假,直到我们计算 Y,并且也把它解释执行为一个布尔值。 因此, 0 || 1 的计算结果true(1),同理计算1 || 2。...在形如 X&&Y的表达式中,首先计算 X并将其解释执行为一个布尔值。如果这个布尔值 false,那么返回 false(0),不再计算 Y,因为“与”的条件已经失败。...不过,关于 &&运算符有趣的地方在于,当一个表达式计算“true”的时候,那么就返回表达式本身。这很好,虽然它在逻辑表达式方面计算“真”,但如果你希望的话也可用于返回该值。

    93230

    前端day08-JS学习笔记

    :逻辑非,读作取反 true(真)变false(假),false(假)变true(真) 2.逻辑表达式:表达式1 逻辑运算符 表达式2 3.运算口诀 逻辑与表达式&&:一假则假 左右两边同时成立,才真...与isNaN 1.NaN:not a number 不是一个数字 (1)NaN是number数据类型中一个特殊的数值,是数学计算错误得到的一个结果 例如: '张三' - 100,在数学上这是一种错误的计算...),结果true 例如:isNaN(123),结果false,表示123不是NaN 3.了解:number类型浮点数(小数)精度丢失问题 (1)小数在进行数学计算时,会有一定的误差,这是计算机本身的...(num) : 为什么要有数据类型转换?...console.log(parseInt(null)); //NaN console.log(parseInt(undefined)); //NaN //一般数字字符串使用parseInt

    96610

    JavaScript

    (“abc”/18);  //结果是NaN Undefined和任何数值计算NaN; NaN 与任何值都不相等,包括 NaN 本身 b) isNaN() :任何不能被转换为数值的值都会导致这个函数返回...但是null ===undefined的结果(false)。不过相似归相似,还是有区别的,就是和数字运算时,10 + null结果:10;10 + undefined结果NaN。...(有小数也转换) 4.2.3 parseInt()和parseFloat()(译为取整和取浮点数) 空字符串parseInt()和parseFloat()返回NaN,Number("")返回0 parseInt...123 = parseInt(“123.123aaaa”); parseFloat(变量):如果变量中收割字符字母则结果NaN。 否则取出现首个非数字前的浮点数。...1.1.2 为什么要用函数 因为一部分代码使用次数可能会很多,所以封装起来,需要的时候调用就可以了。 案例:求和;(总是求和) 1.2 函数的定义 关键字function。

    1.2K60

    JavaScript基本语法(一)

    变量是计算机内存中存储数据的标识符,根据变量名称可以获取到内存中存储的数据。 二、为什么要使用变量? 使用变量可以方便的获取或者修改内存中的数据 三、变量如何使用?...(num+10); NaN console.log(num+10==NaN); false 不是一个数字不代表相等 c:可以用isNaN--- is not a number结果是不是NaN 例如:...var num5 = Number("a10"); console.log(num5); //NaN (2)、parseInt()转整数 例子: var num1 = parseInt("10");...逻辑运算表达式:由逻辑运算符连接起来的表达式 表达式1 && 表达式2 如果有一个false,整个的结果就是false 表达式1 || 表达式2 如果有一个true,整个的结果就是false !...表达式 表达式的结果是true,整个的结果false 表达式的结果是false,整个的结果true 二、运算符的优先级 优先级从高到底 () 优先级最高 一元运算符 ++ --

    56420
    领券