最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js學(xué)習(xí)總結(jié)_基于數(shù)據(jù)類型檢測(cè)的四種方式(必看)

 更新時(shí)間:2017年07月04日 08:26:02   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇js學(xué)習(xí)總結(jié)_基于數(shù)據(jù)類型檢測(cè)的四種方式(必看)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

1、typeof 用來(lái)檢測(cè)數(shù)據(jù)類型的運(yùn)算符 

console.log(typeof 12)//Number

使用typeof檢測(cè)數(shù)據(jù)類型,首先返回的都是字符串 ,其次字符串中包含了對(duì)應(yīng)的數(shù)據(jù)類型

例如:"number"、"string"、"boolean"、"undefined"、"function"、"object"

console.log(typeof typeof function(){}) //string

局限性:

typeof null -> "object"

不能具體的細(xì)分是數(shù)組還是正則,還是對(duì)象中其他的值,因?yàn)槭褂胻ypeof檢測(cè)數(shù)據(jù)類型,對(duì)于對(duì)象數(shù)據(jù)類型中的值,最后返回的結(jié)果都是"object"

2、instanceof 檢測(cè)某一個(gè)實(shí)例是否屬于某個(gè)類

var obj = [12,23];
    console.log(obj instanceof Array);

局限性:

對(duì)于基本數(shù)據(jù)類型來(lái)說(shuō),字面量方式創(chuàng)建出來(lái)的結(jié)果和實(shí)例方式創(chuàng)建出來(lái)的結(jié)果是有一定的區(qū)別的。從嚴(yán)格意義上講,只有實(shí)例創(chuàng)建出來(lái)的結(jié)果才是標(biāo)準(zhǔn)的對(duì)象數(shù)據(jù)類型值,也是標(biāo)準(zhǔn)的Number這個(gè)類的一個(gè)實(shí)例;對(duì)于字面量方式創(chuàng)建出來(lái)的結(jié)果是基本的數(shù)據(jù)類型值,不是嚴(yán)謹(jǐn)?shù)膶?shí)例,但是由于JS的松散特點(diǎn),導(dǎo)致了可以使用Number.prototype上的方法

1)、不能用來(lái)檢測(cè)和處理字面量方式創(chuàng)建出來(lái)的基本數(shù)據(jù)類型值

console.log(1 instanceof Number);//false
console.log(new Number(1) instanceof Number)//true

2)、instanceof的特性:只要在當(dāng)前實(shí)例的原型鏈上,我們用其檢測(cè)的結(jié)果都為true

var ary = [];
    console.log(ary instanceof Array);//true
    console.log(ary instanceof Object);//true

    function fn(){

    }
    console.log(fn instanceof Function);//true
    console.log(fn instanceof Object);//true

3、constructor 構(gòu)造函數(shù) 作用和instanceof非常的相似  constructor可以處理基本數(shù)據(jù)類型的檢測(cè)

constructor檢測(cè)Object和instanceof不一樣 一般情況下是檢測(cè)不了的

var obj = [];
    console.log(obj.constructor === Array)//true

    var num = 1;
    console.log(num.constructor === Number)//true

局限性:我們可以把類的原型進(jìn)行重寫,在重寫的過(guò)程中很有可能出現(xiàn)把之前的constructor給覆蓋掉了,這樣檢測(cè)出來(lái)的結(jié)果就不準(zhǔn)確了。

對(duì)于特殊的數(shù)據(jù)類型null和undefined,他們所屬的類是Null和Undefined,但是瀏覽器把這兩個(gè)類保護(hù)起來(lái)了,不允許我們?cè)谕饷嬖L問(wèn)使用

4、Object.prototype.toString.call() 最準(zhǔn)確最常用的方式 各種類型的都可以檢測(cè)(基本和引用)

首先獲取Object原型上的toString方法,讓方法執(zhí)行,并且改變方法中的this關(guān)鍵字的指向

toString的理解:

表面上看應(yīng)該是轉(zhuǎn)化成字符串,但是某些toString方法不僅僅是轉(zhuǎn)換為字符串

對(duì)于Number、String、Boolean、Array、RegExp、Date、Function原型上的toString方法都是把當(dāng)前的數(shù)據(jù)類型轉(zhuǎn)化為字符串的類型(他們的作用僅僅是用來(lái)轉(zhuǎn)換為字符串的)

Object.prototype.toString()并不是用來(lái)轉(zhuǎn)化為字符串的,他的作用是返回當(dāng)前方法執(zhí)行主體(方法中的this)所屬類的詳細(xì)信息?! ?/p>

({name:"李四"}).toString() //[object object]
    Math.toString()//[object Math]

