typeof和instanceof的区别
typeof
用于判斷數據類型,返回值有number、string、boolean、function、undefined、object 六個。
在這里我們可以看到typeof判斷null、array、object以及函數的實例(new + 函數)時,它返回的都是object。這就導致在判斷這些數據類型的時候得不到真實的數據類型。由此引出instanceof。
instanceof
instance的意思是實例,因此可以知道instanceof的作用就是判斷該對象是誰的實例,我們也就知道了instanceof是對象運算符。
這就牽扯到了對象的繼承,他的判斷就是根據原型鏈進行搜尋,在對象obj1的原型鏈上如果存在另一個對象obj2的原型屬性,那么表達式(obj1 instanceof obj2)返回值為true,否則為false。
總結
總之,typeof 和 instanceof 都是用來判斷變量類型的,區別在于:
1、typeof判斷所有變量的類型,返回值有number、string、boolean、function、object、undefined。
2、typeof對于豐富的對象實例,只能返回object,導致有時候得不到真實的數據類型。
3、instanceof用來判斷對象,代碼形式(obj1 instanceof obj2)(判斷obj1是否為obj2的實例),obj2必須為對象,否則會報錯。返回的是布爾值。
4、instanceof可以對不同的實例對象進行判斷,判斷方法是根據對象的原型鏈依次向下查詢,如果obj2的原型屬性存在于obj1的原型鏈上,(obj1 instanceof obj2)值為true。
?
總結
以上是生活随笔為你收集整理的typeof和instanceof的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快捷指令|支付宝合集|安卓支付宝shel
- 下一篇: 电脑装机接线图解