成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

javascript 判斷數(shù)據(jù)類型的幾種方法

phoenixsky / 1667人閱讀

摘要:判斷數(shù)據(jù)類型的幾種方法一直接返回?cái)?shù)據(jù)類型字段,但是無法判斷數(shù)組對(duì)象其中都返回二判斷某個(gè)實(shí)例是不是屬于原型構(gòu)造函數(shù)三使用判斷方法可以改變的指向,那么把方法指向不同的數(shù)據(jù)類型上面,返回不同的結(jié)果最后我們可以定義一個(gè)完美的判斷數(shù)據(jù)類型的方法

javascript 判斷數(shù)據(jù)類型的幾種方法
一、typeof 直接返回?cái)?shù)據(jù)類型字段,但是無法判斷數(shù)組、null、對(duì)象

typeof 1
"number"

typeof NaN
"number"

typeof "1"
"string"

typeof true
"boolean"

typeof undefined
"undefined"

typeof null
"object"

typeof []
"object"

typeof {}
"object"

其中 null, [], {}都返回 "object"

二、instanceof 判斷某個(gè)實(shí)例是不是屬于原型

// 構(gòu)造函數(shù)
function Fruit(name, color) {
    this.name = name;
    this.color = color;
}
var apple = new Fruit("apple", "red");

// (apple != null)
apple instanceof Object  // true
apple instanceof Array   // false

三、使用 Object.prototype.toString.call()判斷

call()方法可以改變this的指向,那么把Object.prototype.toString()方法指向不同的數(shù)據(jù)類型上面,返回不同的結(jié)果

Object.prototype.toString.call(1)
"[object Number]"

Object.prototype.toString.call(NaN);
"[object Number]"

Object.prototype.toString.call("1");
"[object String]"

Object.prototype.toString.call(true)
"[object Boolean]"

Object.prototype.toString.call(null)
"[object Null]"

Object.prototype.toString.call(undefined)
"[object Undefined]"

Object.prototype.toString.call(function a() {});
"[object Function]"

Object.prototype.toString.call([]);
"[object Array]"

Object.prototype.toString.call({});
"[object Object]"

最后我們可以定義一個(gè)完美的判斷數(shù)據(jù)類型的方法 _typeof()

function _typeof(obj){
  var s = Object.prototype.toString.call(obj);
  return s.match(/[object (.*?)]/)[1].toLowerCase();
};


_typeof([12,3,343]);
"array"

_typeof({name: "zxc", age: 18});
"object"

_typeof(1);
"number"

_typeof("1");
"string"

 _typeof(null);
"null"

_typeof(undefined);
"undefined"

_typeof(NaN);
"number"

_typeof(Date);
"function"

_typeof(new Date());
"date"

_typeof(new RegExp());
"regexp"

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/101677.html

相關(guān)文章

  • javascript數(shù)據(jù)類型檢測幾種方式

    摘要:類型檢測的方法鴨子類型返回一個(gè)字符串,適合函數(shù)對(duì)象和基本類型的判斷返回一個(gè)布爾值,判斷對(duì)象類型基于原型鏈的方式原理左邊對(duì)象的原型鏈原型上是否有右邊構(gòu)造函數(shù)的對(duì)象屬性是基本類型這么多就說明不適合用于基本數(shù)據(jù)類型注意返回的是 類型檢測的方法 typeof instanceof Object.protype.toString constructor duck type:鴨子類型 show...

    Baaaan 評(píng)論0 收藏0
  • 判斷是否是數(shù)組幾種方法— (js基礎(chǔ)復(fù)習(xí)第1期)

    摘要:如果網(wǎng)頁中包含多個(gè)框架,那實(shí)際上就存在兩個(gè)以上不同的全局執(zhí)行環(huán)境,從而存在兩個(gè)以上不同版本的構(gòu)造函數(shù)。如果你從一個(gè)框架向另一個(gè)框架傳入一個(gè)數(shù)組,那么傳入的數(shù)組與在第二個(gè)框架中原生創(chuàng)建的數(shù)組分別具有各自不同的構(gòu)造函數(shù)。 1. 首先,typeof肯定是不行的 對(duì)于一些基本類型,typeof是可以判斷出數(shù)據(jù)類型,但是判斷一些引用類型時(shí)候,不能具體到具體哪一種類型 再來復(fù)習(xí)一下typeof的...

    supernavy 評(píng)論0 收藏0
  • javascript高級(jí)程序設(shè)計(jì)》第六章 讀書筆記 之 javascript對(duì)象幾種創(chuàng)建方式

    摘要:三種使用構(gòu)造函數(shù)創(chuàng)建對(duì)象的方法和的作用都是在某個(gè)特殊對(duì)象的作用域中調(diào)用函數(shù)。這種方式還支持向構(gòu)造函數(shù)傳遞參數(shù)。叫法上把函數(shù)叫做構(gòu)造函數(shù),其他無區(qū)別適用情境可以在特殊的情況下用來為對(duì)象創(chuàng)建構(gòu)造函數(shù)。 一、工廠模式 工廠模式:使用字面量和object構(gòu)造函數(shù)會(huì)有很多重復(fù)代碼,在此基礎(chǔ)上改進(jìn)showImg(https://segmentfault.com/img/bVbmKxb?w=456&...

    xiaotianyi 評(píng)論0 收藏0
  • 判斷瀏覽器是否支持 webp 幾種解決方法

    摘要:實(shí)現(xiàn)方法方法二在服務(wù)端根據(jù)請(qǐng)求信息判斷瀏覽器是否支持谷歌瀏覽器上請(qǐng)求圖片是這樣的瀏覽器請(qǐng)求圖片是這樣的在圖片請(qǐng)求發(fā)出的時(shí)候,里有,服務(wù)端可以根據(jù)里面是否有進(jìn)行判斷。 我們都知道,WebP 是 Google 推出的 WebP 圖片格式,它是一種支持有損壓縮和無損壓縮的圖片文件格式,根據(jù)Google測試,相同的圖片,WebP 格式的圖片均能比 PNG,JPG 格式的圖片節(jié)約不少體積,但是其...

    DobbyKim 評(píng)論0 收藏0
  • JavaScript知識(shí)點(diǎn)總結(jié)

    摘要:參與任何數(shù)值計(jì)算的結(jié)構(gòu)都是,而且。。面向人類的理性事物,而不是機(jī)器信號(hào)。達(dá)到無刷新效果。的工作原理總是指向一個(gè)對(duì)象,具體是運(yùn)行時(shí)基于函數(shù)的執(zhí)行環(huán)境動(dòng)態(tài)綁定的,而非函數(shù)被聲明時(shí)的環(huán)境。原型對(duì)象上有一個(gè)屬性,該屬性指向的就是構(gòu)造函數(shù)。 1.JS面向?qū)ο蟮睦斫?面向?qū)ο蟮娜筇攸c(diǎn):繼承、封裝、多態(tài) 1、JS中通過prototype實(shí)現(xiàn)原型繼承 2、JS對(duì)象可以通過對(duì)象冒充,實(shí)現(xiàn)多重繼承, 3...

    sean 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<