摘要:如果参数不是数值都返回去掉非数字部分返回数字部分遇到的第一个非数字停止相比可以多识别一个和是将全局方法和,移植到对象上面,行为完全保持不变。
关于Number的常用方法和注意点
NaNNaN 是代表非数字的特殊属性
NaN 注意点NaN不是一个数 但是属于number类型
typeof NaN //"number"
NaN和NaN不相等
NaN == NaN //false何时会出现NaN
数字和 NaN 进行运算
1 [+ - * /] NaN = NaN
无效数学运算中
"a" - 1 || "a" * 1 || "a" / 1 = NaN
数字 + undefined
1 + undefined = NaN
- 在进行运算的时候会 - * / 都会默认的调用 Number 方法 遇到无法转换的都是 NaN
- 因为 + 在JS中不仅仅是数学运算, 遇到字符串的时候属于字符串拼接 其他时候也会默认调用 Number 进行转换
- 排除数字和 NaN 进行运算之外 也只有 数字 + undefined = NaN 具体的看Number()的转换规则
Number() 方法把值转换为数字
对字符串进行转换
Number("66") //66 Number("66px") //NaN
对字符串进行转换的时候只有 都是 数字才会转换成数字 反之
对布尔值进行转换 true 和 false
Number(true) //1 Number(false) //0
对布尔值进行转换的时候 true = 1 false = 0
null 和 undefined
Number(null) // 0 Number(undefined) //NaN
null 和 undefined 的区别请看 null和undefined的区别 阮老师的这篇文章详细的介绍了
"" 和 []
Number("") //0 Number([]) //0
把 [] 转换为数字 首先调用数组的 toString 方法把 [] -> ""
isNaN(), Number.isNaN()isNaN()是ES5方法 Number.isNaN()是ES6在 Number 对象上新增加方法
isNaN() 检测一个值是否为NaN 会先调用Number() 将非数值的值转为数值,再进行判断
isNaN(NaN) //true isNaN(1) //false isNaN("1px") //true
Number.isNaN()只有对于NaN才返回true,非NaN一律返回false
isNaN(undefined) //true Number.isNaN(undefined) //false 不会调用 Number isNaN("NaN") // true Number.isNaN("NaN") // falseNumber.isInteger()
Number.isInteger() 判断一个数值是否为整数。
Number.isInteger(11) // true Number.isInteger(11.0) // true Number.isInteger(11.1) // false
如果参数不是数值 都返回 false
Number.isInteger(null) //false Number.isInteger(true) //false Number.isInteger("") //falseparseInt(), Number.parseInt() parseFloat(), Number.parseFloat()
去掉非数字部分 返回数字部分
parseInt() 遇到的第一个非数字停止
parseInt("12px") // 12 parseInt("px12") //NaN
parseFloat() 相比 parseInt() 可以多识别一个 .
parseFloat("12.333px") // 12 parseFloat("px12.333") //NaN
Number.parseInt() 和 Number.parseFloat() 是 ES6 将全局方法parseInt()和parseFloat(),移植到Number对象上面,行为完全保持不变。
toFixed()toFixed()保留小数点后几位
1.14432.toFixed(2) // "1.14" 1.14532.toFixed(2) // "1.15"
toFixed()使用四舍五入法
Math 对象Math是一个对象,里面提供了很多操作数字的相关方法
Math.abs()Math.abs() 获取绝对值
Math.abs(-1) //1 Math.abs(-true) //1Math.ceil()
Math.ceil 向上取整
Math.ceil(12.000001) //13 Math.ceil(-12.6) //-12Math.floor()
Math.floor 向下取整
Math.floor(12.6) //12 Math.floor(-12.6) //-13Math.round()
Math.round() 四舍五入
Math.round(12.5) //13 Math.round(12.4) //12 Math.round(-12.4) //12 Math.round(-12.5) //12 Math.round(-12.6) //13Math.max(), Math.min()
Math.max()取一组数的最大值
Math.max(12, 23, 13, 24, 23, 24, 25, 34, 15); //34
Math.min 取一组数的最小值
Math.min(12, 23, 13, 24, 23, 24, 25, 34, 15); //12Math.random()
Math.random 获取[0-1]之间的随机小数
Math.random() //0.8184921957461317 Math.random() //0.351685690699056 Math.random() //0.4972569148842041Math.trunc()
Math.trunc() 用于去除一个数的小数部分 返回整数
Math.trunc(1.23456) //1 Math.trunc(1.23456) //1 Math.trunc("3.43") //3 Math.trunc(true) //1 Math.trunc(NaN) //NaN Math.trunc(undefined) //NaN
通过上面列子 很明显的是Math.trunc() 方法 遇到非数字会默认调用Number()进行转换
Math.sign()Math.sign() 判断一个数是正数、负数、还是零。会默认调用Number()进行转换
- 参数为正数 返回 1
- 参数为负数 返回 -1
- 参数为 0 返回 0
- 参数为-0 返回 -0
- 其他值 返回 NaN
Math.sign(6) // 1 Math.sign(-6) // -1 Math.sign(0) // 0 Math.sign(-0) // -0 Math.sign(null) // 0 Math.sign(undefined) //NaN Math.sign(NaN) // NaN总结
- 获取指定范围内的随机整数 代码片段-获取指定范围内的随机整数
更多关于 ES6 Number 的扩展 还正在学习中 阮一峰ES6教程-数值的扩展
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/95390.html
摘要:七种数据类型中共有七种数据类型除了,所有的数据类型都被称为原始数据类型中每个变量都保存了一个值,每个值都对应着一种数据类型在使用过程中,值的数据类型会发生相应的变化,以促使代码正常运行显示转换给函数传递任何参数,都会返回一个类型的值在转换原 七种数据类型 JS 中共有七种数据类型 null undefined boolean number string symbol object ...
摘要:但这个数值并不安全从到中间的数字并不连续,而是离散的。对象中的常量表示与可表示的大于的最小的浮点数之间的差值。绝对值的最大安全值。寻找奇怪现象的原因为什么结果是与的逼近算法类似。 js 中的 number 为何很怪异 声明:需要读者对二进制有一定的了解 对于 JavaScript 开发者来说,或多或少都遇到过 js 在处理数字上的奇怪现象,比如: > 0.1 + 0.2 0.30000...
摘要:一是一种弱类型动态类型检查的语言。动态类型与静态类型的核心区别动态类型的类型检查是是在代码运行的时候进行的,静态类型的类型检查则是在编译时进行。 一、js是一种弱类型、动态类型检查的语言。 弱类型:在定义变量时,可以为变量定义复制任何数据,变量的数据类型不是固定死的,这样的类型叫做弱类型。 var a = 10; a = abc; a = []; a = function() {}...
摘要:基础知识前端开发常用的浏览器谷歌浏览器内核引擎火狐浏览器内核欧朋浏览器内核浏览器内核浏览器内核作为前端开发,我们会使用编写代码,编写代码的时候要遵循一些规范浏览器开发商开发的浏览器,目的就是为了按照的规范,识别出开发者编写的代码,并且在页面 JS基础知识 前端开发常用的浏览器 谷歌浏览器(chrome):Webkit内核(v8引擎) 火狐浏览器(firefox):Gecko内核 欧朋...
摘要:和这三种基本的数据类型,都有对应的引用包装类型和。应用于引用类型的判断,所以对于这三类基本类型没有什么意义。 JS 中的类型判断 js中的数据类型 基本数据类型 undefined、number、string、boolean 引用数据类型 null、Object、Number、String、Boolean、Function、Array、Date、RegExp、Error、Argumen...
阅读 3277·2023-04-26 00:57
阅读 599·2021-10-08 10:05
阅读 1345·2021-09-08 09:36
阅读 4146·2021-08-12 13:31
阅读 2541·2019-08-30 15:55
阅读 2236·2019-08-30 15:55
阅读 1013·2019-08-30 15:55
阅读 2683·2019-08-29 13:17