大家好,我来了,本期为大家带来的前端开发知识是”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具有内置功能来检测NaNisNaN()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 分布在算术运算中:

resultinvalidNumber值(具有NaN)附加到后,对变量的操作会中断 result

3.4不确定形式

NaN 算术运算采用不确定形式时,将创建值。

分工0 / 0Inifinity / Infinity

的乘法0Infinity

无限数量的不同符号的加法:

3.5数学函数的无效参数

负数的平方根:

或负数的对数:

4。结论

用JavaScript用表示的“非数字”概念NaN对于表示数字上的错误操作很有用。

NaN不等于任何值,即使是NaN本身也不等于。建议使用检查变量是否包含NaN的方法Number.isNaN(value)

将数字字符串转换为数字失败时,可能会导致显示“非数字”。这是一个好主意,检查是否parseInt()parseFloat()Number()不返回NaN

undefinedNaN作为算术运算中的操作数通常会导致NaN。正确处理undefined(为缺少的属性提供默认值)是防止这种情况的好方法。

数学函数的不确定形式或无效参数也会导致“ Not A Number”。但是这些情况很少发生。

这是我的务实建议:“知道NaN吗?搜索undefined!”

原著作者:德米特里·帕夫鲁汀

文章来源:国外

原著链接:

Dmitri Pavlutin Blog​dmitripavlutin.com

PS:原著文章内容为英文版本,建议使用360极速浏览器进行翻译阅读。

javascript乘法和加法_Web前端:JavaScript中的NaN是什么?相关推荐

  1. javascript乘法和加法_前端基础:JavaScript

    Introduction 脚本语言叫做动态语言,它是一种解释型语言,它一般由文本编辑器编辑.脚本语言,一般它不能单独运行,需要嵌入到其它语言中. JavaScript 是比较流行的一种脚本语言,通过 ...

  2. 前端中什么是中台开发环境_Web前端开发中需要学习什么?会使用到哪些开发工具?...

    今天我们来谈谈Web和前端开发过程中需要学习什么?前端开发需要使用什么开发工具?也简单介绍前端开发前景和薪水.下面和千锋广州小编一起来看看吧! ​前端工程师的主要职责: 前端工程师在不同的公司有不同的 ...

  3. 前端屏幕尺寸和分辨率_web前端开发中常用的尺寸和位置

    我们在日常web前端开发过程中,会经常用到各种尺寸和位置.通常是js做动画的时候.轮播图,滚屏动画,粒子,碰撞检测,拖拽,滚动加载等等.这里我将常用的尺寸和位置的获取进行总结,不包括canvas,SV ...

  4. c++怎么将文件中的数据读出并赋值给字符串_web前端开发过程中如何写JavaScript程序?...

    script标签使用 < script >< /script > src : 外联script 标签(立即调用,不能在该标签内写代码) < script > // ...

  5. javascript乘法和加法_JavaScript大数相加相乘的实现方法实例

    前言 JavaScript 中的最大安全整数是 2 ^{53} – 1 ,即 9007199254740991,当我们进行超出这个范围的数值计算的时候就无法得到精确的值,而是一个近似值,比如我们计算 ...

  6. javascript乘法和加法_js 大整数加法、乘法、除法

    有一定的编程经验的人都知道,当我们对数据操作的时候,若数据过大,计算机将这个大数从十进制的转为二进制的,是没有那个类型的放的了的,因此,我们经常将一个大数转化为字符串来操作.接下来我将演示大整数的加法 ...

  7. javascript乘法和加法_JS加减乘除运算

    //加法 Number.prototype.add = function(arg){ var r1,r2,m; try{r1=this.toString().split(".")[ ...

  8. 后端直接跳转前端页面_WEB前端开发中页面跳转等待时间过长如何解决?

    作为一个初学前端的小白,我遇到了这个令我疑惑的问题. 项目使用webpack打包并且用webpack-dev-server测试. 在我完成登录功能后发现浏览器在工作中有"偷懒"的嫌 ...

  9. 前端 - JavaScript 练习 - 模拟新人加群逻辑流程

    目录 (一)初始版本 (二)改进版本 往期文章 (一)初始版本 <!--* @Date: 2021-09-02 19:41:01* @LastEditTime: 2021-09-02 22:43 ...

最新文章

  1. vs2010 Qt插件报错Couldn't register all Qt4VSAddin command解决方案
  2. Spring全家桶面试真题
  3. java 正则表达式 组合_java基础:5.1 面向对象、类的关联 聚合 组合、正则表达式...
  4. LeetCode 657. Judge Route Circle
  5. POJ 3090 (欧拉函数) Visible Lattice Points
  6. 从数据到代码——通过代码生成机制实现强类型编程[上篇]
  7. 新消费万字之辩 | “疯狗浪”时代来临,品牌如何结构性增长?
  8. mysql中文模糊查询_解决mysql中文模糊查询问题的方法
  9. 科来网络分析系统(实用)
  10. mac用什么软件测试硬盘好坏,Mac怎么测试硬盘速度?
  11. 人工智能 2 级就来越塔来杀我,论文已被NeurIPS收录!
  12. 无线网卡驱动 Wireless AC “该设备无法启动(代码10) ”问题解决方案汇总
  13. 38 全志平台的script.bin在linux内核里的应用分析
  14. GeForce MX150相对应的NVIDIA CUDA版本_七彩虹ProMaster A1设计师电脑评测:RTX 3080加持 生产力大提升|七彩虹|gpu|nvidia|amd|英特尔|显卡...
  15. 读书笔记专业投机原理
  16. 多edittext监听变化的优化
  17. 如何获取抖音和快手直播间的直播流地址
  18. 电容电阻电感在电路中的作用
  19. 如何处理好与时间的关系?
  20. Unable to start web server; nested exception is org.springframework.context.ApplicationContextExcept

热门文章

  1. Flume实操(三)【实时读取目录文件到HDFS案例】
  2. leetcode 448. 找到所有数组中消失的数字(Java版)
  3. 坦克大战 - 设计模式、BIO、NIO、AIO、Netty
  4. 使用V8和node轻松profile分析nodejs应用程序
  5. JVM系列之:Contend注解和false-sharing
  6. 08.remote_cluster配置
  7. 02.analyzer-tokenizer
  8. 洛谷——P1219 八皇后
  9. 【刘汝佳代码详解】例题6-4破损的键盘(Broken Keyboard,UVa 11988)
  10. RT-Thread uart串口设备驱动代码结构剖析