《JS權威指南學習總結--4.9.3in和instanceof運算子》

來源:互聯網
上載者:User

標籤:

內容要點:

     一.in運算子

           in運算子希望它的左運算元是一個字串或可以轉換為字串,希望它的右運算元是一個對象。如果右側的對象擁有一個名為左運算元數值的屬性名稱,那麼運算式返回true。

           例如:

           var point=["x":1,"y":2];

           var a="x" in point; //true:對象裡有一個名為"x"的屬性

           var b=z in point;     //false:對象裡不存在名為"z"的屬性

           "toString" in point  //true:對象繼承了toString()方法

           var data=[7,8,9]; 

           "0" in data //true:數組包含元素"0"

           1 in data //true:數群組轉換為字串

           3 in data  //false:沒有索引為3的元素

    二.instanceof運算子

           instanceof運算子希望左運算元是一個對象,右運算元標識對象的類。如果左側的對象是右側類的執行個體,則運算式返回true,否則返回false。

           例如:

           var d=new Date();     //通過Date()建構函式來建立一個新對象。

          d instanceof Date;      //計算結果為true,d是由Date()建立的

          d instanceof Object;    //計算結果為true,所有的對象都是Object的執行個體。

          d instanceof Number;  //計算結果為false,d不是一個Number對象

          var a=[1,2,3];       //通過數組直接量的寫法建立一個數組。

         a instanceof Array; //計算結果為true,a是一個數組。

         a instanceof Object; //計算結果為true,所有的數組都是對象。

         a instanceof RegExp ; //計算結果為false,數組不是Regex。

        需要注意的是:所有的對象都是Object的執行個體。當通過instanceof判斷一個對象是否是一個類的執行個體的時候,這個判斷也會包含對"父類" 檢測。

        如果右運算元不是函數,則拋出一個類型錯誤異常。

         

         

 

《JS權威指南學習總結--4.9.3in和instanceof運算子》

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.