日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

typeof和instanceof的区别

發布時間:2024/1/8 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 typeof和instanceof的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

typeof
用于判斷數據類型,返回值有number、string、boolean、function、undefined、object 六個。

<script>let a = [1, 2, 3, 4, 5];let b = 1;let c = "weaface";let d = false;let f = null;let e = new Date();let g = undefined;let h = function () {};console.log(typeof(a));//objectconsole.log(typeof(b));//numberconsole.log(typeof(c));//stringconsole.log(typeof(d));//booleanconsole.log(typeof(e));//objectconsole.log(typeof(f));//objectconsole.log(typeof(g));//undefinedconsole.log(typeof(h));//functionconsole.log(typeof(i));//undefined</script>

在這里我們可以看到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的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。