新人学习JS的日记。
欢迎各位朋友纠错!
以下内容都在谷歌浏览器进行测试可用
>>语法
let n = 1;
n = new Number(1) //不推荐使用.
>>进制
注意!!!
进制只是方便自己而已。
JS会立刻将其转换为10进制的值,在去进行相应操作。
都不区分大小写
二进制( 0b/0B 开头)
n = 0b101 // 5
八进制( 0o/0O 开头) (0在非严格模式也会解析为八进制,但是严格模式已经禁止这种0开头的八进制)
n = 0o70 // 56
n = 070 // 56 严格模式禁止的语法,不建议使用
十六进制( 0X/0x 开头)
n = 0xA // 10
n = 0Xa // 10
科学计数法(e/E)
n = 1e1 // 10
数值过大 会转换为科学计数法显示(阈值我不清楚)
Math.pow(2,500) //3.273390607896142e+150
>>属性
>> Number.EPSILON 计算机精度误差
1: 解决一些浮点数问题. 0.1 + 0.2 会计算为 0.30000000000000004
例如 0.1 + 0.2 === 0.3 // false 改为:Math.abs(0.1 + 0.2 - 0.3) < Number.EPSILON true
>> Number.MAX_SAFE_INTEGER -- 最大安全整数(JS中)
1: Math.pow(2,53) - 1 即是该值
2: 超过该值,表示和比较就不准确. 如例3
3: Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2 会返回true
4: 最小安全整数是 该值直接加负号
>> Number.MAX_VALUE -- 能显示的最大数值
1: 该值大约为: 1.7976931348623157e+308
2: 大于该值就表示为 Infinity
3: 能显示的最小数值:该值加负号
>> Number.MIN_VALUE -- 能表示的最接近0的正值(而不是最小负值)
1: 该值大约为: 5e-324
2: 比该值小的(但不小于0) 会换转换为0
>> Number.NaN -- 特殊值NaN
1: 与window.NaN 无区别,只是为了更加规范才在Number下添加这个属性.
2: 应该返回一个正常数值,但是没有,就会返回NaN 例如: Number('dsds') //NaN
3: NaN不等于自己,也是唯一一个不等自己的值. 例如:
NaN === NaN // false
Number.NaN === NaN; // false
4: 任何和NaN进行<运算>的值都返回 NaN
位运算中NaN被转换为0
逻辑运算中都返回false // 除!NaN返回true
>> Number.POSITIVE_INFINITY -- 正无穷
1: 值为:Infinity
>> Number.NEGATIVE_INFINITY -- 负无穷
1: 值为:-Infinity
2: 任何正值(包括 Infinity) * Infinity <都返回> Infinity
任何负值(包括-Infinity) * Infinity <都返回> -Infinity
Infinity / 任何正值(除了Infinity) <都返回> Infinity
Infinity / 任何负值(除了-Infinity) <都返回> -Infinity
(NaN 或 0) * (Infinity 或 -Infinity) <都返回> NaN
(Infinity 或 -Infinity) / (Infinity 或 -Infinity) <都返回> NaN
任何数 / Infinity 都为0
任何数 / -Infinity 都为-0
>> Number.prototype -- Number构造函数原型
1: 原型是一个 0 的封装对象
测试: Object.prototype.toString.call(Number.prototype) // "[object Number]"
2: ES5规定该值不可变. 严格模式下会报错.
>>静态方法
>> Number.isNaN(val) -- 检测是否为NaN
1: 与window.isNaN(val)的区别:Number下的方法,val不进行类型转换.只有val是NaN,数值类型,才返回true. 例如:
Number.isNaN(NaN) // true
isNaN(NaN) // true 全局方法可以不写window
Number.isNaN('dsd') // false
window.isNaN('dsd') // true
2: 建议使用这个,不建议使用window.isNaN(val)
>> Number.isFinite(val) -- 检测是否为有穷数
1: 与window.isFinite(val)的区别:Number下的方法,val不进行类型转换.只有val是有穷值,数值类型,才返回true. 例如:
Number.isFinite('0') // false
isFinite('0') // true
Number.isFinite(Infinity) // false
Number.isFinite(NaN) // false
2: 建议使用这个,不建议使用window.isFinite(val)
>> Number.isInteger(val) -- 判断是否为整数
1: 如果被检测的值是整数,则返回 true,否则返回 false。
2: 注意 NaN 和 正负Infinity 不是整数。
3: 不行进行类型转换
4: Number.isInteger(0.1) // false
Number.isInteger("10") // false
>> Number.isSafeInteger(val) -- 判断是否为安全整数
1: 安全整数范围为 -(Math.pow(2,53) - 1)到 Math.pow(2,53) - 1 之间的整数,包含 -(Math.pow(2,53) - 1)和 Math.pow(2,53) - 1.
2: 不行进行类型转换
3: Number.isSafeInteger(Math.pow(2, 53)) // false
Number.isSafeInteger("3") // false
Number.isSafeInteger(3.1) // false
>> Number.parseInt(str[, radix])
1: 与window..parseInt(str)无区别.只是更加规范
2: str:字符串,不是字符串,则将其转换为字符串. radix:按照几进制转换.默认为10
3: 无法解析成浮点数,返回NaN
4: 值过于大返回Infinity
>> Number.parseFloat(str) -- 将字符串解析为浮点数.
1: 与window..parseFloat(str)无区别.只是更加规范
2: str:字符串,不是字符串,则将其转换为字符串
3: 无法解析成浮点数,返回NaN
4: 值过于大返回Infinity
>>实例方法
let num = 10.1234;
>> num.toString([radix])
1: radix:按radix进制转换,默认10
2: Number对象覆盖了 Object对象上的 toString() 方法,它不是继承的 Object.prototype.toString()
3: 例: num.toString() // "10.1234"
num.toString(2) // "1010.000111111001011100100100011101000101001110001111"
>> num.toFixed(digtis) -- 指定小数位数
1: num小数位数不够用0填充
2: num小数位数大于digtis时,按照四舍五入的规则舍去.
3: 默认digtis为0, 介于 0 到 20 (包括)之间,不同浏览器支持范围不同.
4: 返回字符串
5: 例: num.toFixed(1) // 10.1
>> num.toPrecision(precision) -- 指定有效数位数
1: num数位数不够用0填充
2: num数位数大于digtis时,按照四舍五入的规则舍去.
3: 如果 precison 参数不在 1 和 100 (包括)之间,将报错 。执行环境影响支持大小。
4: 可以理解为:前digtis有效(即不去改变其值),剩余位置都变为0.
5: 返回字符串.某些情况以指数表示法返回.
6: 例: num.toPrecision(4) // "10.12"
(10.1234).toPrecision(1) // "1e+1"
>> num.toExponential(fractionDigits) -- 用指数表示法
1: fractionDigits:指定小数点后有几位.默认使用尽可能多的位数.
2: 返回字符串
3: 例:num.toExponential() // "1.01234e+1"
num.toExponential(1) // "1.0e+1"
以上是我所知的的东西,有任何错误,请在评论指出!
O(∩_∩)O谢谢你的观看~
网友评论