JavaScript中判斷數(shù)據(jù)類型的方法總結(jié)
JavaScript 的數(shù)據(jù)類型
- string:字符串
- number:數(shù)字
- boolean:布爾值
- undefined:未定義
- null:空值
- object:對(duì)象(包括數(shù)組和函數(shù))
- symbol:符號(hào),獨(dú)一無(wú)二的值(ES6新增)
一、typeof的缺陷
typeof 可以判斷 string、number、boolean、undefined、symbol、function 等類型,不可以判斷 null、object 類型。
var str = "Hello";
var num = 123;
var bool = true;
var undf;
var nl = null;
var obj = {name: "John", age: 25};
var arr = [1, 2, 3];
var func = function() {};
var sym = Symbol("mySymbol");
console.log(typeof str); // 輸出:string
console.log(typeof num); // 輸出:number
console.log(typeof bool); // 輸出:boolean
console.log(typeof undf); // 輸出:undefined
console.log(typeof nl); // 輸出:object
console.log(typeof obj); // 輸出:object
console.log(typeof arr); // 輸出:object
console.log(typeof func); // 輸出:function
console.log(typeof sym); // 輸出:symbol注意:typeof 無(wú)法區(qū)分 null、Object、Array。typeof 判斷這三種類型返回都是 'object'。
二、判斷是否為數(shù)組
方法1
使用 instanceof 可以判斷數(shù)據(jù)是否為數(shù)組。
[] instanceof Array // true
需要注意的是, instanceof 不可以用來(lái)判斷是否為對(duì)象類型,因?yàn)閿?shù)組也是對(duì)象。
[] instanceof Object // true
{} instanceof Object // true方法2
constructor 也可以判斷是否為數(shù)組。
[].constructor === Array // true
方法3
Object.prototype.toString.call() 可以獲取到對(duì)象的各種類型。
Object.prototype.toString.call([]) === '[object Array]' // true
Object.prototype.toString.call({}) === '[object Object]' // true此方法還可以用來(lái)判斷是否為 promise 對(duì)象。
let obj = new Promise() Object.prototype.toString.call(obj) === '[object Promise]' // true
方法4
使用數(shù)組的 isArray() 方法判斷。
Array.isArray([]) // true
方法5
Object.getPrototypeOf(val) === Array.prototype // true
三、判斷是否為對(duì)象
方法1(推薦)
Object.prototype.toString.call() 可以獲取到對(duì)象的各種類型。
Object.prototype.toString.call({}) === '[object Object]' // true方法2
Object.getPrototypeOf(val) === Object.prototype // true
到此這篇關(guān)于JavaScript中判斷數(shù)據(jù)類型的方法總結(jié)的文章就介紹到這了,更多相關(guān)JavaScript判斷數(shù)據(jù)類型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
js實(shí)現(xiàn)的在線調(diào)色板功能完整實(shí)例
這篇文章主要介紹了js實(shí)現(xiàn)的在線調(diào)色板功能,結(jié)合完整實(shí)例形式分析了調(diào)色板的完整實(shí)現(xiàn)步驟與相關(guān)操作技巧,需要的朋友可以參考下2016-12-12
plupload+artdialog實(shí)現(xiàn)多平臺(tái)上傳文件
這篇文章主要介紹了plupload+artdialog實(shí)現(xiàn)多平臺(tái)上傳文件的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07
微信小程序車牌號(hào)碼模擬鍵盤輸入功能的實(shí)現(xiàn)代碼
這篇文章主要介紹了微信小程序車牌號(hào)碼模擬鍵盤輸入功能的實(shí)現(xiàn)代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11
淺析Echarts圖表渲染導(dǎo)致內(nèi)存泄漏的原因及解決方案
在今年某個(gè)可視化大屏項(xiàng)目中,出現(xiàn)了一個(gè)問(wèn)題,項(xiàng)目在運(yùn)行一段時(shí)間后,頁(yè)面出現(xiàn)了崩潰,而且是大概運(yùn)行幾天之后,因?yàn)榇笃另?xiàng)目是部署到客戶現(xiàn)場(chǎng)大屏,長(zhǎng)時(shí)間運(yùn)行不關(guān)閉,小編認(rèn)為 Echarts 圖表渲染導(dǎo)致了內(nèi)存泄漏,本文將深入分析這一問(wèn)題,并提供解決方案2023-10-10
JS小功能(checkbox實(shí)現(xiàn)全選和全取消)實(shí)例代碼
這篇文章主要介紹了checkbox實(shí)現(xiàn)全選和全取消實(shí)例代碼,有需要的朋友可以參考一下2013-11-11
JavaScript實(shí)現(xiàn)瀏覽器自動(dòng)刷新網(wǎng)頁(yè)的多種方法
本文介紹了5種常見的網(wǎng)頁(yè)自動(dòng)刷新方法:1安裝瀏覽器擴(kuò)展(推薦),2使用開發(fā)者工具控制臺(tái)輸入代碼,3創(chuàng)建書簽小工具,4添加meta標(biāo)簽修改網(wǎng)頁(yè)代碼,5運(yùn)行Python腳本,下面小編為大家詳細(xì)說(shuō)說(shuō)這五種方法,需要的朋友可以參考下2026-01-01

