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

前言

之前遇到一个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()"。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容