<strike id="3tkic"><sup id="3tkic"></sup></strike>

  1. <ul id="3tkic"></ul>
      <b id="3tkic"><legend id="3tkic"></legend></b>
      <b id="3tkic"><meter id="3tkic"></meter></b>

    • <strike id="3tkic"></strike>

      <blockquote id="3tkic"></blockquote>

    • 亚洲AV无码国产在丝袜线观看_亚洲第一页A∨在线_亚洲国产人成在线观看69网站_无码日韩人妻AV一区免费l

      JS 中對(duì)變量類型的判斷

      2020/11/25 18:01:51   閱讀:5670    發(fā)布者:5670

      1. 一般簡(jiǎn)單的使用 typeof 或 instanceof 檢測(cè)(這兩種檢測(cè)的不完全準(zhǔn)確)

               2. 完全準(zhǔn)確的使用 原生js中的 Object.prototype.toString.call  或 jquery中的 $.type 檢測(cè)

      在 JS 中,有 5 種基本數(shù)據(jù)類型和 1 種復(fù)雜數(shù)據(jù)類型,基本數(shù)據(jù)類型有:Undefined, Null, Boolean, Number和String;復(fù)雜數(shù)據(jù)類型是Object,Object中還細(xì)分了很多具體的類型,比如:Array, Function, Date等等。今天我們就來(lái)探討一下,使用什么方法判斷一個(gè)出一個(gè)變量的類型。

      變量常用的類型:

      var num  = 123;

      var str  = 'abcdef';

      var bool = true;

      var arr  = [1, 2, 3, 4];

      var json = {name:'wenzi', age:25};

      var func = function(){ console.log('this is function'); }

      var und  = undefined;

      var nul  = null;

      var date = new Date();

      var reg  = /^[a-zA-Z]{5,20}$/;

      var error= new Error();


      1. 使用typeof檢測(cè)

      我們平時(shí)用的最多的就是用typeof檢測(cè)變量類型了。這次,我們也使用typeof檢測(cè)變量的類型:
      console.log(

          typeof num,

          typeof str,

          typeof bool,

          typeof arr,

          typeof json,

          typeof func,

          typeof und,

          typeof nul,

          typeof date,

          typeof reg,

          typeof error

      );

      // number string boolean object object function undefined object object object object


      從輸出的結(jié)果來(lái)看,arr, json, nul, date, reg, error 全部被檢測(cè)為object類型,其他的變量能夠被正確檢測(cè)出來(lái)。當(dāng)需要變量是否是number, string, boolean, function, undefined, json類型時(shí),可以使用typeof進(jìn)行判斷。其他變量是判斷不出類型的,包括null。

       

      還有,typeof是區(qū)分不出array和json類型的。因?yàn)槭褂胻ypeof這個(gè)變量時(shí),array和json類型輸出的都是object。


      2. 使用instanceof檢測(cè)

       

      在 JavaScript 中,判斷一個(gè)變量的類型嘗嘗會(huì)用 typeof 運(yùn)算符,在使用 typeof 運(yùn)算符時(shí)采用引用類型存儲(chǔ)值會(huì)出現(xiàn)一個(gè)問(wèn)題,無(wú)論引用的是什么類型的對(duì)象,它都返回 “object”。ECMAScript 引入了另一個(gè) Java 運(yùn)算符 instanceof 來(lái)解決這個(gè)問(wèn)題。instanceof 運(yùn)算符與 typeof 運(yùn)算符相似,用于識(shí)別正在處理的對(duì)象的類型。與 typeof 方法不同的是,instanceof 方法要求開發(fā)者明確地確認(rèn)對(duì)象為某特定類型。例如:

      function Person(){
      }

      var Tom = new Person();

      console.log(Tom instanceof Person); // true

      instanceof還能檢測(cè)出多層繼承的關(guān)系。

      3. 使用constructor檢測(cè)

      在使用instanceof檢測(cè)變量類型時(shí),我們是檢測(cè)不到number, 'string', bool的類型的。因此,我們需要換一種方式來(lái)解決這個(gè)問(wèn)題。

      constructor本來(lái)是原型對(duì)象上的屬性,指向構(gòu)造函數(shù)。但是根據(jù)實(shí)例對(duì)象尋找屬性的順序,若實(shí)例對(duì)象上沒有實(shí)例屬性或方法時(shí),就去原型鏈上尋找,因此,實(shí)例對(duì)象也是能使用constructor屬性的。

       
      亚洲AV无码国产在丝袜线观看_亚洲第一页A∨在线_亚洲国产人成在线观看69网站_无码日韩人妻AV一区免费l
      <strike id="3tkic"><sup id="3tkic"></sup></strike>

      1. <ul id="3tkic"></ul>
          <b id="3tkic"><legend id="3tkic"></legend></b>
          <b id="3tkic"><meter id="3tkic"></meter></b>

        • <strike id="3tkic"></strike>

          <blockquote id="3tkic"></blockquote>

        • 商水县| 兴业县| 沙湾县| 分宜县| 大庆市| 于田县| 日照市| 东港市| 远安县| 稻城县| 唐河县| 肥乡县| 定远县| 西青区| 祁东县| 繁昌县| 武汉市| 明水县| 汉沽区| 洛隆县| 奉新县| 白银市| 九龙城区| 吉木乃县| 贞丰县| 屯昌县| 宁河县| 苏尼特右旗| 来宾市| 土默特左旗| 深圳市| 安龙县| 揭阳市| 会理县| 苏尼特右旗| 宜川县| 微山县| 郴州市| 石门县| 涡阳县| 清流县|