摘要:中關(guān)于類型的判斷有很多種方法,這里介紹兩種常用的。操作符返回一個(gè)字符串,表示未經(jīng)計(jì)算的操作數(shù)的類型。正因?yàn)椴荒軠?zhǔn)確判斷一個(gè)對(duì)象變量,所以需要下面一種方法使用上的原生方法判斷數(shù)據(jù)類型可以將這樣的一長(zhǎng)串代碼封裝成檢測(cè)類型的方法
javascript中關(guān)于類型的判斷有很多種方法, 這里介紹兩種常用的。
typeof
typeof操作符返回一個(gè)字符串,表示未經(jīng)計(jì)算的操作數(shù)的類型。
console.log(typeof 12); // number console.log(typeof "hello"); // string console.log(typeof true); // boolean
在MDN中, typeof的用法記錄的很詳細(xì)。
這里有個(gè)js的關(guān)鍵點(diǎn), 即typeof null == object。 null 不是一個(gè)對(duì)象,盡管 typeof null 輸出的是 object,這是一個(gè)歷史遺留問題,JS 的最初版本中使用的是 32 位系統(tǒng),為了性能考慮使用低位存儲(chǔ)變量的類型信息,000 開頭代表是對(duì)象, null 表示為全零,所以將它錯(cuò)誤的判斷為 object 。
正因?yàn)閠ypeof不能準(zhǔn)確判斷一個(gè)對(duì)象變量, 所以需要下面一種方法
Object.prototype.toString.call
使用Object.prototype上的原生toString()方法判斷數(shù)據(jù)類型
console.log( Object.prototype.toString.call( "hello" )) // [object String] console.log( Object.prototype.toString.call( 1 )) // [object Number] console.log( Object.prototype.toString.call( [1, 2, 3] )) // [object Array] console.log( Object.prototype.toString.call( null )) // [object Null]
可以將這樣的一長(zhǎng)串代碼封裝成檢測(cè)類型的方法
let isType = type => obj => { return Object.prototype.toString.call( obj ) === `[object ${type}]` } isType("String")("123"); // true isType("Array")([1, 2, 3]); // true isType("Number")(1); // true
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/104328.html
摘要:最近開始看源碼,并將源碼解讀放在了我的計(jì)劃中。今天就跟大家聊一聊中一些常用類型檢查方法,以及一些工具類的判斷方法。用是否含有屬性來判斷工具類判斷方法接下來看下一些常用的工具類判斷方法。 Why underscore 最近開始看 underscore.js 源碼,并將 underscore.js 源碼解讀 放在了我的 2016 計(jì)劃中。 閱讀一些著名框架類庫(kù)的源碼,就好像和一個(gè)個(gè)大師對(duì)話...
摘要:摘要這篇文章講述運(yùn)算符判斷基本類型和引用類型的區(qū)別,以及怎么判斷數(shù)組類型和空對(duì)象有種原始類型,即和。類型判斷類型判斷,一般就是判斷是否是數(shù)組,是否是空對(duì)象。方法四使用語(yǔ)法,返回一個(gè)數(shù)組,只需要判斷數(shù)組長(zhǎng)度是否大于即可。 摘要 這篇文章講述typeof運(yùn)算符判斷基本類型和引用類型的區(qū)別,以及怎么判斷數(shù)組類型和空對(duì)象 typeof ECMAScript 有 5 種原始類型(primitiv...
摘要:中九個(gè)內(nèi)置對(duì)象在規(guī)范中定義了六種數(shù)據(jù)類型其中原始值類型有種,引用類型有種一有包裝對(duì)象數(shù)值型,包括整形和浮點(diǎn)型其中都是類型二有包裝對(duì)象字符串類型,有兩種表示方式,雙引號(hào)單引號(hào)。方法可以將任意類型數(shù)據(jù)轉(zhuǎn)成字符串。 JS中九個(gè)內(nèi)置對(duì)象 showImg(https://segmentfault.com/img/bV6iZG?w=481&h=411); 在ECMAScript規(guī)范(ES5)中定義...
摘要:最常見的判斷方法它的官方解釋操作符返回一個(gè)字符串,表示未經(jīng)計(jì)算的操作數(shù)的類型。另外,是判斷對(duì)象是否屬于某一類型,而不是獲取的對(duì)象的類型。多個(gè)窗口意味著多個(gè)全局環(huán)境,不同的全局環(huán)境擁有不同的全局對(duì)象,從而擁有不同的內(nèi)置類型構(gòu)造函數(shù)。 js中的數(shù)據(jù)類型 js中只有六種原始數(shù)據(jù)類型和一個(gè)Object: Boolean Null Undefined Number String Symbol ...
摘要:內(nèi)置函數(shù)和對(duì)象中內(nèi)置了一些函數(shù)和對(duì)象,很多語(yǔ)言都會(huì)有內(nèi)置的方法,直接可以調(diào)用開發(fā)。根據(jù)語(yǔ)法標(biāo)準(zhǔn)提供的內(nèi)置函數(shù)包括和。注意基礎(chǔ)語(yǔ)法提供的內(nèi)置函數(shù)和方法只有這些,像那是瀏覽器提供給我們的。強(qiáng)制類型轉(zhuǎn)換大家應(yīng)該都知道。 js基礎(chǔ) - 變量 *大家對(duì)js一定不會(huì)陌生,入門很簡(jiǎn)單(普通入門),很多人通過網(wǎng)絡(luò)資源、書籍、課堂等很多途徑學(xué)習(xí)js,但是有些js基礎(chǔ)的只是往往被大家遺漏,本章就從js變量...
閱讀 2351·2021-11-24 11:16
閱讀 2038·2021-09-30 09:47
閱讀 2006·2021-09-10 10:51
閱讀 1323·2019-08-30 14:08
閱讀 3141·2019-08-30 13:47
閱讀 1529·2019-08-30 13:02
閱讀 3233·2019-08-29 12:29
閱讀 3198·2019-08-26 17:05