美文网首页让前端飞
学习笔记(Number)

学习笔记(Number)

作者: 泡沫的快乐 | 来源:发表于2017-06-12 20:13 被阅读0次

    新人学习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谢谢你的观看~

    相关文章

      网友评论

        本文标题:学习笔记(Number)

        本文链接:https://www.haomeiwen.com/subject/likcqxtx.html