摘要:判斷變量類型數(shù)據(jù)類型種操作符可能返回的值如下注意的能力有限,其對(duì)于類型返回的都是使用場(chǎng)景區(qū)分對(duì)象和原始類型要區(qū)分一種對(duì)象類型和另一種對(duì)象類型可以使用運(yùn)算符或?qū)ο髮傩赃\(yùn)算符用法左邊的運(yùn)算數(shù)是一個(gè)右邊運(yùn)算數(shù)是對(duì)象類的名字或者構(gòu)造函數(shù)返回或如果是
判斷變量類型
typeof操作符javaSctipt數(shù)據(jù)類型7種: Number, String, Boolean, Null, Undefined, Object, Symbol
可能返回的值如下
undefined
boolean
string
number
object
function
注意: typeof 的能力有限,其對(duì)于null, Date、RegExp類型返回的都是"object"
typeof null // "object" typeof {}; // "object" typeof []; // "object" typeof new Date(); // "object"
使用場(chǎng)景:區(qū)分對(duì)象和原始類型,要區(qū)分一種對(duì)象類型和另一種對(duì)象類型,可以使用: instanceof運(yùn)算符或?qū)ο骳ontructor屬性
instanceof運(yùn)算符用法: 左邊的運(yùn)算數(shù)是一個(gè)object,右邊運(yùn)算數(shù)是對(duì)象類的名字或者構(gòu)造函數(shù);返回true或false
[] instanceof Array; // true [] instanceof Object; // true [] instanceof RegExp; // false new Date instanceof Date; // true
如果object是class或者構(gòu)造函數(shù)的實(shí)例,則返回true,如果不是或者是null也返回false
instanceof運(yùn)算符判斷是否為數(shù)組類型
function isArray(arr){ return arr instanceof Array; }contructor屬性
所有的對(duì)象都有一個(gè)constructor屬性,指向該對(duì)象的基本對(duì)啊性構(gòu)造函數(shù)類型的屬性
var a = new Array; a.constructor === Array // true var n = new Number(3); n.constructor === Number; // true
判斷為數(shù)組還可以這樣
function isArray(arr){ return typeof arr === "object" && arr.constructor === Array; }Object.ProtoType.toString()
每個(gè)對(duì)象都有一個(gè)toString()方法,返回"[object type]",其中type是對(duì)象的類型
當(dāng)執(zhí)行該方法時(shí),執(zhí)行以下步驟
1,獲取對(duì)象的class屬性
2,連接字符串 "[object "+結(jié)果1+"]" ;
所以可以通過toString()來(lái)獲取每個(gè)對(duì)象的類型,為了每個(gè)對(duì)象都可以通過Object.protoType.toString()來(lái)檢測(cè),需要以Funciton.prototype.call()或Function.prototype.apply()的形式來(lái)調(diào)用,傳遞要檢查的對(duì)象作為第一個(gè)參數(shù),稱為thisArg
Object.prototype.toString.call(new Date); // "[object Date]" Object.prototype.toString.call([]); // "[object Array]" Object.prototype.toString.call(/reg/ig); // "[object RegExp]"參考
JavaScript中判斷對(duì)象類型的幾種方法總結(jié)
Aboutgithub
blog
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/90065.html
摘要:訪問屬性是通過操作符完成的,但這要求屬性名必須是一個(gè)有效的變量名小紅的屬性名不是一個(gè)有效的變量,就需要用括起來(lái)。閉包應(yīng)用封裝私有變量箭頭函數(shù)箭頭函數(shù)相當(dāng)于匿名函數(shù),并且簡(jiǎn)化了函數(shù)定義。 數(shù)據(jù)類型 NAN NaN === NaN; // false 唯一能判斷NaN的方法是通過isNaN()函數(shù): isNaN(NaN); // true 浮點(diǎn)數(shù)的相等比較: 1 / 3 === (...
摘要:類型轉(zhuǎn)換和表示一個(gè)空對(duì)象。如果有其他類型想轉(zhuǎn)換為或者類型,直接賦值就可以了。都能隱式的把數(shù)據(jù)類型轉(zhuǎn)為類型。。。時(shí)間時(shí)間二數(shù)字類型轉(zhuǎn)換為字符串默認(rèn)是進(jìn)制是一個(gè)對(duì)象類型,所以其他類型轉(zhuǎn)化為通常都是。 前言 javaScript是一門可以自由進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換的編程語(yǔ)言,類型轉(zhuǎn)換是javaScript很重要的特色(坑點(diǎn)很多!!!),大家想以后寫出更多嚴(yán)謹(jǐn)?shù)拇a(少出一些莫名其妙的Bug),還是...
摘要:如果有一方是布爾值,則轉(zhuǎn)換為,轉(zhuǎn)換為,再進(jìn)行判斷。等同運(yùn)算符類型不同返回類型相同如果同為數(shù)字字符串則比較值如果同為布爾值,相同則為不同為如果兩個(gè)操作數(shù)同為引用類型,且引用的為同一個(gè)對(duì)象函數(shù),數(shù)組,則相同。 本文主要記錄平時(shí)開發(fā)遇到的知識(shí)點(diǎn)和小技巧 相等判斷(==) 類型相同: 判斷其值是否相同 類型不同: 1. 如果數(shù)字和字符串比較, 則字符串會(huì)被隱式轉(zhuǎn)換為數(shù)字,在做判斷。 2....
摘要:引子前不久我建立的技術(shù)群里一位問了一個(gè)這樣的問題,她貼出的代碼如下所示執(zhí)行結(jié)果如下所示第一個(gè)第二個(gè)這是一個(gè)令人詫異的結(jié)果,為什么第一個(gè)彈出框顯示的是,而不是呢這種疑惑的原理我描述如下一個(gè)頁(yè)面里直接定義在標(biāo)簽下的變量是全局變量即屬于對(duì)象的變量 1) 引子 前不久我建立的技術(shù)群里一位MM問了一個(gè)這樣的問題,她貼出的代碼如下所示: var a = 1; function hehe...
摘要:進(jìn)階期理解中的執(zhí)行上下文和執(zhí)行棧進(jìn)階期深入之執(zhí)行上下文棧和變量對(duì)象但是今天補(bǔ)充一個(gè)知識(shí)點(diǎn)某些情況下,調(diào)用堆棧中函數(shù)調(diào)用的數(shù)量超出了調(diào)用堆棧的實(shí)際大小,瀏覽器會(huì)拋出一個(gè)錯(cuò)誤終止運(yùn)行。 (關(guān)注福利,關(guān)注本公眾號(hào)回復(fù)[資料]領(lǐng)取優(yōu)質(zhì)前端視頻,包括Vue、React、Node源碼和實(shí)戰(zhàn)、面試指導(dǎo)) 本周正式開始前端進(jìn)階的第一期,本周的主題是調(diào)用堆棧,今天是第3天。 本計(jì)劃一共28期,每期重點(diǎn)攻...
閱讀 3083·2023-04-25 18:54
閱讀 2601·2021-11-02 14:40
閱讀 3210·2021-09-23 11:58
閱讀 2441·2019-08-30 13:50
閱讀 1247·2019-08-29 12:46
閱讀 3134·2019-08-28 17:51
閱讀 690·2019-08-26 11:47
閱讀 912·2019-08-23 16:17