概述
大家好,我来了,本期为大家带来的前端开发知识是”Web前端:JavaScript中的NaN是什么?“,有兴趣做前端的朋友,一起来看看吧!
JavaScript中的数字类型包含整数和浮点数:
另外,还有2个特殊数字值:(Infinity
大于任何其他数字的数字)和NaN
(表示“非数字”概念):
虽然直接使用的NaN
情况很少见,但在对数字进行失败的操作后却会令人惊讶地出现。
让我们仔细看一下NaN
特殊值:如何检查变量是否具有NaN
,并重要地了解创建“非数字”值的方案。
1. NaN号
JavaScript中的数字类型是所有数字值的集合,包括“非数字”,正无穷大和负无穷大。
可以使用特殊表达式NaN
或作为全局对象或Number
函数的属性来访问“非数字” :
尽管具有数字类型,但“非数字”是不代表实数的值。NaN
对于表示数字上的错误操作很有用。
例如,将数字与相乘undefined
不是有效运算,因此结果为NaN
:
也尝试解析无效的数字字符串,例如'Joker'
导致NaN
:
第3.节“导致NaN的操作”详细信息会生成NaN
。
2.检查与NaN的相等性
的有趣特性NaN
是,即使它本身也不等于任何值NaN
:
此行为对于检测变量是否为有用NaN
:
someNumber !== someNumber
表达式true
仅当someNumber
为时NaN
。因此,以上代码片段将记录到控制台"Is NaN"
。
JavaScript具有内置功能来检测NaN
:isNaN()
和Number.isNaN()
:
这些函数之间的区别在于Number.isNaN()
不会将其参数转换为数字:
isNaN('Joker12')
将参数'Joker12'
转换为数字NaN
。因此函数返回true
。
另一方面,Number.isNaN('Joker12')
检查参数是否为而不进行转换NaN
。该函数返回,false
因为'Joker12'
不相等NaN
。
3.产生NaN的运算
3.1解析数字
在JavaScript中,您可以将数字字符串转换为数字。
例如,您可以轻松地将'1.5'
字符串转换为1.5
浮点数:
当字符串不能转换为数字时,解析函数返回NaN
:表示解析失败。这里有些例子:
解析数字时,最好验证一下解析结果是否为NaN
:
的解析inputToParse
失败,因此parseInt(inputToParse, 10)
返回NaN
。条件if (isNaN(number))
是true
,并且number
分配给0
。
3.2 未定义为操作数
undefined
在加法,乘法等算术运算中用作操作数的结果NaN
。
例如:
getFontSize()
是fontSize
从样式对象访问属性的函数。调用时getFontSize({ size: 16 })
,结果为undefined
(对象fontSize
中不存在{ size: 16 }
属性)。
fontSize * 2
被评估为undefined * 2
,结果为NaN
。
undefined
在算术运算中将缺少的属性或返回的函数用作值时,将生成“非数字” 。
确保undefined
不会达到算术运算是防止的好方法NaN
。随时检查“ 7个未在JavaScript中处理的提示”。
3.3 NaN作为操作数
NaN
当非整数操作中的操作数为时,也会生成值NaN
:
NaN
分布在算术运算中:
result
将invalidNumber
值(具有NaN
)附加到后,对变量的操作会中断 result
。
3.4不确定形式
NaN
算术运算采用不确定形式时,将创建值。
分工0 / 0
和Inifinity / Infinity
:
的乘法0
和Infinity
:
无限数量的不同符号的加法:
3.5数学函数的无效参数
负数的平方根:
或负数的对数:
4。结论
用JavaScript用表示的“非数字”概念NaN
对于表示数字上的错误操作很有用。
NaN
不等于任何值,即使是NaN
本身也不等于。建议使用检查变量是否包含NaN
的方法Number.isNaN(value)
。
将数字字符串转换为数字失败时,可能会导致显示“非数字”。这是一个好主意,检查是否parseInt()
,parseFloat()
或Number()
不返回NaN
。
undefined
或NaN
作为算术运算中的操作数通常会导致NaN
。正确处理undefined
(为缺少的属性提供默认值)是防止这种情况的好方法。
数学函数的不确定形式或无效参数也会导致“ Not A Number”。但是这些情况很少发生。
这是我的务实建议:“知道NaN
吗?搜索undefined
!”
原著作者:德米特里·帕夫鲁汀
文章来源:国外
原著链接:
Dmitri Pavlutin Blogdmitripavlutin.comPS:原著文章内容为英文版本,建议使用360极速浏览器进行翻译阅读。
最后
以上就是粗暴蓝天为你收集整理的javascript乘法和加法_Web前端:JavaScript中的NaN是什么?的全部内容,希望文章能够帮你解决javascript乘法和加法_Web前端:JavaScript中的NaN是什么?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复