JavaScript参考手册
错误 | Errors
Errors: For-each-in loops are deprecated
信息
Warning: JavaScript 1.6's for-each-in loops are deprecated; consider using ES6 for-of instead
错误类型
Warning
什么地方出了错?
JavaScript 1.6's for each (variable in obj)
statement is deprecated, and will be removed in the near future.
例子
对象迭代
for each...in
已被用来迭代指定的对象值。
弃用的语法
var object = { a: 10, b: 20 };
for each (var x in object) {
console.log(x); // 10
// 20
}
可选的标准语法
您现在可以使用标准for...in
循环遍历指定的对象键,并获取循环内的每个值:
var object = { a: 10, b: 20 };
for (var key in object) {
var x = object[key];
console.log(x); // 10
// 20
}
或者,使用for...of
(ES2015)和Object.values
(ES2017),您可以获取指定对象值的数组,并像这样迭代数组:
var object = { a: 10, b: 20 };
for (var x of Object.values(object)) {
console.log(x); // 10
// 20
}
数组迭代
for each...in
已经被用来遍历指定的数组元素。
弃用的语法
var array = [10, 20, 30];
for each (var x in array) {
console.log(x); // 10
// 20
// 30
}
可选的标准语法
for...of
(ES2015)循环现在也是可以的。
var array = [10, 20, 30];
for (var x of array) {
console.log(x); // 10
// 20
// 30
}
遍历一个可以为null的数组
for each...in
如果指定的值是null
或undefined
,for...of
则不执行任何操作,但会在这些情况下抛出异常。
弃用的语法
function func(array) {
for each (var x in array) {
console.log(x);
}
}
func([10, 20]); // 10
// 20
func(null); // prints nothing
func(undefined); // prints nothing
可选的标准语法
重写for each...in
语句以使值可以null
或者也可以undefined
与之for...of
相同,你需要警惕周围for...of
。
function func(array) {
if (array) {
for (var x of array) {
console.log(x);
}
}
}
func([10, 20]); // 10
// 20
func(null); // prints nothing
func(undefined); // prints nothing
迭代对象的键值对
弃用的语法
有一个不赞成的习惯用法迭代指定的对象的键值对使用for each...in
和不赞成使用的Iterator
对象。
var object = { a: 10, b: 20 };
for each (var [key, value] in Iterator(object)) {
console.log(key, value); // "a", 10
// "b", 20
}
可选的标准语法
您现在可以使用标准for...in
循环遍历指定的对象键,并获取循环内的每个值:
var object = { a: 10, b: 20 };
for (var key in object) {
var value = object[key];
console.log(key, value); // "a", 10
// "b", 20
}
或者,使用for...of
(ES2015)和Object.entries
(ES2017),您可以获取指定对象值的数组,并像这样迭代数组:
var object = { a: 10, b: 20 };
for (var [key, value] of Object.entries(object)) {
console.log(key, value); // "a", 10
// "b", 20
}
错误 | Errors相关
JavaScript 是一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的解释型语言。它已经由ECMA(欧洲电脑制造商协会)通过 ECMAScript 实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器( Chrome、IE、FireFox、Safari、Opera )支持。JavaScript 是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持 I/O,比如网络