blob: a51d080828b285b1d3cdc0caa7ba7e8d122524cb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
---
title: 'ReferenceError: Atribuição à variável não declarada "x"'
slug: Web/JavaScript/Reference/Errors/Undeclared_var
translation_of: Web/JavaScript/Reference/Errors/Undeclared_var
---
<div>{{jsSidebar("Errors")}}</div>
<h2 id="Message">Message</h2>
<pre class="syntaxbox">ReferenceError: Atribuição à variável não declarada "x"(Firefox)
ReferenceError: "x" não está definido (Chrome)
ReferenceError: Variável indefinida em <em>strict mode</em> (Edge)
</pre>
<h2 id="Tipo_de_erro">Tipo de erro</h2>
<p>{{jsxref("ReferenceError")}} aviso em <em><a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode">strict mode</a></em> somente.</p>
<h2 id="O_que_deu_errado">O que deu errado?</h2>
<p>Um valor foi atribuído a uma variável não declarada. Em outras palavras, houve uma atribuição sem a palavra-chave var. Existem algumas diferenças entre as variáveis declaradas e não declaradas, o que pode levar a resultados inesperados e é por isso que o JavaScript apresenta um erro no modo estrito.</p>
<p>Três coisas a observar sobre as variáveis declaradas e não declaradas:</p>
<ul>
<li>Variáveis declaradas são limitadas no contexto de execução em que são declarados. Variáveis não declaradas são sempre globais.</li>
<li>Variáveis declaradas são criados antes de qualquer código ser executado. Variáveis não declaradas não existem até que o código atribuido for executado.</li>
<li>Variáveis declaradas são uma propriedade não-configurável de seu contexto de execução (função ou global). Variáveis não declaradas são configuráveis (por exemplo, pode ser excluído).</li>
</ul>
<p>Para mais exemplos, veja a página de referência <code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/var">var</a></code>.</p>
<p>Erros sobre atribuições de variáveis não declaradas ocorrem apenas em <a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode">código de modo estrito</a>. Em código não-estrito, eles são silenciosamente ignorados.</p>
<h2 id="Examplos">Examplos</h2>
<h3 id="Casos_inválidos">Casos inválidos</h3>
<p>neste caso, a variavel "bar" é uma variavel não declarada.</p>
<pre class="brush: js example-bad">function foo() {
"use strict";
bar = true;
}
foo(); // ReferenceError: assignment to undeclared variable bar
</pre>
<h3 id="Casos_válidos">Casos válidos</h3>
<p>Para fazer uma variável declarada "bar", você pode adicionar a palavra-chave <a href="/en-US/docs/Web/JavaScript/Reference/Statements/var">var</a> na frente dele.</p>
<pre class="brush: js example-good">function foo() {
"use strict";
var bar = true;
}
foo();</pre>
<h2 id="Veja_também">Veja também</h2>
<ul>
<li><em><a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode">Strict mode</a></em></li>
</ul>
|