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

前言

之前遇到一個(gè)new Number(1)數(shù)據(jù)類型判斷問題,這里做一下整理梳理。

實(shí)例
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) 會(huì)轉(zhuǎn)換參數(shù)為數(shù)字類型,如果參數(shù)無法轉(zhuǎn)換成數(shù)字,就返回NaN。
  • new Number(1) 先轉(zhuǎn)換數(shù)據(jù)類型,再封裝為數(shù)字對(duì)象。
延伸
1.new Number()、new String()new Boolean()
  • 這三種基礎(chǔ)數(shù)據(jù)類型的構(gòu)造函數(shù)通過new關(guān)鍵字會(huì)返回一個(gè)經(jīng)過封裝的對(duì)象。
    demo.png
2.注意

其他基礎(chǔ)數(shù)據(jù)類型:null,undefined,symbol

  • null undefined 沒有Null()Undefined()方法
  • symbolSymbol()方法,但作為構(gòu)造函數(shù)來說并不完整,它不支持語法:"new Symbol()"。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容