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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

经典面试题:用typeof来判断对象的潜在陷阱

發(fā)布時間:2025/3/15 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 经典面试题:用typeof来判断对象的潜在陷阱 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

年關(guān)將至,相信大家都已經(jīng)在回家的路上,在中國人眼里,過了農(nóng)歷的春節(jié),新的一年才算真正的開始。


2018年,如果你打算跳槽換一份工作,那么這個春節(jié)是你繼續(xù)充電的好機會。近期前端君會總結(jié)一些web前端面試的經(jīng)典問題,分享給大家,說不定哪天面試你就會用上了。


今天我們來講一個比較簡單但是會比較常遇到的問題。


問:使用?typeof bar === "object"?來確定?bar?是否是對象的潛在陷阱是什么?如何避免這個陷阱?

盡管?typeof bar === "object"?是檢查?bar?是否對象的可靠方法,令人驚訝的是在JavaScript中 null?也被認(rèn)為是對象!

因此,令大多數(shù)開發(fā)人員驚訝的是,下面的代碼將輸出 true?控制臺:

var bar = null;
console.log(typeof bar === "object"); ?
// logs true!

只要清楚這一點,同時檢查?bar?是否為?null,就可以很容易地避免問題:

console.log(
?(bar !== null)
?&&
?(typeof bar === "object")
); ?
// logs false

要答全問題,還有其他兩件事情值得注意:

首先,上述解決方案將返回?false,當(dāng)?bar?是一個函數(shù)的時候。在大多數(shù)情況下,這是期望行為,但當(dāng)你也想對函數(shù)返回?true?的話,你可以修改上面的解決方案為:

console.log(
?(bar !== null)
?&&
?((typeof bar === "object")
?||
?(typeof bar === "function"))
);

第二,上述解決方案將返回?true,當(dāng)?bar?是一個數(shù)組(例如,當(dāng)?var bar = [];)的時候。

在大多數(shù)情況下,這是期望行為,因為數(shù)組是真正的對象,但當(dāng)你也想對數(shù)組返回?false?時,你可以修改上面的解決方案為:

console.log(
?(bar !== null)
?&&
?(typeof bar === "object")
?&&
?(toString.call(bar) !== "[object Array]")
);

或者,如果你使用jQuery的話:

console.log(
?(bar !== null)
?&&
?(typeof bar === "object")
?&& (! $.isArray(bar))
);

熱門文章

原創(chuàng)教程

原創(chuàng)教程:

附加習(xí)題:


趣味職場

職場焦慮:

感到迷茫:

培訓(xùn)出身:

培訓(xùn)費用:

搞笑黑話:

職業(yè)自由:

職場形象:


合作推廣分割線

總結(jié)

以上是生活随笔為你收集整理的经典面试题:用typeof来判断对象的潜在陷阱的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。