javascript 類型判斷代碼分析
更新時(shí)間:2010年03月28日 13:46:35 作者:
今天看到 司徒一篇blog, javascript深拷貝,其中涉及到一種判斷類型的方法,特分析如下
復(fù)制代碼 代碼如下:
var is = function(obj,type){
var toString=Object.prototype.toString,undefined;
return obj===null&&type==='Null'||
obj===undefined&&type==='Undefined'||
toString.call(obj).slice(8,-1)===type;
}
//原文中有小括號(hào)包裹每個(gè)邏輯與運(yùn)算,但根據(jù)運(yùn)算符優(yōu)先級(jí),括號(hào)可以省略
//第一行聲明undefined,個(gè)人理解是為了提高性能,不必再去頂級(jí)作用域中查詢undefined.
根據(jù)ECMA-262中的解釋,Object.prototype.toString(),將返回對(duì)象實(shí)例的類型,返回格式"[object ", class, and "]"字符串。
所以 通過 slice截取'class'值,也就是類型值。
其中null與undefined例外,因?yàn)樗麄兎祷氐氖?
IE中[object Object]
標(biāo)準(zhǔn)瀏覽器[object Window]。
因此單獨(dú)拿出判斷。
相關(guān)文章:javascript 深拷貝
相關(guān)文章
使用JS給靜態(tài)頁面添加搜索功能的實(shí)現(xiàn)方法
靜態(tài)頁面通常由HTML、CSS 和 JavaScript 等靜態(tài)文件組成,這些文件在服務(wù)器上不會(huì)動(dòng)態(tài)生成或修改,所以加載速度通常比較快,本文給大家介紹了如何只使用JS給靜態(tài)網(wǎng)頁添加站內(nèi)全局搜索功能,文中有詳細(xì)的解決方案,需要的朋友可以參考下2023-11-11
讓背景如此暗淡(一種彈出提示信息時(shí)頁面背景色調(diào)改變的方法)
讓背景如此暗淡(一種彈出提示信息時(shí)頁面背景色調(diào)改變的方法)...2006-10-10
前端發(fā)布緩存導(dǎo)致白屏幾種解決方案總結(jié)
這篇文章主要介紹了前端發(fā)布緩存導(dǎo)致白屏的幾種解決方案,文章還介紹了Jenkins發(fā)布流程優(yōu)化和使用版本號(hào)方案,以減少發(fā)布緩存問題,每種方案都有其優(yōu)缺點(diǎn),需要根據(jù)實(shí)際情況進(jìn)行選擇和調(diào)整,需要的朋友可以參考下2025-04-04
解決Layui當(dāng)中的導(dǎo)航條動(dòng)態(tài)添加后渲染失敗的問題
今天小編就為大家分享一篇解決Layui當(dāng)中的導(dǎo)航條動(dòng)態(tài)添加后渲染失敗的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-09-09
“不能執(zhí)行已釋放的Script代碼”錯(cuò)誤的原因及解決辦法
“不能執(zhí)行已釋放的Script代碼”錯(cuò)誤的原因及解決辦法...2007-09-09
js實(shí)現(xiàn)文件流式下載文件方法詳解及完整代碼
這篇文章主要介紹了用js實(shí)現(xiàn)讀取文件流并下載到本地的方法,也就是我們經(jīng)常說的使用js下載文件需要的朋友可以參考下2022-12-12

