最近工作有點忙,好幾天都沒更新技術部落格了。
週末起床開啟有道雲筆記,發現自己的部落格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...