
- Javascript 基礎教程
- Javascript - 首頁
- JavaScript - 路線圖
- JavaScript - 概述
- JavaScript - 特性
- JavaScript - 啟用
- JavaScript - 程式碼放置
- JavaScript - 語法
- JavaScript - Hello World
- JavaScript - Console.log()
- JavaScript - 註釋
- JavaScript - 變數
- JavaScript - let 語句
- JavaScript - 常量
- JavaScript - 資料型別
- JavaScript - 型別轉換
- JavaScript - 嚴格模式
- JavaScript - 保留關鍵字
- JavaScript 運算子
- JavaScript - 運算子
- JavaScript - 算術運算子
- JavaScript - 比較運算子
- JavaScript - 邏輯運算子
- JavaScript - 位運算子
- JavaScript - 賦值運算子
- JavaScript - 條件運算子
- JavaScript - typeof 運算子
- JavaScript - 空值合併運算子
- JavaScript - 刪除運算子
- JavaScript - 逗號運算子
- JavaScript - 分組運算子
- JavaScript - Yield 運算子
- JavaScript - 展開運算子
- JavaScript - 冪運算子
- JavaScript - 運算子優先順序
- JavaScript 控制流
- JavaScript - If...Else
- JavaScript - While 迴圈
- JavaScript - For 迴圈
- JavaScript - For...in
- Javascript - For...of
- JavaScript - 迴圈控制
- JavaScript - Break 語句
- JavaScript - Continue 語句
- JavaScript - Switch Case
- JavaScript - 使用者定義迭代器
- JavaScript 函式
- JavaScript - 函式
- JavaScript - 函式表示式
- JavaScript - 函式引數
- JavaScript - 預設引數
- JavaScript - Function() 建構函式
- JavaScript - 函式提升
- JavaScript - 自執行函式
- JavaScript - 箭頭函式
- JavaScript - 函式呼叫
- JavaScript - Function call()
- JavaScript - Function apply()
- JavaScript - Function bind()
- JavaScript - 閉包
- JavaScript - 變數作用域
- JavaScript - 全域性變數
- JavaScript - 智慧函式引數
- JavaScript 物件
- JavaScript - Number
- JavaScript - Boolean
- JavaScript - Strings
- JavaScript - Arrays
- JavaScript - Date
- JavaScript - DataView
- JavaScript - Handler
- JavaScript - Math
- JavaScript - RegExp
- JavaScript - Symbol
- JavaScript - Sets
- JavaScript - WeakSet
- JavaScript - Maps
- JavaScript - WeakMap
- JavaScript - 可迭代物件
- JavaScript - Reflect
- JavaScript - TypedArray
- JavaScript - 模板字面量
- JavaScript - 標記模板
- 面向物件的 JavaScript
- JavaScript - 物件
- JavaScript - 類
- JavaScript - 物件屬性
- JavaScript - 物件方法
- JavaScript - 靜態方法
- JavaScript - 顯示物件
- JavaScript - 物件訪問器
- JavaScript - 物件建構函式
- JavaScript - 原生原型
- JavaScript - ES5 物件方法
- JavaScript - 封裝
- JavaScript - 繼承
- JavaScript - 抽象
- JavaScript - 多型
- JavaScript - 解構賦值
- JavaScript - 物件解構
- JavaScript - 陣列解構
- JavaScript - 巢狀解構
- JavaScript - 可選鏈
- JavaScript - 全域性物件
- JavaScript - Mixins
- JavaScript - 代理
- JavaScript 版本
- JavaScript - 歷史
- JavaScript - 版本
- JavaScript - ES5
- JavaScript - ES6
- ECMAScript 2016
- ECMAScript 2017
- ECMAScript 2018
- ECMAScript 2019
- ECMAScript 2020
- ECMAScript 2021
- ECMAScript 2022
- JavaScript 非同步
- JavaScript - 非同步
- JavaScript - 回撥函式
- JavaScript - Promise
- JavaScript - Async/Await
- JavaScript - 微任務
- JavaScript - Promise 化
- JavaScript - Promise 鏈式呼叫
- JavaScript - 定時事件
- JavaScript - setTimeout()
- JavaScript - setInterval()
- JavaScript Cookie
- JavaScript - Cookie
- JavaScript - Cookie 屬性
- JavaScript - 刪除 Cookie
- JavaScript 瀏覽器 BOM
- JavaScript - 瀏覽器物件模型
- JavaScript - Window 物件
- JavaScript - Document 物件
- JavaScript - Screen 物件
- JavaScript - History 物件
- JavaScript - Navigator 物件
- JavaScript - Location 物件
- JavaScript - Console 物件
- JavaScript Web API
- JavaScript - Web API
- JavaScript - History API
- JavaScript - Storage API
- JavaScript - Forms API
- JavaScript - Worker API
- JavaScript - Fetch API
- JavaScript - Geolocation API
- JavaScript 事件
- JavaScript - 事件
- JavaScript - DOM 事件
- JavaScript - addEventListener()
- JavaScript - 滑鼠事件
- JavaScript - 鍵盤事件
- JavaScript - 表單事件
- JavaScript - Window/Document 事件
- JavaScript - 事件委託
- JavaScript - 事件冒泡
- JavaScript - 事件捕獲
- JavaScript - 自定義事件
- JavaScript 錯誤處理
- JavaScript - 錯誤處理
- JavaScript - try...catch
- JavaScript - 除錯
- JavaScript - 自定義錯誤
- JavaScript - 擴充套件錯誤
- JavaScript 重要關鍵字
- JavaScript - this 關鍵字
- JavaScript - void 關鍵字
- JavaScript - new 關鍵字
- JavaScript - var 關鍵字
- JavaScript HTML DOM
- JavaScript - HTML DOM
- JavaScript - DOM 方法和屬性
- JavaScript - DOM Document
- JavaScript - DOM 元素
- JavaScript - DOM 屬性 (Attr)
- JavaScript - DOM 表單
- JavaScript - 修改 HTML
- JavaScript - 修改 CSS
- JavaScript - DOM 動畫
- JavaScript - DOM 導航
- JavaScript - DOM 集合
- JavaScript - DOM NodeList
- JavaScript - DOM DOMTokenList
- JavaScript 其他
- JavaScript - Ajax
- JavaScript - 非同步迭代
- JavaScript - Atomics 物件
- JavaScript - Rest 引數
- JavaScript - 頁面重定向
- JavaScript - 對話方塊
- JavaScript - 頁面列印
- JavaScript - 驗證
- JavaScript - 動畫
- JavaScript - 多媒體
- JavaScript - 影像地圖
- JavaScript - 瀏覽器
- JavaScript - JSON
- JavaScript - 多行字串
- JavaScript - 日期格式
- JavaScript - 獲取日期方法
- JavaScript - 設定日期方法
- JavaScript - 模組
- JavaScript - 動態匯入
- JavaScript - BigInt
- JavaScript - Blob
- JavaScript - Unicode
- JavaScript - 淺複製
- JavaScript - 呼叫棧
- JavaScript - 引用型別
- JavaScript - IndexedDB
- JavaScript - Clickjacking 攻擊
- JavaScript - 柯里化
- JavaScript - 圖形
- JavaScript - Canvas
- JavaScript - 防抖
- JavaScript - 效能
- JavaScript - 樣式指南
JavaScript - for...in 迴圈
for...in 迴圈
JavaScript 中的 for...in 迴圈用於遍歷物件的屬性。JavaScript for...in 迴圈是 for 迴圈的一個變體。for 迴圈不能用於遍歷物件屬性。因此,引入了 for...in 迴圈來遍歷所有物件屬性。
由於我們還沒有討論物件,您可能對這個迴圈不太熟悉。但是,一旦您瞭解了物件在 JavaScript 中的行為,您就會發現這個迴圈非常有用。
JavaScript 中的 for...in 迴圈也可用於迭代陣列的元素。但是,不建議這樣做,因為這不如使用 for...of 迴圈有效。
語法
JavaScript 中 for...in 迴圈的語法如下所示:
for (variableName in object) { statement or block to execute }
引數
variableName - 它是物件的屬性名稱(鍵)。
in - 它是 JavaScript 中的“in”運算子。
object - 要遍歷的物件。
在每次迭代中,object 中的一個屬性被賦值給 variableName,並且此迴圈持續到物件的所有屬性都遍歷完為止。
示例
嘗試以下示例以實現“for-in”迴圈。
示例:遍歷物件屬性
在下面的示例中,car 物件包含各種屬性。我們使用 for…in 迴圈遍歷物件的每個鍵。
在輸出中,我們可以看到它列印了鍵及其值。我們使用 '[]'(成員運算子)從物件中訪問鍵的值。
<html> <head> <title> JavaScript - for...in loop </title> </head> <body> <p id = "output"> </p> <script> let output = document.getElementById("output"); let car = { brand: "OD", model: "Q7", color: "Black", } for (key in car) { output.innerHTML += key + " -> " + car[key] + "<br>"; } </script> </body> </html>
輸出
brand -> OD model -> Q7 color -> Black
示例:迭代字串
在 JavaScript 中,字串是一個物件。因此,我們可以使用 for…in 迴圈遍歷字串的每個字元。字元的索引是鍵,字元是值。
程式碼在輸出中列印索引和字元。
<html> <head> <title> JavaScript - for...in loop </title> </head> <body> <p id = "output"> </p> <script> let output = document.getElementById("output"); let str = "Hello"; for (key in str) { output.innerHTML += key + " -> " + str[key] + "<br>"; } </script> </body> </html>
輸出
0 -> H 1 -> e 2 -> l 3 -> l 4 -> o
示例:迭代陣列
在 JavaScript 中,陣列也是一個物件。因此,for…in 迴圈可用於遍歷陣列元素。像字串一樣,索引是鍵,陣列元素是鍵的值。
以下程式碼在輸出中列印陣列索引及其值。
<html> <head> <title> JavaScript - for...in loop </title> </head> <body> <p id = "output"> </p> <script> let output = document.getElementById("output"); let array = ["Hi", "Hello", 900, 23, true, "JavaScript"]; for (key in array) { output.innerHTML += key + " -> " + array[key] + "<br>"; } </script> </body> </html>
輸出
0 -> Hi 1 -> Hello 2 -> 900 3 -> 23 4 -> true 5 -> JavaScript
示例:更新物件的每個屬性的值
在下面的示例中,我們遍歷物件的每個鍵並將其值更新為 null。在輸出中,程式碼列印了值為 null 的物件鍵。
因此,for…in 迴圈也可用於更新物件的所有或特定屬性值。
<html> <head> <title> JavaScript - for...in loop </title> </head> <body> <p id = "output"> </p> <script> let output = document.getElementById("output"); let car = { brand: "OD", model: "Q7", color: "Black", } for (key in car) { car[key] = null; } output.innerHTML += "The updated object is - " + JSON.stringify(car); </script> </body> </html>
輸出
The updated object is - {"brand":null,"model":null,"color":null}
示例:迭代瀏覽器的 Navigator 物件
嘗試以下示例以實現“for-in”迴圈。它列印 Web 瀏覽器的 Navigator 物件。
<html> <body> <div id = "demo"> </div> <script> const output = document.getElementById("demo"); var aProperty; output.innerHTML = "Navigator Object Properties<br> "; for (aProperty in navigator) { output.innerHTML += aProperty; output.innerHTML += "<br>"; } output.innerHTML += "Exiting from the loop!"; </script> </body> </html>
輸出
Navigator Object Properties vendorSub productSub vendor maxTouchPoints userActivation doNotTrack geolocation connection plugins mimeTypes pdfViewerEnabled webkitTemporaryStorage webkitPersistentStorage hardwareConcurrency cookieEnabled appCodeName appName appVersion platform product userAgent language languages onLine webdriver getBattery getGamepads javaEnabled sendBeacon vibrate scheduling bluetooth clipboard credentials keyboard managed mediaDevices storage serviceWorker wakeLock deviceMemory ink hid locks mediaCapabilities mediaSession permissions presentation serial virtualKeyboard usb xr userAgentData canShare share clearAppBadge setAppBadge getInstalledRelatedApps getUserMedia requestMIDIAccess requestMediaKeySystemAccess webkitGetUserMedia registerProtocolHandler unregisterProtocolHandler Exiting from the loop!