aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/javascript/reference/errors/undeclared_var
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:40:17 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:40:17 -0500
commit33058f2b292b3a581333bdfb21b8f671898c5060 (patch)
tree51c3e392513ec574331b2d3f85c394445ea803c6 /files/zh-cn/web/javascript/reference/errors/undeclared_var
parent8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff)
downloadtranslated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.gz
translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.bz2
translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.zip
initial commit
Diffstat (limited to 'files/zh-cn/web/javascript/reference/errors/undeclared_var')
-rw-r--r--files/zh-cn/web/javascript/reference/errors/undeclared_var/index.html68
1 files changed, 68 insertions, 0 deletions
diff --git a/files/zh-cn/web/javascript/reference/errors/undeclared_var/index.html b/files/zh-cn/web/javascript/reference/errors/undeclared_var/index.html
new file mode 100644
index 0000000000..507da98563
--- /dev/null
+++ b/files/zh-cn/web/javascript/reference/errors/undeclared_var/index.html
@@ -0,0 +1,68 @@
+---
+title: 'ReferenceError: assignment to undeclared variable "x"'
+slug: Web/JavaScript/Reference/Errors/Undeclared_var
+tags:
+ - Errors
+ - JavaScript
+ - ReferenceError
+ - 严格模式
+ - 错误
+translation_of: Web/JavaScript/Reference/Errors/Undeclared_var
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="信息">信息</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="错误类型">错误类型</h2>
+
+<p>  仅在<a href="/zh-CN/docs/Web/JavaScript/Reference/Strict_mode">严格模式</a>中出现 {{jsxref("ReferenceError")}} 警告。</p>
+
+<h2 id="发生了什么">发生了什么?</h2>
+
+<p>在代码里赋值了一个未声明的变量。换句话说,有处没有带着<code><a href="/zh-CN/docs/Web/JavaScript/Reference/Statements/var"> var</a></code> 关键字的赋值。<span id="result_box" lang="zh-CN"><span>事实上已声明的和未声明的变量之间有一些差异,这可能会导致意想不到的结果,这就是为什么 JavaScript 在严格模式打印出这种错误。</span></span></p>
+
+<p><span class="short_text" id="result_box" lang="zh-CN"><span>关于已声明和未声明的变量,其有三个注意事项:</span></span></p>
+
+<ul>
+ <li><span class="short_text" id="result_box" lang="zh-CN"><span>已声明的变量被约束在其执行上下文中</span></span><span class="short_text" lang="zh-CN"><span>。</span><span>未声明的变量总是全局的。</span></span></li>
+ <li><span class="short_text" id="result_box" lang="zh-CN"><span>已声明的变量在执行任何代码之前就创建了</span></span><span class="short_text" lang="zh-CN"><span>。未声明的变量则不存在,直到执行相关的代码。</span></span></li>
+ <li><span class="short_text" id="result_box" lang="zh-CN"><span>已声明的变量是其执行上下文(函数或全局)的不可配置属性。</span><span>而未声明的变量是可配置的(例如可以删除)。</span></span></li>
+</ul>
+
+<p>更多信息及例子,请参考 <code><a href="/zh-CN/docs/Web/JavaScript/Reference/Statements/var">var</a></code> 页面。</p>
+
+<p>关于未声明变量的赋值的错误仅在<a href="/zh-CN/docs/Web/JavaScript/Reference/Strict_mode">严格模式</a>里出现。在非严格模式中,这些将被忽略。</p>
+
+<h2 id="示例">示例</h2>
+
+<h3 id="无效的">无效的</h3>
+
+<p>在本例中,"bar" 是未声明的变量。</p>
+
+<pre class="brush: js example-bad">function foo() {
+ "use strict";
+ bar = true;
+}
+foo(); // ReferenceError: assignment to undeclared variable bar
+</pre>
+
+<h3 id="有效的">有效的</h3>
+
+<p>为了使 "bar" 是一个已声明变量,你需要在其前面加一个 var 关键字。</p>
+
+<pre class="brush: js example-good">function foo() {
+ "use strict";
+ var bar = true;
+}
+foo();</pre>
+
+<h2 id="相关">相关</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode">Strict mode</a></li>
+</ul>