JS typeof

typeof干啥的?

檢測類型。js有5中類型.string,number,boolean.function.object
可以看出js的類型是比較少的,這個不太好。比如構(gòu)造函數(shù)和函數(shù)的類型都是一樣的。

如何使用?

var a='apple';
typeof(a)//"string"


var b=9
typeof(b)//"number"

typeof(true)//"boolean"

var sum=(a,b)=>a+b;
typeof(sum)//"function"

typeof(Promise)//"function"


var s={name:'xoaoming',
       age:18}

typeof(s)//"object"

typeof([1,2,3])//"object"

這種類型劃分有何缺點?

類型太少,導(dǎo)致很多完全不同的東西都是同一個類型。比如object類型

var s={name:'xoaoming',
       age:18}

typeof(s)//"object"

typeof([1,2,3])//"object"

如何解決object帶來的問題?

用instanceof

var a=new String('apple')
a instanceof String//true


x=new Array([1,2,3])
x instanceof Array//true

var mydate=new Date()
mydate instanceof Date//true

var s={name:'xoaoming',
       age:18}
s instanceof Object//true

注意instanceof這里那個Object類型中O大寫

還有哪些查看類型的姿勢?

var x=[]
x.constructor
//function Array() { [native code] }
var x=[]
Object.prototype.toString.call(x)
//"[object Array]"

var mydate=new Date()
Object.prototype.toString.call(mydate)
//"[object Date]"

var s={name:'xoaoming',
       age:18}
Object.prototype.toString.call(s)
//"[object Object]"


總結(jié)

最全能的判斷方法實際上是Object.prototype.toString.call


image.png

參考

javascript - js中Object類型與對象什么關(guān)系? - SegmentFault
判斷 JS 中對象的類型 - Orson - 博客園
JavaScript instanceof 運算符深入剖析

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 原文: https://github.com/ecomfe/spec/blob/master/javascript...
    zock閱讀 3,488評論 2 36
  • 第一章: JS簡介 從當(dāng)初簡單的語言,變成了現(xiàn)在能夠處理復(fù)雜計算和交互,擁有閉包、匿名函數(shù), 甚至元編程等...
    LaBaby_閱讀 1,763評論 0 6
  • 有人說過,很多彎路到最后都成了直路,所有的坑到最后也都成了坦途;所謂的直路和坦途并不是擺在眼前的,都是不斷的的...
    老衲法號一眉道人閱讀 1,460評論 0 4
  • 都可以用來檢測類型 對于基本類型的檢測可以用typeof檢測 但是通常情況下我們不僅僅想要知道它不僅是對象還要知道...
    青春前行閱讀 276評論 0 0
  • 紅豆害怕洗澡,討厭洗澡,覺得洗澡好麻煩。為什么會這樣呢? 媽媽時常跟紅豆抱怨,你爸爸懶,臟,幾天不洗澡不洗臉不洗腳...
    周海雙閱讀 397評論 5 1

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