javascript乘法和加法_Web前端:JavaScript中的NaN是什么?
大家好,我来了,本期为大家带来的前端开发知识是”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.com
PS:原著文章内容为英文版本,建议使用360极速浏览器进行翻译阅读。
javascript乘法和加法_Web前端:JavaScript中的NaN是什么?相关推荐
- javascript乘法和加法_前端基础:JavaScript
Introduction 脚本语言叫做动态语言,它是一种解释型语言,它一般由文本编辑器编辑.脚本语言,一般它不能单独运行,需要嵌入到其它语言中. JavaScript 是比较流行的一种脚本语言,通过 ...
- 前端中什么是中台开发环境_Web前端开发中需要学习什么?会使用到哪些开发工具?...
今天我们来谈谈Web和前端开发过程中需要学习什么?前端开发需要使用什么开发工具?也简单介绍前端开发前景和薪水.下面和千锋广州小编一起来看看吧! 前端工程师的主要职责: 前端工程师在不同的公司有不同的 ...
- 前端屏幕尺寸和分辨率_web前端开发中常用的尺寸和位置
我们在日常web前端开发过程中,会经常用到各种尺寸和位置.通常是js做动画的时候.轮播图,滚屏动画,粒子,碰撞检测,拖拽,滚动加载等等.这里我将常用的尺寸和位置的获取进行总结,不包括canvas,SV ...
- c++怎么将文件中的数据读出并赋值给字符串_web前端开发过程中如何写JavaScript程序?...
script标签使用 < script >< /script > src : 外联script 标签(立即调用,不能在该标签内写代码) < script > // ...
- javascript乘法和加法_JavaScript大数相加相乘的实现方法实例
前言 JavaScript 中的最大安全整数是 2 ^{53} – 1 ,即 9007199254740991,当我们进行超出这个范围的数值计算的时候就无法得到精确的值,而是一个近似值,比如我们计算 ...
- javascript乘法和加法_js 大整数加法、乘法、除法
有一定的编程经验的人都知道,当我们对数据操作的时候,若数据过大,计算机将这个大数从十进制的转为二进制的,是没有那个类型的放的了的,因此,我们经常将一个大数转化为字符串来操作.接下来我将演示大整数的加法 ...
- javascript乘法和加法_JS加减乘除运算
//加法 Number.prototype.add = function(arg){ var r1,r2,m; try{r1=this.toString().split(".")[ ...
- 后端直接跳转前端页面_WEB前端开发中页面跳转等待时间过长如何解决?
作为一个初学前端的小白,我遇到了这个令我疑惑的问题. 项目使用webpack打包并且用webpack-dev-server测试. 在我完成登录功能后发现浏览器在工作中有"偷懒"的嫌 ...
- 前端 - JavaScript 练习 - 模拟新人加群逻辑流程
目录 (一)初始版本 (二)改进版本 往期文章 (一)初始版本 <!--* @Date: 2021-09-02 19:41:01* @LastEditTime: 2021-09-02 22:43 ...
最新文章
- vs2010 Qt插件报错Couldn't register all Qt4VSAddin command解决方案
- Spring全家桶面试真题
- java 正则表达式 组合_java基础:5.1 面向对象、类的关联 聚合 组合、正则表达式...
- LeetCode 657. Judge Route Circle
- POJ 3090 (欧拉函数) Visible Lattice Points
- 从数据到代码——通过代码生成机制实现强类型编程[上篇]
- 新消费万字之辩 | “疯狗浪”时代来临,品牌如何结构性增长?
- mysql中文模糊查询_解决mysql中文模糊查询问题的方法
- 科来网络分析系统(实用)
- mac用什么软件测试硬盘好坏,Mac怎么测试硬盘速度?
- 人工智能 2 级就来越塔来杀我,论文已被NeurIPS收录!
- 无线网卡驱动 Wireless AC “该设备无法启动(代码10) ”问题解决方案汇总
- 38 全志平台的script.bin在linux内核里的应用分析
- GeForce MX150相对应的NVIDIA CUDA版本_七彩虹ProMaster A1设计师电脑评测:RTX 3080加持 生产力大提升|七彩虹|gpu|nvidia|amd|英特尔|显卡...
- 读书笔记专业投机原理
- 多edittext监听变化的优化
- 如何获取抖音和快手直播间的直播流地址
- 电容电阻电感在电路中的作用
- 如何处理好与时间的关系?
- Unable to start web server; nested exception is org.springframework.context.ApplicationContextExcept
热门文章
- Flume实操(三)【实时读取目录文件到HDFS案例】
- leetcode 448. 找到所有数组中消失的数字(Java版)
- 坦克大战 - 设计模式、BIO、NIO、AIO、Netty
- 使用V8和node轻松profile分析nodejs应用程序
- JVM系列之:Contend注解和false-sharing
- 08.remote_cluster配置
- 02.analyzer-tokenizer
- 洛谷——P1219 八皇后
- 【刘汝佳代码详解】例题6-4破损的键盘(Broken Keyboard,UVa 11988)
- RT-Thread uart串口设备驱动代码结构剖析