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

JavaScript中判斷數(shù)據(jù)類型的方法總結(jié)

 更新時(shí)間:2016年05月24日 15:31:30   作者:Aaron  
比如要判斷一個(gè)變量是否是數(shù)組類型,PHP中有is_array()函數(shù)可以直接判斷,然而js中我們需要...-- well,下面我們就來詳細(xì)看一下JavaScript中判斷數(shù)據(jù)類型的方法總結(jié)

typeof
typeof用的比較多的時(shí)候,是判斷某個(gè)全局變量在不在,假如某個(gè)頁面定義了一個(gè)全局變量。假如你做如下判斷:

//haorooms是全局變量
if(haorooms!=undefined){
}//js會(huì)報(bào)錯(cuò),說"Uncaught ReferenceError: haorooms is not defined"

解決的方法是我們?nèi)缦聦懀?/p>

 if(typeof haorooms!=undefined){
 }

用了typeof之后,就不會(huì)報(bào)錯(cuò)了!這是typeof的應(yīng)用之一!

此外,typeof還可以進(jìn)行數(shù)據(jù)類型的判斷!如下:

var haorooms="string"; console.log(haorooms); //string
var haorooms=1; console.log(haorooms); //number
var haorooms=false; console.log(haorooms); //boolean
var haorooms; console.log(typeof haorooms); //undfined

var haorooms= null; console.log(typeof haorooms); //object
var haorooms = document; console.log(typeof haorooms); //object
var haorooms = []; console.log(haorooms); //object
var haorooms = function(){}; console.log(typeof haorooms) //function  除了可以判斷數(shù)據(jù)類型還可以判斷function類型

很明顯,對(duì)于typeof,除了前四個(gè)類型外,null、對(duì)象、數(shù)組返回的都是object類型;

instanceof
可以用其判斷是否是數(shù)組。

var haorooms=[];
console.log(haorooms instanceof Array) //返回true 

constructor
constructor就是返回對(duì)象相對(duì)應(yīng)的構(gòu)造函數(shù)。
判斷各種數(shù)據(jù)類型的方法:

console.log([].constructor == Array);
console.log({}.constructor == Object);
console.log("string".constructor == String);
console.log((123).constructor == Number);
console.log(true.constructor == Boolean);

function employee(name,job,born){
  this.name=name;
  this.job=job;
  this.born=born; }

var haorooms=new employee("Bill Gates","Engineer",1985); 
console.log(haorooms.constructor); //輸出function employee(name, jobtitle, born){this.name = name; this.jobtitle = job; this.born = born;}

通過輸出haorooms.constructor,可以看出constructor就是返回對(duì)象相對(duì)應(yīng)的構(gòu)造函數(shù)。

Object.prototype.toString
前面我們提到了可以運(yùn)用 constructor 屬性來判定物件類型,讓我們?cè)賮碇v講 Object.protype.toString 這個(gè)方法

Object.prototype.toString.apply({}) // "[object Object]"
Object.prototype.toString.apply([]) // "[object Array]"
Object.prototype.toString.apply(NaN)// "[object Number]"
Object.prototype.toString.apply(function(){}) // "[object Function]"

運(yùn)用這種方式我們可以正確的判斷一個(gè)變量的基本型態(tài),但是如果是自訂類型的話,卻無法得知真正的類型,因?yàn)榻Y(jié)果依然會(huì)是 [object Object]

其他
jQuery 也有類型判斷的方法,下面是一例

$.isWindow(window) // true

怎么做的呢

core.js#479
isWindow: function( obj ) {
  return obj != null && obj == obj.window;
}

所以開一個(gè)這樣的 Object:

var fakeWindow;
fakeWindow = {};
fakeWindow.window = fakeWindow;
$.isWindow(fakeWindow) // true

你就騙過他了。

小結(jié)
在 JavaScript 中要正確判斷類型,當(dāng)仔細(xì)去鉆研的時(shí)候,真是一件麻煩事,根據(jù)不同的情境去設(shè)計(jì)你的判斷式是相當(dāng)重要的,我們也必須要去思考如何用最簡潔的方式判斷正確的類型,當(dāng)然這篇還有很多地方?jīng)]有介紹到,例如 isPrototypeOf 這個(gè)方法,JavaScript 是一個(gè)有許多歷史包袱的語言,但也是不斷的在進(jìn)步,運(yùn)用它的時(shí)候,要注意,有太多的方式是雙面刃,切記要小心運(yùn)用。

相關(guān)文章

  • easyui-edatagrid.js實(shí)現(xiàn)回車鍵結(jié)束編輯功能的實(shí)例

    easyui-edatagrid.js實(shí)現(xiàn)回車鍵結(jié)束編輯功能的實(shí)例

    下面小編就為大家?guī)硪黄猠asyui-edatagrid.js實(shí)現(xiàn)回車鍵結(jié)束編輯功能的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04
  • Javascript節(jié)流函數(shù)throttle和防抖函數(shù)debounce

    Javascript節(jié)流函數(shù)throttle和防抖函數(shù)debounce

    這篇文章主要介紹了Javascript節(jié)流函數(shù)throttle和防抖函數(shù)debounce,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • 微信小程序開發(fā)教程之增加mixin擴(kuò)展

    微信小程序開發(fā)教程之增加mixin擴(kuò)展

    Mixin是一種思想,用部分實(shí)現(xiàn)的接口來實(shí)現(xiàn)代碼復(fù)用??梢杂脕斫鉀Q多繼承的問題,又可以用來擴(kuò)展功能。下面這篇文章主要給大家介紹了關(guān)于為微信小程序增加mixin擴(kuò)展的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08
  • 常用的javascript function代碼

    常用的javascript function代碼

    一些javascript常見函數(shù),方便當(dāng)作學(xué)習(xí)參考
    2008-05-05
  • uniapp監(jiān)聽頁面滾動(dòng)2種常用方法

    uniapp監(jiān)聽頁面滾動(dòng)2種常用方法

    在uni-app中,監(jiān)聽頁面滾動(dòng)可以使用onPageScroll生命周期函數(shù)或@scroll事件監(jiān)聽器,onPageScroll適用于監(jiān)聽整個(gè)頁面的滾動(dòng)事件,而@scroll事件監(jiān)聽器適用于監(jiān)聽特定組件如scroll-view的滾動(dòng),這兩種方法的選擇取決于監(jiān)聽需求的不同,需要的朋友可以參考下
    2024-09-09
  • js動(dòng)態(tài)創(chuàng)建、刪除表格示例代碼

    js動(dòng)態(tài)創(chuàng)建、刪除表格示例代碼

    生成一個(gè)2000*5的表格,每個(gè)單元格的內(nèi)容是行號(hào)+逗號(hào)+列號(hào),具體的實(shí)現(xiàn)過程如下,感興趣的朋友可以參考下,希望對(duì)大家有所幫助
    2013-08-08
  • javascript命名約定(變量?函數(shù)?類?組件)

    javascript命名約定(變量?函數(shù)?類?組件)

    這篇小文章主要是通過一些例子來介紹一些Javascript中一些關(guān)于命名變量,函數(shù),類或者是組件的通用約定,雖然這些規(guī)則并不是強(qiáng)制性的,但是呢,他們卻被一些JS社區(qū)所廣泛采用,所以,了解他們還是很有必要的
    2023-03-03
  • 簡單的JS控制button顏色隨點(diǎn)擊更改的實(shí)現(xiàn)方法

    簡單的JS控制button顏色隨點(diǎn)擊更改的實(shí)現(xiàn)方法

    下面小編就為大家?guī)硪黄唵蔚腏S控制button顏色隨點(diǎn)擊更改的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04
  • 讓innerText在firefox火狐和IE瀏覽器都能用的寫法

    讓innerText在firefox火狐和IE瀏覽器都能用的寫法

    下面的代碼主要是用來解決firefox瀏覽器不支持innerText的問題,需要的朋友可以參考下。
    2011-05-05
  • JS+CSS實(shí)現(xiàn)的漂亮漸變背景特效代碼(6個(gè)漸變效果)

    JS+CSS實(shí)現(xiàn)的漂亮漸變背景特效代碼(6個(gè)漸變效果)

    這篇文章主要介紹了JS+CSS實(shí)現(xiàn)的漂亮漸變背景特效代碼,包含6個(gè)漸變效果,涉及JavaScript針對(duì)頁面元素屬性動(dòng)態(tài)操作的相關(guān)技巧,需要的朋友可以參考下
    2016-03-03

最新評(píng)論

分宜县| 旌德县| 噶尔县| 淳安县| 于都县| 西和县| 淮安市| 山阴县| 金门县| 高州市| 嘉峪关市| 浦城县| 图木舒克市| 贵阳市| 会昌县| 大关县| 酒泉市| 桐庐县| 阿鲁科尔沁旗| 双城市| 贵阳市| 洛阳市| 陇川县| 中超| 克东县| 当阳市| 昂仁县| 宁河县| 醴陵市| 镇坪县| 丘北县| 平塘县| 东方市| 封丘县| 莱阳市| 乌拉特前旗| 山丹县| 蓬溪县| 三门峡市| 鄂州市| 迭部县|