在javaScript中檢測(cè)數(shù)據(jù)類型的幾種方式小結(jié)
在用javaScript編程的過(guò)程中,我們經(jīng)常會(huì)遇到這樣一個(gè)問(wèn)題,就是需要檢測(cè)一個(gè)數(shù)據(jù)或變量的類型,那么在javaScript中給我們提供了哪些方法呢?網(wǎng)上流傳的代碼比比皆是,但是發(fā)現(xiàn)其中有些是有誤的,索性我自己動(dòng)手把每種方法用了一遍,今天我專門整理了下,以便以后查閱。
一、typeof 檢測(cè)
typeof 是一個(gè)一元運(yùn)算符,語(yǔ)法:typeof(運(yùn)算數(shù)),運(yùn)算數(shù)可以是任意類型。它的返回值是一個(gè)字符串,該字符串說(shuō)明運(yùn)算數(shù)的類型。
// 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í)例是否屬于它的父類型。
// 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ù)類型,使用方法如下: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ù)類型的幾種方式及優(yōu)缺點(diǎn)小結(jié)
- 淺談javascript的數(shù)據(jù)類型檢測(cè)
- 關(guān)于JS數(shù)據(jù)類型檢測(cè)的多種方式總結(jié)
- js數(shù)據(jù)類型檢測(cè)總結(jié)
- JavaScript中檢測(cè)數(shù)據(jù)類型的四種方法
- javascript基本數(shù)據(jù)類型及類型檢測(cè)常用方法小結(jié)
- JavaScript數(shù)據(jù)類型檢測(cè)代碼分享
- js學(xué)習(xí)總結(jié)_基于數(shù)據(jù)類型檢測(cè)的四種方式(必看)
- JS數(shù)組索引檢測(cè)中的數(shù)據(jù)類型問(wèn)題詳解
- js中各種數(shù)據(jù)類型檢測(cè)和判定的實(shí)戰(zhàn)示例
相關(guān)文章
基于JavaScript實(shí)現(xiàn)線性漸變的高斯模糊效果
這篇文章主要為大家詳細(xì)介紹了高斯模糊算法以及線性漸變的高斯模糊算法的原理,并通過(guò)一個(gè)小demo展示了如何實(shí)現(xiàn)y方向上線性漸變的高斯模糊效果,需要的可以了解下2024-01-01
IE與Firefox在JavaScript上的7個(gè)不同句法分享
盡管那需要用長(zhǎng)串的、沉悶的不同分支代碼來(lái)應(yīng)付不同瀏覽器的日子已經(jīng)過(guò)去,偶爾還是有必要做一些簡(jiǎn)單的區(qū)分和目標(biāo)檢測(cè)來(lái)確保某塊代碼能在用戶的機(jī)器上正常運(yùn)行2011-10-10
小程序開(kāi)發(fā)調(diào)用微信支付以及微信回調(diào)地址配置
本文主要介紹了小程序開(kāi)發(fā)調(diào)用微信支付以及微信回調(diào)地址配置,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
javascript實(shí)現(xiàn)復(fù)制與粘貼操作實(shí)例
這篇文章主要介紹了javascript實(shí)現(xiàn)復(fù)制與粘貼操作,以實(shí)例形式講述了javascript實(shí)現(xiàn)復(fù)制與粘貼操作的實(shí)現(xiàn)方法,需要的朋友可以參考下2014-10-10
event.X和event.clientX的區(qū)別分析
解釋一下event.X和event.clientX有什么區(qū)別?event.clientX返回事件發(fā)生時(shí),mouse相對(duì)于客戶窗口的X坐標(biāo) event.X也一樣但是如果設(shè)置事件對(duì)象的定位屬性值為relative2011-10-10
clientX,pageX,offsetX,x,layerX,screenX,offsetLeft區(qū)別分析
clientX,pageX,offsetX,x,layerX,screenX,offsetLeft區(qū)別分析,需要的朋友可以參考下。2010-03-03
Javascript如何實(shí)現(xiàn)雙指控制圖片功能
這篇文章主要介紹了Javascript如何實(shí)現(xiàn)雙指控制圖片功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
基于KO+BootStrap+MVC實(shí)現(xiàn)的分頁(yè)控件代碼分享
本段js和html兩段代碼實(shí)現(xiàn)分頁(yè)控件效果,下面通過(guò)本文給大家詳細(xì)介紹下基于KO+BootStrap+MVC實(shí)現(xiàn)的分頁(yè)控件,非常不錯(cuò),感興趣的朋友一起看看吧2016-11-11

