日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

詳解JavaScript數(shù)據(jù)類型和判斷方法

瀏覽:178日期:2023-10-15 11:54:16

前言

JavaScript 中目前有 7 種基本(原始primitives)數(shù)據(jù)類型 Undefined, Null,Boolean, Number, String,BigInt,Symbol,以及一種引用類型 Object,Object 中又包括 Function,Date,JSON,RegExp等,除了 7 種原始類型,其他的所有能夠用 new 實例化的內(nèi)置類型都是 Object 構(gòu)造的。

數(shù)據(jù)類型

對于數(shù)據(jù)了類型我們可以通過 typeof 運算符來判斷,具體結(jié)果看下圖。

詳解JavaScript數(shù)據(jù)類型和判斷方法

原始類型中兩個比較特殊的就是 Undefined 和 Null,他們兩個類型都只有一個值就是 undefined 和 null。

Undefined

undefined 一般表示我們未對變量進行初始化。使用 typeof 操作符的時候,如果是未聲明變量,同樣也會返回 undefined,再比如未設(shè)置返回值的函數(shù)執(zhí)行的結(jié)果是 undefined,未設(shè)置的參數(shù)也會被默認為 undefined。最后還有一點需要注意的是,undefined 并不是 js 的保留字,并且是全局對象的一個屬性,在瀏覽器環(huán)境中就是 window.undefined。當(dāng)在局部環(huán)境中,我們是可以自己給 undefined 屬性賦值的,也就是重寫 undefined,所以為了確保我們使用的 undefined 是未被重寫的,我們可以使用 void 0 來代替。

Null

null 可以簡單理解為一個未被創(chuàng)建的對象,比如我們使用 document.getElementById 并沒有找到對應(yīng)元素的時候就會返回 null。null 和 undefined 有一些區(qū)別,在轉(zhuǎn)換為 Number 的時候,null 會轉(zhuǎn)換為 0 而 undefined 會轉(zhuǎn)換為 NaN,執(zhí)行 typeof 運算的時候,undefined返回 undefined 而 null 返回 object。使用 == 判斷兩者相等會返回 true,所以為了防止誤判一般我們使用全等 ===。null 是所有對象原型鏈的終點,Object.prototype.__proto__ === null。

關(guān)于 null 的使用,當(dāng)我們聲明一個變量是用來存儲對象我們可以先賦值為 null,當(dāng)一個對象不再需要的時候,我們可以設(shè)置為 null 解除這個引用。

Symbol 和 BigInt

這兩個都是 ES6 新增的原始數(shù)據(jù)類型,Symbol 類型的數(shù)據(jù)通過 Symbol() 方法的執(zhí)行產(chǎn)生,不過需要注意的是 Symbol 不能作為構(gòu)造函數(shù),每個從 Symbol() 返回的 symbol 值都是唯一的。一個 symbol 值能作為對象屬性的標(biāo)識符;這是該數(shù)據(jù)類型僅有的目的。

而 BigInt 則是為了精確表示超出雙精度浮點數(shù)的最大安全表示范圍的大數(shù)而新增的基本數(shù)據(jù)類型。

判斷數(shù)據(jù)類型的方法

typeof 運算符

最簡單的判斷數(shù)據(jù)類型的方法是 typeof 運算符,返回值為字符串。typeof 的缺點是除了 Function 以外的其他所有對象的返回值都是 object (null 的返回值也是 object),如果我們需要區(qū)分不同的對象,就無法使用 typeof。

instanceof 運算符

instanceof 運算符是檢測構(gòu)造函數(shù)的原型是否出現(xiàn)在某個對象的原型鏈上。通過 instanceof 運算符我們可以實現(xiàn)對 Object 類型的細分,確定屬于哪種對象。但是 instanceof 的缺點是只能對對象進行檢測,對于基本數(shù)據(jù)類型的實例無法檢測(字面量無法檢測,但是通過基本包裝類型的構(gòu)造函數(shù)創(chuàng)建的基本類型可以進行檢測)。

constructor 屬性