({name:"李四"}).toString() //[object object]
    Math.toString()//[object Math]

    var obj = {name:"張三"};
    console.log(obj.toString())//toString中的this是obj,返回的是obj所屬的類的信息。[object Object] 第一個(gè)object代表當(dāng)前實(shí)例是對(duì)象數(shù)據(jù)類型的(這個(gè)是固定的),第二個(gè)Object代表的是obj所屬的類是Object

console.log((1).toString()) // "1" Number.prototype.toString轉(zhuǎn)化為字符串

console.log((128).toString(2/8/10)) 把數(shù)字轉(zhuǎn)化為2進(jìn)制、8進(jìn)制、10進(jìn)制

所以上面的方法的檢測(cè)如下 

var ary = [];
    console.log(Object.prototype.toString.call(ary))//[object Array]

以上這篇js學(xué)習(xí)總結(jié)_基于數(shù)據(jù)類型檢測(cè)的四種方式(必看)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • JavaScript獲取用戶所在城市及地理位置

    JavaScript獲取用戶所在城市及地理位置

    這篇文章主要介紹了JavaScript獲取用戶所在城市及地理位置的實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2018-04-04
  • javascript實(shí)現(xiàn)簡(jiǎn)單的ajax封裝示例

    javascript實(shí)現(xiàn)簡(jiǎn)單的ajax封裝示例

    這篇文章主要介紹了javascript實(shí)現(xiàn)簡(jiǎn)單的ajax封裝功能,結(jié)合實(shí)例形式分析了ajax基本功能與操作實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-12-12
  • innerHTML,outerHTML,innerTEXT三者之間的區(qū)別

    innerHTML,outerHTML,innerTEXT三者之間的區(qū)別

    innerHTML,outerHTML,innerTEXT三者之間的區(qū)別...
    2007-01-01
  • jquery獲取URL中參數(shù)解決中文亂碼問(wèn)題的兩種方法

    jquery獲取URL中參數(shù)解決中文亂碼問(wèn)題的兩種方法

    從A頁(yè)面通過(guò)url傳參到B頁(yè)面時(shí),獲取URL中參數(shù)出現(xiàn)中文亂碼問(wèn)題,解析url參數(shù)的正確方法如下,感興趣的朋友可以參考下
    2013-12-12
  • Javascript call及apply應(yīng)用場(chǎng)景及實(shí)例

    Javascript call及apply應(yīng)用場(chǎng)景及實(shí)例

    這篇文章主要介紹了Javascript call及apply應(yīng)用場(chǎng)景及實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • JavaScript獲取數(shù)據(jù)類型的方法詳解

    JavaScript獲取數(shù)據(jù)類型的方法詳解

    這篇文章給大家介紹了JavaScript獲取數(shù)據(jù)類型的方法,文中所介紹的所有知識(shí)點(diǎn)、代碼示例以及提供的解決方案,均不考慮?IE?瀏覽器,僅支持最新版本的?Chrome、Firefox、Edge?和?Safari?瀏覽器,需要的朋友可以參考下
    2024-02-02
  • js實(shí)現(xiàn)煙花特效

    js實(shí)現(xiàn)煙花特效

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)煙花效果,實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊出現(xiàn)模擬煙花爆炸的特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • js停止冒泡和阻止瀏覽器默認(rèn)行為的簡(jiǎn)單方法

    js停止冒泡和阻止瀏覽器默認(rèn)行為的簡(jiǎn)單方法

    下面小編就為大家?guī)?lái)一篇js停止冒泡和阻止瀏覽器默認(rèn)行為的實(shí)現(xiàn)代碼。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧,祝大家游戲愉快哦
    2016-05-05
  • 微信小程序?qū)崿F(xiàn)藍(lán)牙設(shè)備搜索及連接功能示例詳解

    微信小程序?qū)崿F(xiàn)藍(lán)牙設(shè)備搜索及連接功能示例詳解

    這篇文章主要介紹了微信小程序?qū)崿F(xiàn)藍(lán)牙設(shè)備搜索及連接功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • JavaScript簡(jiǎn)單計(jì)算人的年齡示例

    JavaScript簡(jiǎn)單計(jì)算人的年齡示例

    這篇文章主要介紹了JavaScript簡(jiǎn)單計(jì)算人的年齡,涉及簡(jiǎn)單的javascript字符串轉(zhuǎn)換及日期運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下
    2017-04-04

最新評(píng)論

绿春县| 金山区| 繁昌县| 盐城市| 中山市| 秦安县| 东辽县| 阜宁县| 湖北省| 珠海市| 仪征市| 海林市| 三河市| 财经| 巩义市| 个旧市| 合江县| 巴东县| 泰安市| 阳泉市| 延川县| 凌云县| 大余县| 达拉特旗| 五原县| 育儿| 澄城县| 平和县| 保亭| 通海县| 兰考县| 突泉县| 米易县| 明水县| 祥云县| 寻乌县| 天柱县| 连江县| 大理市| 盱眙县| 东源县|