在javaScript中檢測(cè)數(shù)據(jù)類(lèi)型的幾種方式小結(jié)
在用javaScript編程的過(guò)程中,我們經(jīng)常會(huì)遇到這樣一個(gè)問(wèn)題,就是需要檢測(cè)一個(gè)數(shù)據(jù)或變量的類(lèi)型,那么在javaScript中給我們提供了哪些方法呢?網(wǎng)上流傳的代碼比比皆是,但是發(fā)現(xiàn)其中有些是有誤的,索性我自己動(dòng)手把每種方法用了一遍,今天我專(zhuān)門(mén)整理了下,以便以后查閱。
一、typeof 檢測(cè)
typeof 是一個(gè)一元運(yùn)算符,語(yǔ)法:typeof(運(yùn)算數(shù)),運(yùn)算數(shù)可以是任意類(lèi)型。它的返回值是一個(gè)字符串,該字符串說(shuō)明運(yùn)算數(shù)的類(lèi)型。
// var arr = { name:"john"}; // object // var arr = ["語(yǔ)文","數(shù)學(xué)"]; // object // function Person() {}; // typeof(Person) => function // var arr = '我是字符串' ; // string // var arr = 66 ; // number // var arr = true ; // boolean // var arr = new Person(); // object // var arr = undefined; // undefined // var arr = null; // object // var arr = /^\d{5,20}$/; // object // console.log( typeof(arr) );
二、instanceof 檢測(cè)
instanceof 檢測(cè)某個(gè)對(duì)象是不是另一個(gè)對(duì)象的實(shí)例,可以在繼承關(guān)系中用來(lái)判斷一個(gè)實(shí)例是否屬于它的父類(lèi)型。
// var arr = '我是字符串' ; // console.log( arr instanceof String ) => false // var arr = 66 ; // console.log( arr instanceof Number ) =>false // var arr = true ; // console.log( arr instanceof Boolean ) =>false // var arr = ["語(yǔ)文","數(shù)學(xué)"]; // console.log( arr instanceof Array ) =>true // var arr = { name:"john"}; // console.log( arr instanceof Object ) =>true // var arr = function Person(){}; //console.log(arr instanceof Function)=>true // var arr = undefined; // console.log(arr instanceof Object)=>false // var arr = null; // console.log(arr instanceof Object)=>false // var arr = /^\d{5,20}$/; // console.log(arr instanceof RegExp)=>true
三、Object.prototype.toString.call 檢測(cè)
使用Object.prototype上的原生toString()方法判斷數(shù)據(jù)類(lèi)型,使用方法如下:Object.prototype.toString.call(value)
// var arr = '我是字符串' ; //[object String] // var arr = 66 ; //[object Number] // var arr = true ; //[object Boolean] // var arr = ["語(yǔ)文","數(shù)學(xué)"]; //[object Array] // var arr = { name:"john"}; //[object Object] // var arr = function Person(){}; //[object Function] // var arr = undefined; //[object Undefined] // var arr = null; //[object Null] // var arr = /^\d{5,20}$/; //[object RegExp] // console.log( Object.prototype.toString.call(arr) );
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- JS中檢測(cè)數(shù)據(jù)類(lèi)型的幾種方式及優(yōu)缺點(diǎn)小結(jié)
- 淺談javascript的數(shù)據(jù)類(lèi)型檢測(cè)
- 關(guān)于JS數(shù)據(jù)類(lèi)型檢測(cè)的多種方式總結(jié)
- js數(shù)據(jù)類(lèi)型檢測(cè)總結(jié)
- JavaScript中檢測(cè)數(shù)據(jù)類(lèi)型的四種方法
- javascript基本數(shù)據(jù)類(lèi)型及類(lèi)型檢測(cè)常用方法小結(jié)
- JavaScript數(shù)據(jù)類(lèi)型檢測(cè)代碼分享
- js學(xué)習(xí)總結(jié)_基于數(shù)據(jù)類(lèi)型檢測(cè)的四種方式(必看)
- JS數(shù)組索引檢測(cè)中的數(shù)據(jù)類(lèi)型問(wèn)題詳解
- js中各種數(shù)據(jù)類(lèi)型檢測(cè)和判定的實(shí)戰(zhàn)示例
相關(guān)文章
Javascript iframe交互并兼容各種瀏覽器的解決方法
這篇文章主要介紹了Javascript iframe交互并兼容各種瀏覽器的解決方法的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07Openlayers實(shí)現(xiàn)測(cè)量功能
這篇文章主要為大家詳細(xì)介紹了Openlayers實(shí)現(xiàn)測(cè)量功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09Echarts地圖添加引導(dǎo)線效果(labelLine)
這篇文章主要介紹了Echarts地圖添加引導(dǎo)線效果(labelLine),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09element select下拉框編輯時(shí)回顯已經(jīng)刪除的數(shù)據(jù)操作代碼
今天做項(xiàng)目遇到一個(gè)棘手的問(wèn)題,關(guān)于element select下拉框編輯時(shí)回顯問(wèn)題,下面小編通過(guò)實(shí)例代碼介紹element select下拉框編輯時(shí)回顯已經(jīng)刪除的數(shù)據(jù),感興趣的朋友跟隨小編一起看看吧2024-05-0510個(gè)功能強(qiáng)大的JavaScript動(dòng)畫(huà)庫(kù)分享
動(dòng)畫(huà),從人群中脫穎而出、吸引訪客注意力的絕佳方式,本文將給大家分享10 個(gè)功能強(qiáng)大的 JavaScript 動(dòng)畫(huà)庫(kù),有了這 10 個(gè)功能強(qiáng)大的 JavaScript 庫(kù),創(chuàng)建動(dòng)畫(huà)再簡(jiǎn)單不過(guò)了,感興趣的同學(xué)可以參考閱讀2023-09-09概述一個(gè)頁(yè)面從輸入U(xiǎn)RL到頁(yè)面加載完的過(guò)程
本文主要對(duì)一個(gè)頁(yè)面從輸入 URL 到頁(yè)面加載完的過(guò)程中都發(fā)生了什么事情進(jìn)行概述,對(duì)我們學(xué)習(xí)網(wǎng)絡(luò)語(yǔ)言有一定的幫助,下面就跟小編一起來(lái)看下吧2016-12-12微信小程序?qū)崿F(xiàn)打開(kāi)并下載服務(wù)器上面的pdf文件到手機(jī)
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)打開(kāi)并下載服務(wù)器上面的pdf文件到手機(jī),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09