利用實例的 constructor 屬性來輔助判斷實例的數(shù)據(jù)類型也是一種手段。一般來說,實例本身是沒有 constructor 屬性的,我們所看到的屬性都是 實例.__proto__.constructor,換言之也就是實例的構(gòu)造函數(shù),這種方式對基本數(shù)據(jù)類型也是有效的。這種方法的一個比較大的問題是 constructor 屬性是個不受保護的屬性,隨時可能被更改,我們既可以給實例增加 constructor 屬性,也可以修改構(gòu)造函數(shù)的 prototype 的引用,也可以直接修改原型的 constructor 屬性。

Object.prototype.toString.call()

這是最安全準(zhǔn)確的檢測數(shù)據(jù)類型的方法,每一種數(shù)據(jù)類型的構(gòu)造函數(shù)的原型上都有 toString 方法,但是除了 Object.prototype上的 toString 是用來返回當(dāng)前實例所屬類的信息(檢測數(shù)據(jù)類型的),其余的都是轉(zhuǎn)換為字符串的。該方法可以準(zhǔn)確檢測所有內(nèi)置類型。自定義類型的返回值為 Object Object

let toString = Object.prototype.toString //=>Object.prototype.toStringconsole.log(toString.call(10)); //=>'[object Number]'console.log(toString.call(NaN)); //=>'[object Number]'console.log(toString.call('xxx')); //=>'[object String]'console.log(toString.call(true)); //=>'[object Boolean]'console.log(toString.call(null)); //=>'[object Null]'console.log(toString.call(undefined)); //=>'[object Undefined]'console.log(toString.call(Symbol())); //=>'[object Symbol]'console.log(toString.call(BigInt(10))); //=>'[object BigInt]'console.log(toString.call({xxx:’xxx’})); //=>'[object Object]'console.log(toString.call([10,20])); //=>'[object Array]'console.log(toString.call(/^d+$/)); //=>'[object RegExp]'console.log(toString.call(function(){})); //=>'[object Function]'

