blob: 3a981a006dda1276ab6166ad22eff55a0d03ecf7 (
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
63
64
65
66
67
68
|
---
title: 'ReferenceError: assignment to undeclared variable "x"'
slug: Web/JavaScript/Reference/Errors/Undeclared_var
tags:
- Errors
- JavaScript
- ReferenceError
- Strict Mode
translation_of: Web/JavaScript/Reference/Errors/Undeclared_var
original_slug: Web/JavaScript/Reference/Fehler/Undeclared_var
---
<div>{{jsSidebar("Errors")}}</div>
<h2 id="Fehlermeldung">Fehlermeldung</h2>
<pre class="syntaxbox">ReferenceError: assignment to undeclared variable "x" (Firefox)
ReferenceError: "x" is not defined (Chrome)
ReferenceError: Variable undefined in strict mode (Edge)
</pre>
<h2 id="Fehlertyp">Fehlertyp</h2>
<p>{{jsxref("ReferenceError")}} Warnung nur im <a href="/de/docs/Web/JavaScript/Reference/Strict_mode">Strict mode</a>.</p>
<h2 id="Was_ist_falsch_gelaufen">Was ist falsch gelaufen?</h2>
<p>Ein Wert wurde zu einer nicht deklarierten Variablen hinzugefügt. Oder mit anderen Worten, es gibt eine Zuweisung ohne das Schlüsselwort var. Es gibt einige Unterschiede zwischen deklarierten und nicht deklarierten Variablen, die zu unerwarteten Ergebnissen führen kann und weshalb der Fehler im Strict Mode erscheint.</p>
<p>Drei Dinge über deklarierte und nicht deklarierte Variablen:</p>
<ul>
<li>Deklarierte Variablen gehören zu dem Ausführungskontext, in dem sie deklariert werden. Nicht deklarierte Variablen sind immer global.</li>
<li>Deklarierte Variablen werden erstellt bevor Code ausgeführt wird. Nicht deklarierte Variablen existieren erst, wenn der zugehörige Code ausgeführt wird.</li>
<li>Deklarierte Variablen sind eine nicht konfigurierbare Eigenschaft des Ausführungskontextes (Funktion oder global). Nicht deklarierte Variablen sind konfigurierbar (sie können z. B. gelöscht werden).</li>
</ul>
<p>Mehr Details und Beispiele findet man auf der <code><a href="/de/docs/Web/JavaScript/Reference/Statements/var">var</a></code> Referenzseite.</p>
<p>Fehler mit nicht deklarierten Variablenzuweisungen gibt es nur im <a href="/de/docs/Web/JavaScript/Reference/Strict_mode">Strict Mode Code</a>. Außerhalb davon wird die Warnung einfach Ignoriert.</p>
<h2 id="Beispiele">Beispiele</h2>
<h3 id="Falsche_Fälle">Falsche Fälle</h3>
<p>In diesem Fall ist die "bar" eine nicht deklarierte Variable.</p>
<pre class="brush: js example-bad">function foo() {
'use strict';
bar = true;
}
foo(); // ReferenceError: assignment to undeclared variable bar
</pre>
<h3 id="Richtige_Fälle">Richtige Fälle</h3>
<p>Um "bar" zu einer deklarierten Variable zu machen, kann das Schlüsselwort <code><a href="/de/docs/Web/JavaScript/Reference/Statements/var">var</a></code> eingesetzt werden.</p>
<pre class="brush: js example-good">function foo() {
'use strict';
var bar = true;
}
foo();</pre>
<h2 id="Siehe_auch">Siehe auch</h2>
<ul>
<li><a href="/de/docs/Web/JavaScript/Reference/Strict_mode">Strict Mode</a></li>
</ul>
|