摘要:話不多說,我們開干,加油干貨滿滿今天,我們一起學習一下中的數(shù)據(jù)類型檢測相關的知識,也順便做個總結(jié)。基本數(shù)據(jù)類型又包括,還有一個新增的,我們這先不說。
歡迎訪問我的個人博客:http://www.xiaolongwu.cn
前言最近工作有點忙,好幾天都沒更新技術博客了。
周末起床打開有道云筆記,發(fā)現(xiàn)自己的博客todolist里躺了一堆只有名字的文件。
話不多說,我們開干,加油!
干貨滿滿今天,我們一起學習一下js中的數(shù)據(jù)類型檢測相關的知識,也順便做個總結(jié)。
1、數(shù)據(jù)類型介紹我們都知道,在js中分為基本數(shù)據(jù)類型和復雜數(shù)據(jù)類型。
基本數(shù)據(jù)類型又包括 Sting Number Boolean Null Undefined ,還有一個es6新增的Symbol,我們這先不說。
復雜數(shù)據(jù)類型只有一種,那就是Object。
我們平時見到的數(shù)組Array、正則RegExp、時間對象Date、函數(shù)Function等都屬于Object。
2、如何判斷基本數(shù)據(jù)類型這點想必大家都知道,但是我還是要在這里啰嗦一下。
判斷基本數(shù)據(jù)類型我們可以選擇typeof來判斷。
這里需要注意就是返回值,他的返回值為小寫字母開頭的字符串。
//字符串 typeof "leon" // "sting" //整數(shù) typeof 22 // "number" //undefined typeof undefined // "undefined" //Boolean typeof true // "boolean" //Null typeof null // "object" 這為什么是object ? // 因為null表示的是一個空指針,指針表示的是引用型數(shù)據(jù),所以返回object //Object typeof [1,2.3] //"object" typeof {a: "ww"} //"object" typeof new Date() //"object" //function typeof function(){} //"function"3、instanceof
instanceof是用來檢測引用類型,檢測是那種類型的實例。
他的返回值為Boolean值,真為true,否則為false。
不能檢測null,會報錯。
// 這種檢測方式一般不常用 [1, 2] instanceof Array //true ({a: 1}) instanceof Object //true (function(){}) instanceof Function //true4、Constructor
返回結(jié)果為構造器,也可以檢測自定義類型;
但是不適用于null和undefined。
"leon".constructor == String // true (1234).constructor == Number // true (true).constructor == Boolean // true [1, 2].constructor == Array // true ({name:"leon"}).constructor == Object // true (function(){}).constructor == Function // true
檢測自定義類型
function Leon(){} var leon = new Leon(); leon.constructor == Leon; // true5、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({name:"leon"}); //"[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]") { console.log("這是個字符串") } //當然我們也可以選擇用正則去判斷第二個單詞,從而得到數(shù)據(jù)的類型
github文章資源地址:js基礎--數(shù)據(jù)類型檢測的相關知識
我的CSDN博客地址:https://blog.csdn.net/wxl1555
如果您對我的博客內(nèi)容有疑惑或質(zhì)疑的地方,請在下方評論區(qū)留言,或郵件給我,共同學習進步。
郵箱:wuxiaolong802@163.com
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/109093.html
摘要:前言本文主要是有關前端方面知識按照目前的認知進行的收集歸類概括和整理,涵蓋前端理論與前端實踐兩方面。 前言:本文主要是有關前端方面知識按照 XX 目前的認知進行的收集、歸類、概括和整理,涵蓋『前端理論』與『前端實踐』兩方面。本文會告訴你前端需要了解的知識大致有什么,看上去有很多,但具體你要學什么,還是要 follow your heart & follow your BOSS。 初衷...
摘要:前言本文主要是有關前端方面知識按照目前的認知進行的收集歸類概括和整理,涵蓋前端理論與前端實踐兩方面。 前言:本文主要是有關前端方面知識按照 XX 目前的認知進行的收集、歸類、概括和整理,涵蓋『前端理論』與『前端實踐』兩方面。本文會告訴你前端需要了解的知識大致有什么,看上去有很多,但具體你要學什么,還是要 follow your heart & follow your BOSS。 初衷...
摘要:前言本文主要是有關前端方面知識按照目前的認知進行的收集歸類概括和整理,涵蓋前端理論與前端實踐兩方面。 前言:本文主要是有關前端方面知識按照 XX 目前的認知進行的收集、歸類、概括和整理,涵蓋『前端理論』與『前端實踐』兩方面。本文會告訴你前端需要了解的知識大致有什么,看上去有很多,但具體你要學什么,還是要 follow your heart & follow your BOSS。 初衷...
摘要:的語言的動態(tài)性意味著我們可以使用以上種數(shù)據(jù)類型表示變換過渡動畫實現(xiàn)案例前端掘金以下所有效果的實現(xiàn)方式均為個人見解,如有不對的地方還請一一指出。 讀 zepto 源碼之工具函數(shù) - 掘金Zepto 提供了豐富的工具函數(shù),下面來一一解讀。 源碼版本 本文閱讀的源碼為 zepto1.2.0 $.extend $.extend 方法可以用來擴展目標對象的屬性。目標對象的同名屬性會被源對象的屬性...
閱讀 609·2021-11-25 09:44
閱讀 2711·2021-11-24 09:39
閱讀 2380·2021-11-22 15:29
閱讀 3621·2021-11-15 11:37
閱讀 3478·2021-09-24 10:36
閱讀 2597·2021-09-04 16:41
閱讀 1102·2021-09-03 10:28
閱讀 1990·2019-08-30 15:55