美文网首页
Number(1),new Number(1),1

Number(1),new Number(1),1

作者: 香蕉不拿呢 | 来源:发表于2022-01-19 15:05 被阅读0次
    前言

    之前遇到一个new Number(1)数据类型判断问题,这里做一下整理梳理。

    实例
    let num1 = 1;
    let num2 = Number(1);
    let num3 = new Number(1)
    
    num1 == num2 //true
    num1 === num2 //true
    num1 == num3 //true
    num1 === num3 //false
    
    typeof num1 //"number"
    typeof num2 //"number"
    typeof num3 //"object"
    
    num1 instanceof Number // false
    num2 instanceof Number // false
    num3 instanceof Number // true
    
    Object.prototype.toString.call(num1) //"[object Number]"
    Object.prototype.toString.call(num2) //"[object Number]"
    Object.prototype.toString.call(num3) //"[object Number]"
    
    缘由
    • Number(1) 会转换参数为数字类型,如果参数无法转换成数字,就返回NaN。
    • new Number(1) 先转换数据类型,再封装为数字对象。
    延伸
    1.new Number()new String()new Boolean()
    • 这三种基础数据类型的构造函数通过new关键字会返回一个经过封装的对象。
      demo.png
    2.注意

    其他基础数据类型:null,undefined,symbol

    • null undefined 没有Null()Undefined()方法
    • symbolSymbol()方法,但作为构造函数来说并不完整,它不支持语法:"new Symbol()"。

    相关文章

      网友评论

          本文标题:Number(1),new Number(1),1

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