Movatterモバイル変換


[0]ホーム

URL:


  1. Tecnologia Web para desenvolvedores
  2. JavaScript
  3. Referência JavaScript
  4. JavaScript error reference
  5. SyntaxError: as declarações da cabeça do laço for-in podem não ter inicializadores

Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.

View in EnglishAlways switch to English

SyntaxError: as declarações da cabeça do laço for-in podem não ter inicializadores

O JavaScript emmodo estrito-somente exceção"as declarações for-in loop head podem não ter inicializadores"isso ocorre quando a cabeça de umfor...in contémuma expressão inicializadora, tal comofor (var i = 0 in obj). Isto não épermitido em laços for-in em modo estrito. Além disso, declarações léxicas com inicializadores comofor (const i = 0 in obj) também não são permitidas fora do modo estrito.

Mensagem

SyntaxError: for-in loop variable declaration may not have an initializer. (V8-based)SyntaxError: for-in loop head declarations may not have initializers (Firefox)SyntaxError: a lexical declaration in the head of a for-in loop can't have an initializer (Firefox)SyntaxError: Cannot assign to the loop variable inside a for-in loop header. (Safari)

Tipo de erro

SyntaxError.

O que ocorreu errado?

A cabeça de um laçofor...in contém uma expressão inicializadora.Ou seja, uma variável é declarada e atribuída um valorfor (var i = 0 in obj).No modo não estrito, esta declaração de cabeça é silenciosamente ignorada e comporta-se comofor (var i in obj).Nomodo estrito, contudo, é lançado umSyntaxError. Além disso, declarações léxicas com inicializadores comofor (const i = 0 in obj) também não são permitidas fora do modo estrito, e produzirão sempre umSyntaxError.

Exemplos

Esse exemplo lança umSyntaxError:

js
const obj = { a: 1, b: 2, c: 3 };for (const i = 0 in obj) {  console.log(obj[i]);}// SyntaxError: for-in loop head declarations may not have initializers

Laço for-in válido

Pode remover o inicializador (i = 0) na cabeça do laço de entrada.

js
const obj = { a: 1, b: 2, c: 3 };for (const i in obj) {  console.log(obj[i]);}

Iteração de array

O laço for...innão deve ser usado para iteração de Array.Pretendia utilizar um laçoforem vez de um laçofor-in para iterar umArray? Olaçofor permite também definir um inicializador então:

js
const arr = ["a", "b", "c"];for (let i = 2; i < arr.length; i++) {  console.log(arr[i]);}// "c"

Veja também

  • for...in
  • for...of– also disallows an initializer in both strict and non-strict mode.
  • for –preferred for array iteration, allows to define an initializer.

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp