非常教程

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如果指定的值是nullundefinedfor...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相关

1.Error
2.error.message
3.error.name
4.Error.prototype
5.error.toString
6.Errors
7.Errors: Already has pragma
8.Errors: Array sort argument
9.Errors: Bad octal
10.Errors: Bad radix
11.Errors: Bad regexp flag
12.Errors: Bad return or yield
13.Errors: Called on incompatible type
14.Errors: Cant access lexical declaration before init
15.Errors: Cant define property object not extensible
16.Errors: Cant delete
17.Errors: Cant redefine property
18.Errors: Cyclic object value
19.Errors: Dead object
20.Errors: Delete in strict mode
21.Errors: Deprecated caller or arguments usage
22.Errors: Deprecated expression closures
23.Errors: Deprecated octal
24.Errors: Deprecated source map pragma
25.Errors: Deprecated String generics
26.Errors: Deprecated toLocaleFormat
27.Errors: Equal as assign
28.Errors: Getter only
29.Errors: Identifier after number
30.Errors: Illegal character
31.Errors: in operator no object
32.Errors: Invalid array length
33.Errors: Invalid assignment left-hand side
34.Errors: Invalid const assignment
35.Errors: Invalid date
36.Errors: Invalid for-in initializer
37.Errors: Invalid for-of initializer
38.Errors: JSON bad parse
39.Errors: Malformed formal parameter
40.Errors: Malformed URI
41.Errors: Missing bracket after list
42.Errors: Missing colon after property id
43.Errors: Missing curly after function body
44.Errors: Missing curly after property list
45.Errors: Missing formal parameter
46.Errors: Missing initializer in const
47.Errors: Missing name after dot operator
48.Errors: Missing parenthesis after argument list
49.Errors: Missing parenthesis after condition
50.Errors: Missing semicolon before statement
51.Errors: More arguments needed
52.Errors: Negative repetition count
53.Errors: No non-null object
54.Errors: No properties
55.Errors: No variable name
56.Errors: Non configurable array element
57.Errors: Not a codepoint
58.Errors: Not a constructor
59.Errors: Not a function
60.Errors: Not defined
61.Errors: Precision range
62.Errors: Property access denied
63.Errors: Read-only
64.Errors: Redeclared parameter
65.Errors: Reserved identifier
66.Errors: Resulting string too large
67.Errors: Stmt after return
68.Errors: Strict Non Simple Params
69.Errors: Too much recursion
70.Errors: Typed array invalid arguments
71.Errors: Undeclared var
72.Errors: Undefined prop
73.Errors: Unexpected token
74.Errors: Unexpected type
75.Errors: Unnamed function statement
76.Errors: Unterminated string literal
77.Errors: Var hides argument
78.EvalError
79.EvalError.prototype
80.RangeError
81.RangeError.prototype
82.ReferenceError
83.ReferenceError.prototype
84.SyntaxError
85.SyntaxError.prototype
86.TypeError
87.TypeError.prototype
88.URIError
89.URIError.prototype
JavaScript

JavaScript 是一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的解释型语言。它已经由ECMA(欧洲电脑制造商协会)通过 ECMAScript 实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器( Chrome、IE、FireFox、Safari、Opera )支持。JavaScript 是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持 I/O,比如网络