91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

js的四種類型檢測方法及根據jquery寫的工具方法是什么

發布時間:2020-11-12 09:59:57 來源:億速云 閱讀:184 作者:小新 欄目:web開發

小編給大家分享一下js的四種類型檢測方法及根據jquery寫的工具方法是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

基本數據類型: String , Boolean , undefined , null , Number , Symbol , BigInt
      引用數據類型: Object , Array , RegExp ......

我們今天講的檢測類型有以下四種以及最后根據jquery寫出來的更為方便的工具方法:

  • typeof  [重點]

  • instanceof

  • constructor

  • Object.prototype.toString.call [重點]

typeof

1 . 基本內容

  • 定義

    : 能夠檢測基本類型的運算符
  • 語法

    : typeof [value]
  • 返回值

    : [“string”、“number”、“boolean”、“undefined”、“object”、“function”、“symbol”、“bigint”]

結果如圖所示 :

js的四種類型檢測方法及根據jquery寫的工具方法是什么

2 . 缺陷與不足

雖然看上面似乎typeof非常好用,但是我們一般都曉得好用的東西總會少不了一定的缺陷,就如人也無法十 全十美

  • 1 . typeof檢測基本類型基本完美,但是引用類型可以說原地爆炸,例如

    數組對象 ,正則對象 ,new出來的數字對象...... 全部返回的是  字符串形式的Object

  • 2 . 如

    NaN / Infinity

    均為 “number”
  • 3 .

    typeof null 為 "object"

結果如圖所示 :

js的四種類型檢測方法及根據jquery寫的工具方法是什么

3.常用場景

let x = {};
if(x != null && typeof x === "object"){
	判斷是否是對象,由于typeof null也是返回object,因此要排除它
}復制代碼

instanceof

1 . 基本內容

  • 定義

    : 用于檢測構造函數的 prototype 屬性是否出現在某個實例對象的原型鏈上。
  • 語法

    : object instanceof constructor
  • 返回值

    : 布爾值

結果如圖所示 :

[注] {}會在這里當成一個代碼塊,因此第一行報錯

js的四種類型檢測方法及根據jquery寫的工具方法是什么

2 . 缺陷與不足

  • 1 . 無法檢測基本類型,返回的都是false ,只能檢測引用類型
  • 2 . 由于instanceof是根據原型來檢測類型的,返回值也是布爾類型,因此無法直觀的看出數據類型
  • 3 . 因為原型可以更改,有時候利用instanceof來判斷不一定十分準確

結果如圖所示 :

js的四種類型檢測方法及根據jquery寫的工具方法是什么

constructor

1 . 基本內容

  • 定義

    : 通過構造器來判斷類型。
  • 語法

    : target.constructor == "類型名字"

結果如圖所示 :

js的四種類型檢測方法及根據jquery寫的工具方法是什么

2 . 缺陷與不足

  • 1 . 原理基本和instanceof一樣,都是根據原型判斷

Object.prototype.toString.call()

1 . 基本內容

  • 定義

    : 返回一個表示該對象的字符串。
  • 語法

    : Object.prototype.toString.call(params)
  • 返回值

    : "[object 類型]"

結果如圖所示 :

js的四種類型檢測方法及根據jquery寫的工具方法是什么

2 . 基本原理

Object.prototype.toString.call()中“[object 類型]”返回的值是由Symbol.toStringTag決定

如圖所示:

js的四種類型檢測方法及根據jquery寫的工具方法是什么

根據jquery寫出的判斷方法

1.代碼實現

var class2type = {};
["Boolean","Number","String","Function","Array","Date","RegExp","Object","Error","Symbol","BigInt","GeneratorFunction"].forEach(item=>{
    class2type["[object "+item+"]"] = item.toLowerCase();
})
function toType(obj){
      if(obj==null){
        return obj+'';
      }
      return typeof obj === "object" || typeof obj === "function" ?
              class2type[toString.call(obj)] || "object" : typeof obj;
}

以上是js的四種類型檢測方法及根據jquery寫的工具方法是什么的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

深圳市| 沾益县| 普宁市| 大庆市| 永德县| 泰州市| 甘泉县| 镇远县| 郑州市| 东辽县| 靖远县| 永济市| 乐业县| 桐庐县| 弥勒县| 龙井市| 馆陶县| 柘荣县| 吴旗县| 舒兰市| 阜南县| 聊城市| 来安县| 襄城县| 永德县| 勐海县| 水城县| 德令哈市| 南皮县| 喀喇| 中超| 日土县| 云南省| 沂南县| 洪洞县| 齐齐哈尔市| 新化县| 宁津县| 河津市| 江津市| 乐平市|