js基礎 資料型別檢測的相關知識

2022-03-09 03:15:13 字數 2559 閱讀 4991

最近工作有點忙,好幾天都沒更新技術部落格了。

週末起床開啟有道雲筆記,發現自己的部落格todolist裡躺了一堆只有名字的檔案。

話不多說,我們開幹,加油!

今天,我們一起學習一下js中的資料型別檢測相關的知識,也順便做個總結。

1、資料型別介紹

我們都知道,在js中分為基本資料型別和複雜資料型別。

基本資料型別又包括 sting number boolean null undefined ,還有乙個es6新增的symbol,我們這先不說。

複雜資料型別只有一種,那就是object。

我們平時見到的陣列array、正則regexp、時間物件date、函式function等都屬於object。

2、如何判斷基本資料型別

這點想必大家都知道,但是我還是要在這裡囉嗦一下。

判斷基本資料型別我們可以選擇typeof來判斷。

這裡需要注意就是返回值,他的返回值為小寫字母開頭的字串。

//字串

typeof 'leon' // 'sting'

//整數

typeof 22 // 'number'

//undefined

typeof undefined // 'undefined'

//boolean

typeof true // 'boolean'

//null

typeof null // 'object' 這為什麼是object ?

// 因為null表示的是乙個空指標,指標表示的是引用型資料,所以返回object

//object

typeof [1,2.3] //'object'

typeof //'object'

typeof new date() //'object'

//function

typeof function(){} //"function"

instanceof是用來檢測引用型別,檢測是那種型別的例項。

他的返回值為boolean值,真為true,否則為false。

不能檢測null,會報錯。

// 這種檢測方式一般不常用

[1, 2] instanceof array //true

() instanceof object //true

(function(){}) instanceof function //true

4、constructor

返回結果為構造器,也可以檢測自定義型別;

但是不適用於null和undefined。

'leon'.constructor == string // true

(1234).constructor == number // true

(true).constructor == boolean // true

[1, 2].constructor == array // true

().constructor == object // true

(function(){}).constructor == function // true

檢測自定義型別

function leon(){}

var leon = new leon();

leon.constructor == leon; // true

5、object.prototype.tostring.call(obj)

這種方式是最權威的,也是很多框架外掛程式中用到的方法,推薦使用;

object.prototype.tostring.call('leon'); //"[object string]"

object.prototype.tostring.call(1234); //"[object number]"

object.prototype.tostring.call(true); //"[object boolean]"

object.prototype.tostring.call([1,2,3]); //"[object array]"

object.prototype.tostring.call(); //"[object object]"

object.prototype.tostring.call(function(){}); //"[object function]"

object.prototype.tostring.call(null); //"[object null]"

object.prototype.tostring.call(undefined); //"[object undefined]"

實際使用時,可以這麼寫

var test = object.prototype.tostring.call('leon');

if(test == "[object string]")

//當然我們也可以選擇用正則去判斷第二個單詞,從而得到資料的型別

js基礎 資料型別檢測的相關知識

最近工作有點忙,好幾天都沒更新技術部落格了。週末起床開啟有道雲筆記,發現自己的部落格todolist裡躺了一堆只有名字的檔案。話不多說,我們開幹,加油!今天,我們一起學習一下js中的資料型別檢測相關的知識,也順便做個總結。1 資料型別介紹 我們都知道,在js中分為基本資料型別和複雜資料型別。基本資料...

js檢測資料型別

要檢測乙個變數是不是基本資料型別?typeof 操作符是最佳的工具。說得更具體一 點,typeof 操作符是確定乙個變數是字串 數值 布林值,還是undefined 的最佳工具。如果變 量的值是乙個物件或null,則typeof 操作符會像下面例子中所示的那樣返回 object var s nich...

JS資料型別檢測

在js的日常使用中,經常需要檢測資料的型別,現在,就來看一下,js有哪些方法可以檢測資料的型別。typeof操作符返回乙個字串,表示未經計算的運算元的型別。typeof是js原生提供用來檢測型別的api,然而,並沒有什麼用。為什麼呢?因為,typeof不能準確地檢測出我們所想要知道的資料的型別。ty...