以上就是詳解JavaScript數(shù)據(jù)類型和判斷方法的詳細內(nèi)容,更多關(guān)于JavaScript數(shù)據(jù)類型和判斷方法的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: JavaScript
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩亚洲在线| 午夜国产欧美理论在线播放| 蜜芽一区二区三区| 欧美日韩少妇| 国产高清一区| 91久久中文| 鲁大师成人一区二区三区| 免费成人在线影院| 视频一区免费在线观看| 天堂日韩电影| 婷婷亚洲综合| 99xxxx成人网| 日韩中文字幕不卡| 日韩一区二区三区高清在线观看| 综合色一区二区| 日韩精品一区二区三区中文在线| 亚洲男人在线| 国产精品亲子伦av一区二区三区 | 好看的av在线不卡观看| 香蕉久久久久久久av网站| 亚洲精品影视| 国产精品4hu.www| 精品视频免费| 色老板在线视频一区二区| 亚洲免费成人| 国产日韩一区二区三免费高清| 精品视频黄色| 国产高清一区二区| 中文不卡在线| 久久99国产精品视频| 日韩欧美精品综合| 久久亚洲风情| 国产精品日韩精品中文字幕| 色黄视频在线观看| 亚洲综合日本| 免费在线观看一区| 久久美女性网| 亚洲网址在线观看| 加勒比视频一区| 日韩视频在线一区二区三区| 日韩av一区二区三区| 激情不卡一区二区三区视频在线| 99久久亚洲精品| 亚州精品视频| 国产精品久久观看| 亚洲婷婷丁香| 国产一区二区久久久久| 黑丝一区二区| 欧美激情日韩| 西西人体一区二区| 激情中国色综合| 老牛影视一区二区三区| 国产激情精品一区二区三区| 亚洲欧美伊人| 久久超级碰碰| 亚洲综合另类| 国产精品久久久久久久久妇女| 西西人体一区二区| 精品视频在线你懂得| 国产视频一区在线观看一区免费| 欧美国产另类| 国产亚洲亚洲| 六月丁香综合在线视频| 黄色亚洲精品| 免费一级欧美片在线观看网站| 不卡中文一二三区| 精品视频黄色| 先锋影音久久久| 久久69成人| 亚洲欧美在线综合| 欧美日韩在线网站| 国产毛片一区二区三区| 欧美日韩日本国产亚洲在线 | 日本一区二区三区视频在线看| 色偷偷偷在线视频播放| 91精品日本| 宅男噜噜噜66国产日韩在线观看| 国产一区福利| 欧美一区免费| 亚洲伊人精品酒店| 激情综合激情| 美女精品久久| 日韩精品一区二区三区中文在线 | 久久久久久网| 国产三级一区| 亚洲免费一区三区| 日韩欧美1区| 欧美a级一区二区| 偷拍亚洲精品| 亚洲欧美不卡| 国产精品99免费看| 国产一区二区三区黄网站| 91精品国产自产观看在线| 午夜久久黄色| 精品在线99| 91精品国产成人观看| 福利一区二区免费视频| 国产精品xxxav免费视频| 日本aⅴ亚洲精品中文乱码| 丝袜美腿亚洲一区二区图片| 午夜久久tv| 91精品91| 婷婷色综合网| 久久中文视频| 91精品蜜臀一区二区三区在线| 国产a久久精品一区二区三区| 国产精品密蕾丝视频下载| 91精品国产自产观看在线| 国产亚洲精品自拍| 91超碰国产精品| 日韩午夜黄色| 午夜精品亚洲| 亚洲欧洲一区| 亚洲欧美日韩国产一区| 亚洲国产日韩欧美在线| 久久国产亚洲精品| 欧洲一区二区三区精品| 91日韩欧美| 新版的欧美在线视频| 日韩在线短视频| 999久久久精品国产| 亚洲国产专区| 亚洲国产一区二区在线观看| 999精品色在线播放| 亚洲高清激情| 欧美日韩少妇| 老牛国产精品一区的观看方式| 另类av一区二区| 在线观看亚洲精品福利片| 在线日韩成人| 日本国产一区| 国产精品美女久久久久久不卡| 麻豆精品视频在线观看免费| 久久精品国产免费| 福利在线免费视频| 久久精选视频| 影音国产精品| 蜜桃视频一区二区| 久久国产99| 午夜电影一区| 国产精品一区二区精品视频观看| 麻豆精品视频在线观看免费| 91综合视频| 欧美中文字幕一区二区| 中文欧美日韩| 青青草精品视频| 日韩a一区二区| 亚洲一级影院| 综合激情视频| 国产极品嫩模在线观看91精品| 成年男女免费视频网站不卡| 亚洲先锋成人| 亚洲啊v在线免费视频| 日本一不卡视频| 久久久久亚洲精品中文字幕| 91精品亚洲| 日本不卡视频在线观看| 久久99精品久久久久久园产越南 | 亚洲精品国产嫩草在线观看| 国产视频久久| 国产剧情一区二区在线观看| 亚洲深夜视频| 免费的成人av| 久久99国产精品视频| 日韩在线综合| 亚洲一区二区三区久久久| 国产精品久久久久久模特 | 亚洲一区二区日韩| 久久av免费| 亚洲国产不卡| 国产精品一区二区av交换| 精品国产成人| 日韩美女国产精品| 久久爱www成人| 国产一区日韩一区| 偷拍亚洲精品| 欧美国产另类| 午夜日韩福利| 国产精品久久久久久妇女| 99精品在线观看| 国产亚洲观看| 免费久久久久久久久| 国产精品探花在线观看| 99精品一区| 久久国内精品视频| 999精品在线| 欧美日韩中出| 蜜臀av免费一区二区三区| 国产精品高潮呻吟久久久久| 欧美69视频| 欧美成人精品午夜一区二区| 欧美日韩在线二区| 国产欧美一区二区三区国产幕精品| 欧美成人基地| 国产探花在线精品| 美女久久一区| 日韩中文首页| 欧美一区免费| 久久av一区| 日韩免费一区|