摘要:語法參數(shù)要檢測的對象某個構(gòu)造函數(shù)通過這個運算符我們就可以用來檢測真正的數(shù)據(jù)類型但是如果是的話,好像就沒辦法解決了呢。
1.typeof操作符返回一個字符串,指示未經(jīng)計算的操作數(shù)的類型。
語法:type opreand 參數(shù): opreand是一個表達式,表示對象或者原始值,其類型將被返回。 描述: 類型 結(jié)果 Undefined "undefined" Null "object" Boolean "boolean" Number "number" String "string" Symbol(ECMAScript 6 新增) "symbol" 函數(shù)對象 "function" 任何其他對象 "object"
2.typeof 對于一些特殊數(shù)據(jù)時的表現(xiàn)
typeof (new Number(1)); //結(jié)果并不是想象中的"number"而是"object" typeof (new String("hello")); //同理結(jié)果仍然是"object" tyoeof (new Boolean(true)); //返回"object" typeof null; //返回也為"object"
3.instanceof 運算符用來測試一個對象在其原型鏈中是否存在一個構(gòu)造函數(shù)的 prototype 屬性。
語法:object instanceof constructor 參數(shù):object 要檢測的對象 constructor 某個構(gòu)造函數(shù) 通過這個運算符我們就可以用來檢測object真正的數(shù)據(jù)類型 (new Number(1)); instanceof Number //true (new Array("2,3")); instanceof Array //true (new String("hello")); instanceof String //true 但是如果是null的話,好像就沒辦法解決了呢。我們可以提前使用對象的toString方法判斷是否為null
4.更好的做法是借用Object.prototype.toString
Object.prototype.toString.call(1); // "[object Number]" Object.prototype.toString.call(new Number(1)); // "[object Number]" Object.prototype.toString.call("hello"); // "[object String]" Object.prototype.toString.call(function(){}); // "[object function]" Object.prototype.toString.call(null); // "[object Null]"
所以我們可以封裝一個利用Object.prototype.toString來判斷數(shù)據(jù)類型的函數(shù)。
function classOf(obj) { return Object.prototype.toString.call(obj).slice(8, -1); }; classOf(null); //"Null"
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/83394.html
摘要:首先,說下工廠函數(shù)。應(yīng)對某些場景,工廠函數(shù)并不能滿足我們,如我需要判斷樹是不是動物類型你會發(fā)現(xiàn)你并沒辦法。這時候構(gòu)造函數(shù)就出現(xiàn)了我的性別是猴子母猴子我的性別是母跟工廠函數(shù)很像,只是沒有了創(chuàng)建對象和,并且都用添加屬性。 首先,說下工廠函數(shù)。顧名思義,就好比一個工廠一樣,可以批量制造某種類型的東西。其實說白了就是封裝了個方法減少重復(fù)工作,相信稍微有點碼齡的人都懂。上代碼: function...
摘要:響應(yīng)式原理之之前簡單介紹了和類的代碼和作用,現(xiàn)在來介紹一下類和。對于數(shù)組,響應(yīng)式的實現(xiàn)稍有不同。不存在時,說明不是響應(yīng)式數(shù)據(jù),直接更新。如果對象是響應(yīng)式的,確保刪除能觸發(fā)更新視圖。 Vue響應(yīng)式原理之Observer 之前簡單介紹了Dep和Watcher類的代碼和作用,現(xiàn)在來介紹一下Observer類和set/get。在Vue實例后再添加響應(yīng)式數(shù)據(jù)時需要借助Vue.set/vm.$se...
摘要:淺析的特點之一就是響應(yīng)式,但數(shù)據(jù)更新時,并不會立即更新。盡管已經(jīng)更新,但新增的元素并不立即插入到中。實際在中,執(zhí)行了,這也是自動綁定到執(zhí)行上下文的原因。在內(nèi),使用數(shù)組保存回調(diào)函數(shù),表示當(dāng)前狀態(tài),使用函數(shù)來執(zhí)行回調(diào)隊列。 Vue.nextTick 淺析 Vue 的特點之一就是響應(yīng)式,但數(shù)據(jù)更新時,DOM 并不會立即更新。當(dāng)我們有一個業(yè)務(wù)場景,需要在 DOM 更新之后再執(zhí)行一段代碼時,可以...
摘要:一直很奇怪為什么可以通過判斷各數(shù)據(jù)的類型,帶著這個疑問,查看了一些資料。與是兩個不同的方法,他們返回的值是不一樣的。需要調(diào)用原型對象上的去判斷類型 一直很奇怪為什么可以通過Object.prototype.toString()判斷各數(shù)據(jù)的類型,帶著這個疑問,查看了一些資料。 1.Object.prototype.toString()判斷原理 那么當(dāng)我們調(diào)用這個方法時,具體會做那些操作呢...
閱讀 1436·2021-10-09 09:44
閱讀 1495·2021-09-28 09:36
閱讀 16375·2021-09-22 15:55
閱讀 1306·2021-09-22 15:45
閱讀 2261·2021-09-02 09:48
閱讀 2854·2019-08-29 17:19
閱讀 2358·2019-08-29 10:54
閱讀 1010·2019-08-23 18:40