- JavaScript 教程
- JavaScript 教程
- Javascript - 概述
- Javascript - 功能
- 在浏览器中启用 JavaScript
- JavaScript - 放置在 HTML 文件中
- 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 - Nullish 合并运算符
- JavaScript - Delete 运算符
- JavaScript - 逗号运算符
- JavaScript - 分组运算符
- JavaScript - Yield 运算符
- JavaScript - Spread 运算符
- 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 - 函数 call() 方法
- JavaScript - 函数 apply() 方法
- JavaScript - 函数 bind() 方法
- JavaScript - 闭包
- JavaScript - 变量范围
- JavaScript - 全局变量
- JavaScript - 智能函数参数
- JavaScript 对象
- JavaScript - Number 对象
- JavaScript - 布尔对象
- JavaScript - String 对象
- JavaScript - Array 对象
- JavaScript - 日期对象
- JavaScript - DataView 对象
- JavaScript - 处理程序
- JavaScript - math 对象
- JavaScript - 正则表达式
- JavaScript - Symbol 对象
- JavaScript - Set(集)对象
- JavaScript - WeakSet 对象
- JavaScript - Maps (地图) 对象
- JavaScript - WeakMap 对象
- JavaScript - Iterables 对象
- JavaScript - Reflect 对象
- JavaScript - TypedArray 对象
- JavaScript - 模板文本
- JavaScript - tagged 模板
- 面向对象的 JavaScript
- JavaScript - 对象概述
- JavaScript - 类(Classes)
- JavaScript - 对象属性
- JavaScript - 对象方法
- JavaScript - Static(静态)方法
- JavaScript - display(显示)对象
- JavaScript - 对象访问器
- JavaScript - 对象构造函数
- JavaScript - 原生原型
- JavaScript - ES5 对象方法
- JavaScript - Encapsulation(封装)
- JavaScript - Inheritance(继承)
- JavaScript - Abstraction(抽象)
- JavaScript - Polymorphism(多态性)
- JavaScript - 解构赋值
- JavaScript - 对象解构
- JavaScript - 数组解构
- JavaScript - 嵌套解构
- JavaScript - 可选链接
- JavaScript - 全局对象
- JavaScript - Mixin
- JavaScript - Proxies(代理)
- JavaScript 版本
- JavaScript - 历史
- JavaScript - 版本
- JavaScript - ES5
- JavaScript cookies
- JavaScript - Cookies
- 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( 历史 API)
- JavaScript - Storage API(存储 API)
- JavaScript - Forms API(表单 API)
- JavaScript - Worker API
- JavaScript - Fetch API (获取 API)
- JavaScript - Geolocation API (地理位置 API)
- JavaScript 事件
- JavaScript - Events (事件简介)
- JavaScript - DOM 事件
- JavaScript - addEventListener()
- JavaScript - 鼠标事件
- JavaScript - 键盘事件
- JavaScript - 表单事件
- JavaScript - 窗口/文档事件
- 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 - 文档对象模型或 DOM
- JavaScript - DOM 方法
- JavaScript - DOM 文档
- JavaScript - DOM 元素
- JavaScript - DOM 表单
- JavaScript - 更改 HTML
- JavaScript - 更改 CSS
- JavaScript - DOM 动画
- JavaScript - DOM 导航
- JavaScript - DOM 集合
- JavaScript - DOM 节点列表
- JavaScript 杂项
- JavaScript - Ajax
- JavaScript - 异步迭代
- JavaScript - Atomics 对象 (原子对象)
- JavaScript - Rest 参数
- JavaScript - 页面重定向
- JavaScript - 对话框
- JavaScript - 页面打印
- JavaScript - 表单验证
- JavaScript - 动画
- JavaScript - 多媒体
- JavaScript - Image Map(图像映射)
- JavaScript - 浏览器兼容性
- JavaScript - JSON
- JavaScript - 多行字符串
- JavaScript - 日期格式
- JavaScript - 获取日期方法
- JavaScript - 设置日期方法
- JavaScript - 模块
- JavaScript - 动态导入
- JavaScript - BigInt 数据类型
- JavaScript - Blob
- JavaScript - Unicode
- JavaScript - 浅层复制
- JavaScript - 调用堆栈
- JavaScript - 引用类型
- JavaScript - IndexedDB
- JavaScript - 点击劫持攻击
- JavaScript - Currying (局部套用)
- JavaScript - 图形
- JavaScript - Canvas
- JavaScript - Debouncing (防抖)
- JavaScript - 性能
- JavaScript - 样式指南
- JavaScript - 内置函数
JavaScript - For...in 循环
for...in 循环
for...in 循环用于遍历对象的属性。JavaScript for...in 循环是 for 循环的变体。for 循环不能用于遍历对象属性。所以,引入 for...in 循环来遍历所有对象属性。
由于我们还没有讨论 Objects,因此您可能对这个循环感到不舒服。但是一旦你了解了对象在 JavaScript 中的行为方式,你就会发现这个循环非常有用。
for...in 循环也可用于遍历数组的元素。但是,不建议这样做,因为这比使用 for ...of 循环。
语法
for...in 循环如下 -
for (variableName in object) {
statement or block to execute
}
参数
- variableName - 它是对象的属性名称(键)。
- in − 它是 JavaScript 中的 'in' 运算符。
- object − 它是要遍历的对象。
在每次迭代中,将 object 中的一个属性分配给 variableName,并且此循环将继续,直到 object 的所有属性都用完。
例子
请尝试以下示例来实现 'for-in' 循环。
示例:迭代对象属性
在下面的示例中,car 对象包含各种属性。我们使用了 for...in 循环遍历对象的每个键。
在输出中,我们可以看到它打印了 key 及其值。我们使用 '[]' (member of) 运算符从对象访问键的值。
<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>
输出
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>
输出
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>
输出
示例:迭代浏览器的 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>
输出
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!