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

javascript中關于類型判斷的一些疑惑小結(jié)

 更新時間:2018年10月14日 15:23:26   作者:ylzsmallsun  
這篇文章主要給大家介紹了關于javascript中關于類型判斷的一些疑惑,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言

類型判斷是我們在日常工作中經(jīng)常會遇到的一個功能,本文將給大家詳細介紹關于javascript類型判斷的相關內(nèi)容,下面話不多說了,來一起看看詳細的介紹吧

Javascript中數(shù)據(jù)類型分為兩種:

  • 簡單數(shù)據(jù)類型:Undefined, NULL, Boolean, Number, String
  • 復雜數(shù)據(jù)類型:Object

接下來我們就來看看怎么做數(shù)據(jù)類型判別吧?

首先來看看 typeof

Type Result
Undefined "undefined"
Null "object" (see below)
Boolean "boolean"
Number "number"
String "string"
Symbol (new in ECMAScript 2015) "symbol"
Host object (provided by the JS environment) Implementation-dependent
Function object (implements [[Call]] in ECMA-262 terms) "function"
Any other object "object"

來點code demo吧

let a = undefined;
typeof a
"undefined"

let b = false;
typeof b
"boolean"

let c = 12;
typeof c
"number"

let d = '12';
typeof d
"string"

let f = function () {};
typeof f
"function"

接下來我們就來看看那些奇怪的現(xiàn)象吧

let str = new String('abc');
typeof str
"object"

let num = new Number(12);
typeof num
"object"

var func = new Function();
typeof func; 
"function"

typeof null
"object"

使用構(gòu)造函數(shù)創(chuàng)建的變量,使用typeof判斷會返回“object”結(jié)果,但是Function函數(shù)例外,由它創(chuàng)建的變量typeof返回的是“function”

接著就來說說typeof null == "object"。這個相信前端開發(fā)的小伙伴都知道是這個結(jié)果了,But why? 這其實是javascript第一個版本就存在的一個bug,歷史原因可以看看這篇文章The history of typeof null

關于如何判斷數(shù)組

let arr = [1, 2, 3];
typeof arr
"object"

上面這個結(jié)果大家應該不陌生,那該如何正確判斷數(shù)組類型呢

1、instanceof

arr instanceof Array //true

2、isArray

Array.isArray(arr) // true

3、constructor.name

arr.constructor.name // "Array"

第三種用法用的人應該比較少,不少前端的的小伙伴都沒用過。對于復雜類型Object,它的每個實例都有constructor屬性。

instanceof vs isArray

當檢測Array實例時, Array.isArray 優(yōu)于 instanceof,因為Array.isArray能檢測iframes.

var iframe = document.createElement('iframe');
document.body.appendChild(iframe);
xArray = window.frames[window.frames.length-1].Array;
var arr = new xArray(1,2,3); // [1,2,3]

// Correctly checking for Array
Array.isArray(arr); // true
// Considered harmful, because doesn't work though iframes
arr instanceof Array; // false

這段代碼是從MDN copy的。補充以下結(jié)果,發(fā)現(xiàn)第三種方法constructor.name也能正確判斷出。

arr.constructor.name //"Array"

關于NaN

使用isNaN判斷NaN。

isNaN(1/'a') // true

我們知道NaN == NaN結(jié)果是false,那如何判斷兩個NaN變量呢?

比較兩個NaN變量,使用es6的Object.is()即可。

let nan1 = NaN
let nan2 = NaN
Object.is(nan1, nan2)
true

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • JSON無限折疊菜單編寫實例

    JSON無限折疊菜單編寫實例

    這篇文章主要介紹了JSON無限折疊菜單編寫實例,有需要的朋友可以參考一下
    2013-12-12
  • JS生成隨機打亂數(shù)組的方法示例

    JS生成隨機打亂數(shù)組的方法示例

    這篇文章主要介紹了JS生成隨機打亂數(shù)組的方法,涉及javascript數(shù)組隨機排序的相關操作技巧,需要的朋友可以參考下
    2017-12-12
  • JavaScript實現(xiàn)捕獲鼠標坐標

    JavaScript實現(xiàn)捕獲鼠標坐標

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)捕獲鼠標坐標,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • javascript實現(xiàn)搜索篩選功能實例代碼

    javascript實現(xiàn)搜索篩選功能實例代碼

    這篇文章主要給大家介紹了關于javascript實現(xiàn)搜索篩選功能的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • 簡單談談javascript代碼復用模式

    簡單談談javascript代碼復用模式

    這篇文章主要簡單談談javascript代碼復用模式,主要詳細介紹了類式繼承模式中的默認模式,希望大家能夠喜歡。
    2015-01-01
  • 最新JS正則表達式驗證郵箱和手機號實例(2022)

    最新JS正則表達式驗證郵箱和手機號實例(2022)

    在前端開發(fā)過程中,通過使用JS的正則表達式來校驗輸入的郵箱或者手機號是否正確,這也是一個非常常見的業(yè)務情景需求,下面這篇文章主要給大家介紹了關于利用JS正則表達式驗證郵箱和手機號的相關資料,需要的朋友可以參考下
    2022-08-08
  • FireFox中textNode分片的問題

    FireFox中textNode分片的問題

    FireFox中textNode分片的問題...
    2007-04-04
  • 微信小程序?qū)崿F(xiàn)收縮式菜單

    微信小程序?qū)崿F(xiàn)收縮式菜單

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)收縮式菜單,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • JavaScript實現(xiàn)有限狀態(tài)機的示例代碼

    JavaScript實現(xiàn)有限狀態(tài)機的示例代碼

    有限狀態(tài)機(Finite?State?Machine,?FSM)是一種數(shù)學模型,用于描述系統(tǒng)在不同狀態(tài)下的行為,本文給大家介紹JavaScript實現(xiàn)有限狀態(tài)機的示例代碼,感興趣的朋友一起看看吧
    2024-12-12
  • JavaScript中文件流的處理場景及方法

    JavaScript中文件流的處理場景及方法

    作為一名前端開發(fā),我們平時也少不了對文件流數(shù)據(jù)進行處理,今天簡單整理一下日常開發(fā)中比較常見的一些處理文件流的場景及處理方法,希望可以幫助到大家
    2023-09-09

最新評論

德保县| 普宁市| 扎兰屯市| 灵丘县| 弋阳县| 南江县| 南岸区| 紫云| 灵石县| 长白| 玛沁县| 微山县| 来安县| 平舆县| 承德市| 城市| 昭平县| 定襄县| 长寿区| 明水县| 肇庆市| 那曲县| 图片| 梁山县| 平原县| 元谋县| 手游| 德兴市| 东乡族自治县| 涟源市| 平昌县| 张家川| 台东县| 会昌县| 鹤岗市| 德安县| 东港市| 孟连| 临汾市| 陇西县| 靖州|