JavaScript 中的 in 關鍵字

在 JavaScript 中,我經常會使用 for(key in ..) 語句來遍歷對象的 key ,這是一種很常用的方式.
這里需要留意, 其實 for(.. in ..) 語句也可以用來遍歷數組,其中的 key 就是數組的 index (索引值,0開始) .
除了在 for(.. in ..) 語句中使用, in 也可以作為一個單獨的關鍵字使用,用來判斷某個屬性或者元素是否存在與數組或者對象.一般會用在判斷語句中,下面進行說明


數組

var pig = ['head', 'hand', 'leg'];
console.log('head' in pig); // false
console.log('0' in pig); // true
console.log(4 in pig); // false

通過 in操作判斷數組是否存在某個索引,逐個分析:

  1. 判斷 head 字符串是否為 pig的索引,很明顯,索引應該是數字,所以 false
  2. 判斷 pig 是否有索引為字符串 '0',可以看到最后判斷結果為 true, 這是因為執行 in 關鍵字判斷時, JS引擎進行了隱式轉換
  3. 判斷數字 4 是否為 pig 數組的索引,結果 false

對象

var pig = {head: 'head', hand: 'head', leg: 'leg'};
console.log(head in pig); // false
console.log('head' in pig); // true

通過 in 操作判斷對象是否有某個鍵名,逐個分析:

  1. 判斷變量 head 是否為 pig 的鍵名, 這里是一個未聲明未賦值的變量,當然不會是 pig 的鍵名,返回 false
  2. 判斷字符串 head 是否為 pig 的鍵名,返回 true.
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 一、基本數據類型 注釋 單行注釋:// 區域注釋:/* */ 文檔注釋:/** */ 數值 對于byte類型而言...
    龍貓小爺閱讀 4,288評論 0 16
  • 有期限就能放手一搏。
    星如雨下閱讀 202評論 3 2
  • 第十七章 內容簡介及目錄 年后,公司里一片新氣象。區域設計部總經理因為個人原因離開公司,急需人頂替。 總部高層也有...
    林秋千閱讀 758評論 0 3
  • 容器的同步控制與只讀設置 一、同步控制:多線程并發訪問集合的線程安全常用的容器ArrayList、HashSet、...
    _hello__world_閱讀 422評論 0 0
  • 自 吳念真 阿照跟她的爸爸一點都不親,就連“爸爸”似乎也沒叫過幾次。 這個爸爸其實是她的繼父。媽媽在她四歲的時候離...
    在下京墨閱讀 181評論 0 0