摘要:本文是重温基础系列文章的第六篇。以指定的精度返回该数值对象的字符串表示,可接收一个参数,用来指定有效数个数的整数。
本文是 重温基础 系列文章的第六篇。
今日感受:自己需要多总结,会有不同收获(比如今晚我做的转正总结)。
系列目录:
【复习资料】ES6/ES7/ES8/ES9资料整理(个人整理)
【重温基础】1.语法和数据类型
【重温基础】2.流程控制和错误处理
【重温基础】3.循环和迭代
【重温基础】4.函数
【重温基础】5.表达式和运算符
本章节复习的是JS中的数字类型,涉及的API比较多。
前置基础:
在JavaScript中,数字为双精度浮点类型(即一个数字范围只能在-(253-1)和(253-1)之间),整数类型也一样。
另外数字类型也可以是以下三种符号值:
+Infinity : 正无穷;
-Infinity : 负无穷;
NaN : 非数字(not a number);
1.数字对象JS中内置了Number对象的一些常量属性:
属性 | 描述 |
---|---|
Number.MAX_VALUE | 可表示的最大值 |
Number.MIN_VALUE | 可表示的最小值 |
Number.NaN | 特指“非数字” |
Number.NEGATIVE_INFINITY | 特指“负无穷”;在溢出时返回 |
Number.POSITIVE_INFINITY | 特指“正无穷”;在溢出时返回 |
Number.EPSILON | 表示1和比最接近1且大于1的最小Number之间的差别 |
Number.MIN_SAFE_INTEGER | JavaScript最小安全整数. |
Number.MAX_SAFE_INTEGER | JavaScript最大安全整数. |
注意:以上所有属性都是不可写,不可枚举,也不可配置。
Number.MAX_VALUE
Number.MAX_VALUE是 Number 对象的一个静态属性,值接近于 1.79E+308。大于 Number.MAX_VALUE 的值代表 "Infinity"。
let a = 100; if(a < Number.MAX_VALUE){ console.log("success"); } // success
Number.MIN_VALUE
Number.MIN_VALUE是 Number 对象的一个静态属性,值接近于 5e-324,是 JavaScript 里最接近 0 的正值,而不是最小的负值。
let a = 100; if(a > Number.MIN_VALUE){ console.log("success"); } // success
Number.NaN
Number.NaN 表示“非数字”,和 NaN 一样。
Number.POSITIVE_INFINITY
Number.POSITIVE_INFINITY 属性表示正无穷大,值同全局对象 Infinity 属性的值相同。
let a = Number.MAX_VALUE * 2; if(a == Number.POSITIVE_INFINITY){ console.log("success"); } // success
Number.NEGATIVE_INFINITY
Number.NEGATIVE_INFINITY 属性表示负无穷大,值和全局对象的 Infinity 属性的负值相同。
let a = - Number.MAX_VALUE * 2; if(a == Number.NEGATIVE_INFINITY){ console.log("success"); } // success
Number.EPSILON
Number.EPSILON属性表示 1 与Number可表示的大于 1 的最小的浮点数之间的差值,值接近于 2-52 。
let a = 0.1, b = 0.2, c = 0.3; let d = (Math.abs(a + b - c) < Number.EPSILON); d; // true
Number.MIN_SAFE_INTEGER
JS中最小的安全的integer型数字 (-(253 - 1))。
Number.MAX_SAFE_INTEGER
JS中最大的安全的integer型数字 (253 - 1)。
2.数字方法常见的方法有:
方法 | 描述 |
---|---|
Number.parseFloat() | 把字符串参数解析成浮点数,和全局方法 parseFloat() 作用一致. |
Number.parseInt() | 把字符串解析成特定基数对应的整型数字,和全局方法 parseInt() 作用一致. |
Number.isFinite() | 判断传递的值是否为有限数字。 |
Number.isInteger() | 判断传递的值是否为整数。 |
Number.isNaN() | 判断传递的值是否为 NaN. |
Number.isSafeInteger() | 判断传递的值是否为安全整数。 |
使用方法:
Number.parseFloat()
let a1 = 3.1415, a2 = "3.1114"; Number.parseFloat(a1); // 3.1415; Number.parseFloat(a2); // 3.1111; parseFloat(a1); // 3.1415; parseFloat(a2); // 3.1111; Number.parseFloat == parseFloat;// true
Number.parseInt()
let a1 = "0110"; Number.parseInt(a1, 2); // 6 Number.parseInt(a1, 10); // 110 Number.parseInt = parseInt; // true
Number.isFinite()
Number.isFinite(Infinity); // false Number.isFinite(NaN); // false Number.isFinite(-Infinity); // false Number.isFinite(0); // true Number.isFinite(2e64); // true Number.isFinite("0"); // false, 全局函数 isFinite("0") 会返回 true
Number.isInteger()
Number.isInteger(0); // true Number.isInteger(1); // true Number.isInteger(-100000); // true Number.isInteger(0.1); // false Number.isInteger(Math.PI); // false Number.isInteger(Infinity); // false Number.isInteger(-Infinity); // false Number.isInteger("10"); // false Number.isInteger(true); // false Number.isInteger(false); // false Number.isInteger([1]); // false
Number.isNaN()
Number.isNaN(NaN); // true Number.isNaN(Number.NaN); // true Number.isNaN(0 / 0) // true // 下面这几个如果使用全局的 isNaN() 时,会返回 true。 Number.isNaN("NaN"); // false,字符串 "NaN" 不会被隐式转换成数字 NaN。 Number.isNaN(undefined); // false Number.isNaN({}); // false Number.isNaN("blabla"); // false // 下面的都返回 false Number.isNaN(true); Number.isNaN(null); Number.isNaN(37); Number.isNaN("37"); Number.isNaN("37.37"); Number.isNaN(""); Number.isNaN(" ");
Number.isSafeInteger()
Number.isSafeInteger(3); // true Number.isSafeInteger(Math.pow(2, 53)) // false Number.isSafeInteger(Math.pow(2, 53) - 1) // true Number.isSafeInteger(NaN); // false Number.isSafeInteger(Infinity); // false Number.isSafeInteger("3"); // false Number.isSafeInteger(3.1); // false Number.isSafeInteger(3.0); // true
数字类型原型上的方法:
方法 | 描述 | 案例 |
---|---|---|
toExponential() | 返回一个数字的指数形式的字符串 | 1.23e+2 |
toFixed() | 返回指定小数位数的表示形式 | var a=123,b=a.toFixed(2)//b="123.00" |
toPrecision() | 返回一个指定精度的数字。 | a=123中,3会由于精度限制消失var a=123,b=a.toPrecision(2)//b="1.2e+2" |
toExponential()
以指数表示法返回该数值字符串表示形式,可接收一个参数指定小数点后几位数字。
let a = 99.6633; let a1 = "字符串:" + a.toExponential(); // "字符串:9.96633e+1" let a2 = "字符串:" + a.toExponential(2);// "字符串:9.97e+1"
toFixed()
使用定点表示法来格式化一个数,可接收一个参数指定保留小数点后几位,取值为0-20之间。
注意: 返回的数据类型是字符串类型。
let a = 1.2345; a.toFixed(); // "1" a.toFixed(2); // "1.23"
toPrecision()
以指定的精度返回该数值对象的字符串表示,可接收一个参数,用来指定有效数个数的整数。
let a = 1.2345; let a1 = "字符串:" + a.toPrecision(); // "字符串:1.2345" let a2 = "字符串:" + a.toPrecision(1);// "字符串:1" let a2 = "字符串:" + a.toPrecision(2);// "字符串:1.2"3.数学对象
JS内置的数学对象Math,有很多属性和方法,这里需要注意的是Math对象中的三角函数参数都是弧度制的。
方法 | 描述 |
---|---|
abs() | 绝对值 |
sin(), cos(), tan() | 标准三角函数;参数为弧度 |
asin(), acos(), atan(), atan2() | 反三角函数; 返回值为弧度 |
sinh(), cosh(), tanh() | 双曲三角函数; 返回值为弧度. |
asinh(), acosh(), atanh() | 反双曲三角函数;返回值为弧度. |
pow(), exp(), expm1(), log10(), log1p(), log2() | 指数与对数函数 |
floor(), ceil() | 返回最大/最小整数小于/大于或等于参数 |
min(), max() | 返回一个以逗号间隔的数字参数列表中的较小或较大值(分别地) |
random() | 返回0和1之间的随机数。 |
round(),fround(), trunc() | 四舍五入和截断函数 |
sqrt(), cbrt(), hypot() | 平方根,立方根,平方参数的和的平方根 |
sign() | 数字的符号, 说明数字是否为正、负、零。 |
clz32(),imul() | 在32位2进制表示中,开头的0的数量.返回传入的两个参数相乘结果的类C的32位表现形式 |
完整的描述和使用方法,建议查看 MDN Math
参考资料1.MDN 数字和日期
本部分内容到这结束
Author | 王平安 |
---|---|
pingan8787@qq.com | |
博 客 | www.pingan8787.com |
微 信 | pingan8787 |
每日文章推荐 | https://github.com/pingan8787... |
JS小册 | js.pingan8787.com |
欢迎关注微信公众号【前端自习课】每天早晨,与您一起学习一篇优秀的前端技术博文 .
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/100196.html
摘要:前置知识中的正则表达式是用来匹配字符串中指定字符组合的模式。另外需要记住正则表达式也是对象。在正则表达式创建时更新,不执行。替换与正则表达式匹配的子串。查找以十六进制数规定的字符。正则表达式拓展介绍在中有两种情况。 本文是 重温基础 系列文章的第九篇。 今日感受:时间管理-角色管理法。 系列目录: 【复习资料】ES6/ES7/ES8/ES9资料整理(个人整理) 【重温基础】1.语...
摘要:本文是重温基础系列文章的第七篇。系列目录复习资料资料整理个人整理重温基础语法和数据类型重温基础流程控制和错误处理重温基础循环和迭代重温基础函数重温基础表达式和运算符重温基础数字本章节复习的是中的时间对象,一些处理的方法。 本文是 重温基础 系列文章的第七篇。今日感受:做好自律。 系列目录: 【复习资料】ES6/ES7/ES8/ES9资料整理(个人整理) 【重温基础】1.语法和数据类型...
摘要:字符串拓展在我们判断字符串是否包含另一个字符串时,之前,我们只有方法,之后我们又多了三种方法返回布尔值,表示是否找到参数字符串。返回布尔值,表示参数字符串是否在原字符串的头部。 本文是 重温基础 系列文章的第八篇。今日感受:人在异乡,也不能忘记汤圆。 系列目录: 【复习资料】ES6/ES7/ES8/ES9资料整理(个人整理) 【重温基础】1.语法和数据类型 【重温基础】2.流程控制和...
摘要:构造函数通常首字母大写,用于区分普通函数。这种关系常被称为原型链,它解释了为何一个对象会拥有定义在其他对象中的属性和方法。中所有的对象,都有一个属性,指向实例对象的构造函数原型由于是个非标准属性,因此只有和两个浏览器支持,标准方法是。 从这篇文章开始,复习 MDN 中级教程 的内容了,在初级教程中,我和大家分享了一些比较简单基础的知识点,并放在我的 【Cute-JavaScript】系...
摘要:本文是重温基础系列文章的第四篇。系列目录复习资料资料整理个人整理重温基础语法和数据类型重温基础流程控制和错误处理重温基础循环和迭代本章节复习的是中的基础组件之一,函数,用来复用特定执行逻辑。箭头函数不能使用命令,即不能用作函数。 本文是 重温基础 系列文章的第四篇。今日感受:常怀感恩之心,对人对己。 系列目录: 【复习资料】ES6/ES7/ES8/ES9资料整理(个人整理) 【重温基...
阅读 2808·2023-04-26 02:49
阅读 3350·2021-11-25 09:43
阅读 3300·2021-10-09 09:43
阅读 2940·2021-09-28 09:44
阅读 2402·2021-09-22 15:29
阅读 4428·2021-09-14 18:02
阅读 2748·2021-09-03 10:48
阅读 3398·2019-08-30 12:47