Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AutoCorrect files/zh-cn/web/javascript/reference/errors/ #5978

Merged
merged 1 commit into from
May 28, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ <h2 id="错误类型">错误类型</h2>

<p>{{jsxref("TypeError")}}</p>

<h2 id="哪里出错了">哪里出错了?</h2>
<h2 id="哪里出错了">哪里出错了</h2>

<p>{{jsxref("Array.prototype.sort()")}} 的参数预期为 {{jsxref("undefined")}} 或者是一个比较操作数的函数。</p>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ <h2 id="错误类型">错误类型</h2>

<p>仅在 <a href="/zh-CN/docs/Web/JavaScript/Reference/Strict_mode">strict mode</a> 下出现 {{jsxref("SyntaxError")}} 警告。</p>

<h2 id="哪里出错了">哪里出错了?</h2>
<h2 id="哪里出错了">哪里出错了</h2>

<p>十进制字面量可以以零作为开始(<code>0</code>),后面跟着其他十进制数,但是假如前导 0 之后的所有数字都小于 8,那么这个数就会被解析为一个八进制的数。因为 08 和 09 不是这样的,所以 JavaScript 会发出警告。</p>
<p>十进制字面量可以以零作为开始 (<code>0</code>),后面跟着其他十进制数,但是假如前导 0 之后的所有数字都小于 8,那么这个数就会被解析为一个八进制的数。因为 08 和 09 不是这样的,所以 JavaScript 会发出警告。</p>

<p>请注意,不推荐使用八进制字面值和八进制转义序列,并会产生另外的弃用警告。 在 ECMAScript 6 和更高版本里,语法使用前导零后跟小写或大写拉丁字母“O”(0o或0O)。更多信息请查看 <a href="/zh-CN/docs/Web/JavaScript/Reference/Lexical_grammar#Octal">lexical grammar</a>。</p>
<p>请注意,不推荐使用八进制字面值和八进制转义序列,并会产生另外的弃用警告。 在 ECMAScript 6 和更高版本里,语法使用前导零后跟小写或大写拉丁字母“O”(0o 或 0O)。更多信息请查看 <a href="/zh-CN/docs/Web/JavaScript/Reference/Lexical_grammar#Octal">lexical grammar</a>。</p>

<div class="note">
<p><strong>备注:</strong>现在仅 <strong>firefox</strong> 会产生此错误。</p>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ <h2 id="错误类型">错误类型</h2>

<h2 id="发生了什么错误?">发生了什么错误?</h2>

<p>在使用{{jsxref("Number.prototype.toString()")}}方法时使用了可选的基数参数,参数应该为一个2到36之间的整型(数字),返回对应数字的转换为字符串时表示的该进制对应的数字量。</p>
<p>在使用{{jsxref("Number.prototype.toString()")}}方法时使用了可选的基数参数,参数应该为一个 2 到 36 之间的整型 (数字),返回对应数字的转换为字符串时表示的该进制对应的数字量。</p>

<p>为什么小于36呢?因为一个大于(包含等于)10的基数在使用时需要用一个字母表字符来代替。不能超过36是因为拉丁字母表中只有26个字符。</p>
<p>为什么小于 36 呢?因为一个大于 (包含等于)10 的基数在使用时需要用一个字母表字符来代替。不能超过 36 是因为拉丁字母表中只有 26 个字符。</p>

<p>你可能会用到以下的常见基数:</p>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ <h2 id="错误类型">错误类型</h2>

<p>{{jsxref("SyntaxError","语法错误")}}.</p>

<h2 id="什么地方出错了">什么地方出错了?</h2>
<h2 id="什么地方出错了">什么地方出错了</h2>

<p>在代码中出现了无效的正则表达式的标记。在一个正则表达式字面量中,由闭合的两条斜线组成一个模式,(正则表达式的)标记定义在第二个(斜线)标记之后。他们也可以通过{{jsxref("RegExp", "正则表达式")}} 对象的构造函数(第二个参数)来定义。正则表达式的标记可以单独或者任意次序的组合使用,但ECMAScript只规定了五个。</p>
<p>在代码中出现了无效的正则表达式的标记。在一个正则表达式字面量中,由闭合的两条斜线组成一个模式,(正则表达式的)标记定义在第二个(斜线)标记之后。他们也可以通过{{jsxref("RegExp", "正则表达式")}} 对象的构造函数(第二个参数)来定义。正则表达式的标记可以单独或者任意次序的组合使用,但 ECMAScript 只规定了五个。</p>

<p>要使正则表达式包含标记,使用此语法:</p>

Expand All @@ -42,19 +42,19 @@ <h2 id="什么地方出错了">什么地方出错了?</h2>
<tbody>
<tr>
<td><code>g</code></td>
<td>整体检索.</td>
<td>整体检索</td>
</tr>
<tr>
<td>i</td>
<td>忽略大小写检索.</td>
<td>忽略大小写检索</td>
</tr>
<tr>
<td>m</td>
<td>多行检索.</td>
<td>多行检索</td>
</tr>
<tr>
<td>u</td>
<td>Unicode; 将模式视为Unicode码点的序列</td>
<td>Unicode; 将模式视为 Unicode 码点的序列</td>
</tr>
<tr>
<td>y</td>
Expand All @@ -65,7 +65,7 @@ <h2 id="什么地方出错了">什么地方出错了?</h2>

<h2 id="示例">示例</h2>

<p>只有5个有效的正则表达式标记。</p>
<p>只有 5 个有效的正则表达式标记。</p>

<pre class="brush: js example-bad">/foo/bar;

Expand All @@ -89,7 +89,7 @@ <h2 id="示例">示例</h2>

<h3 id="有效的正则表达式标记">有效的正则表达式标记</h3>

<p>在JavaScript中允许的五个有效的正则表达式标记,参阅上表。</p>
<p>在 JavaScript 中允许的五个有效的正则表达式标记,参阅上表。</p>

<pre class="brush: js example-good">/foo/g;
/foo/gim;
Expand All @@ -100,5 +100,5 @@ <h2 id="相关页面">相关页面</h2>

<ul>
<li><a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions">正则表达式</a></li>
<li><a href="http://xregexp.com/flags/">XRegEx flags</a> – 正则表达式库提供新的四个标记(<code>n</code>, <code>s</code>, <code>x</code>, <code>A</code>)</li>
<li><a href="http://xregexp.com/flags/">XRegEx flags</a> – 正则表达式库提供新的四个标记 (<code>n</code>, <code>s</code>, <code>x</code>, <code>A</code>)</li>
</ul>
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ <h2 id="错误类型">错误类型</h2>

<h2 id="什么地方出错了?">什么地方出错了?</h2>

<p><code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/return">return</a></code> 返回的或者 <code><a href="/en-US/docs/Web/JavaScript/Reference/Operators/yield">yield</a></code> 语句在函数 <a href="/en-US/docs/Web/JavaScript/Guide/Functions">function</a> 外被调用. 或许是少了一个花括号, <code>return</code> 返回的和 <code>yield</code> 语句必须是在一个函数里,因为它们会停止(暂停或恢复)函数的继续执行,然后返回。</p>
<p><code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/return">return</a></code> 返回的或者 <code><a href="/en-US/docs/Web/JavaScript/Reference/Operators/yield">yield</a></code> 语句在函数 <a href="/en-US/docs/Web/JavaScript/Guide/Functions">function</a> 外被调用或许是少了一个花括号, <code>return</code> 返回的和 <code>yield</code> 语句必须是在一个函数里,因为它们会停止(暂停或恢复)函数的继续执行,然后返回。</p>

<h2 id="范例">范例</h2>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,15 @@ <h2 id="错误类型">错误类型</h2>

<p>{{jsxref("TypeError")}}.</p>

<h2 id="哪里出错了">哪里出错了?</h2>
<h2 id="哪里出错了">哪里出错了</h2>

<p>访问了 {{jsxref("undefined")}} 或{{jsxref("null")}} 值的属性.</p>
<p>访问了 {{jsxref("undefined")}} 或{{jsxref("null")}} 值的属性</p>

<h2 id="例子">例子</h2>

<h3 id="无效情形">无效情形</h3>

<pre class="brush: js example-bad">// 对于undefined 以及 null 值, substring 方法无法正常工作
<pre class="brush: js example-bad">// 对于 undefined 以及 null 值, substring 方法无法正常工作
var foo = undefined;
foo.substring(1); // TypeError: x is undefined, can't access property "substring" of it

Expand All @@ -41,10 +41,10 @@ <h3 id="无效情形">无效情形</h3>

<h3 id="解决问题">解决问题</h3>

<p>为了解决<code>undefined</code> 或 <code>null</code> 值的空指针问题,你可以使用 <a href="/en-US/docs/Web/JavaScript/Reference/Operators/typeof">typeof</a> 操作符, 比如.</p>
<p>为了解决<code>undefined</code> 或 <code>null</code> 值的空指针问题,你可以使用 <a href="/en-US/docs/Web/JavaScript/Reference/Operators/typeof">typeof</a> 操作符,比如。</p>

<pre class="brush: js">if (typeof foo !== 'undefined') {
// 现在已经确认foo已定义,可以进一步操作.
// 现在已经确认 foo 已定义,可以进一步操作
}</pre>

<h2 id="参考更多">参考更多</h2>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ <h2 id="错误类型">错误类型</h2>

<h2 id="原因">原因</h2>

<p>在 {{jsxref("Strict_mode")}}下, 当试图给一个{{Glossary("symbol")}},{{Glossary("string")}},{{Glossary("number")}}或者一个{{Glossary("boolean")}}类型的数据创建一个属性时就会报 {{jsxref("TypeError")}}, 任何 {{Glossary("Primitive")}} 值都不允许有{{Glossary("property/JavaScript", "property")}}.</p>
<p>在 {{jsxref("Strict_mode")}}下当试图给一个{{Glossary("symbol")}},{{Glossary("string")}},{{Glossary("number")}}或者一个{{Glossary("boolean")}}类型的数据创建一个属性时就会报 {{jsxref("TypeError")}}, 任何 {{Glossary("Primitive")}} 值都不允许有{{Glossary("property/JavaScript", "property")}}.</p>

<p>这个问题可能是由一个错误的值被放在了一个错误的地方导致的, 或者预期{{jsxref("String")}}或{{jsxref("Number")}}的对象变体</p>
<p>这个问题可能是由一个错误的值被放在了一个错误的地方导致的或者预期{{jsxref("String")}}或{{jsxref("Number")}}的对象变体</p>

<p> </p>

Expand All @@ -31,13 +31,13 @@ <h3 id="错误的情况">错误的情况</h3>
<pre class="brush: js example-bad">'use strict';

var foo = "my string";
// 下面这行代码在非严格模式下不会执行.
// 下面这行代码在非严格模式下不会执行
foo.bar = {}; // TypeError: can't assign to property "bar" on "my string": not an object
</pre>

<h3 id="如何正确使用">如何正确使用</h3>

<p>有两种方式, 第一种修复这部分代码阻止{{Glossary("primitive")}}被用于这种情况, 或者可以通过使用对象构造器创建来修复.</p>
<p>有两种方式第一种修复这部分代码阻止{{Glossary("primitive")}}被用于这种情况或者可以通过使用对象构造器创建来修复</p>

<pre class="brush: js example-good">'use strict';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ JSON.stringify(circularReference);
// TypeError: cyclic object value
```

要处理循环引用的 JSON,可以使用支持这种结构的库(例如[cycle.js](https://github.com/douglascrockford/JSON-js/blob/master/cycle.js))),或者自己实现,需要通过可序列化值查找、替换或者移除循环引用。
要处理循环引用的 JSON,可以使用支持这种结构的库 (例如[cycle.js](https://github.com/douglascrockford/JSON-js/blob/master/cycle.js))),或者自己实现,需要通过可序列化值查找、替换或者移除循环引用。

下面的代码片段演示了如何使用{{jsxref("JSON.stringify()")}}的 `replacer` 参数查找和过滤(会导致数据丢失)循环引用。

Expand All @@ -73,5 +73,5 @@ JSON.stringify(circularReference, getCircularReplacer());

- {{jsxref("JSON.stringify")}}
- [cycle.js](https://github.com/douglascrockford/JSON-js/blob/master/cycle.js)
– 介绍两个方法, `JSON.decycle` 和
– 介绍两个方法`JSON.decycle` 和
`JSON.retrocycle`,这两个方法能够对循环对象引用结构进行编码和解码,并且使之成为一种扩展的且向下兼容的 JSON 格式。
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ <h2 id="错误类型">错误类型</h2>

<h2 id="哪里出错了?">哪里出错了?</h2>

<p>为了提高内存使用效率以及防止内存泄露,Firefox 浏览器不允许插件在 DOM 所在的父页面被销毁后对 DOM 对象保持强引用。死对象指的是在 DOM 被销毁后依然持有对 DOM 元素的强引用(处于活跃状态)。为了避免这样的问题,对处于外部文档中的 DOM 节点的引用应该被存储于一个专属于那个文档的对象当中,并且在文档卸载的时候将其清理,或者使用<a href="/en-US/docs/Mozilla/Tech/XPCOM/Language_Bindings/Components.utils.getWeakReference">弱引用</a>方式进行存储。</p>
<p>为了提高内存使用效率以及防止内存泄露,Firefox 浏览器不允许插件在 DOM 所在的父页面被销毁后对 DOM 对象保持强引用。死对象指的是在 DOM 被销毁后依然持有对 DOM 元素的强引用 (处于活跃状态)。为了避免这样的问题,对处于外部文档中的 DOM 节点的引用应该被存储于一个专属于那个文档的对象当中,并且在文档卸载的时候将其清理,或者使用<a href="/en-US/docs/Mozilla/Tech/XPCOM/Language_Bindings/Components.utils.getWeakReference">弱引用</a>方式进行存储。</p>

<h2 id="Checking_if_an_object_is_dead">Checking if an object is dead</h2>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ <h2 id="错误类型">错误类型</h2>

<p>仅在严格模式下出现的 {{jsxref("ReferenceError")}} 警告。JavaScript 的执行将不会停止。</p>

<h2 id="发生了什么">发生了什么?</h2>
<h2 id="发生了什么">发生了什么</h2>

<p>在 <a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode">strict mode</a> 中,{{jsxref("Function.caller")}} 和 {{jsxref("Function.arguments")}} 属性是不该使用的。它们都是已经被废弃的了,因为这两者泄露了函数的调用者,是不标准的,难于优化和有这潜在的性能问题。</p>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@ <h2 id="错误类型">错误类型</h2>

<p>{{jsxref("SyntaxError")}} 的警告。不会终止 JavaScript 的执行。</p>

<h2 id="哪里错了">哪里错了?</h2>
<h2 id="哪里错了">哪里错了</h2>

<p>在 JavaScript 源码中使用了已废弃的 source map 语法。</p>

<p>JavaScript 源代码经常被组合和压缩,以便能更高效地从服务器获取它们。使用了 <a href="http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/">source maps</a>,调试器就可以将正在执行的代码映射到原始源文件。</p>

<p>因为 IE 浏览器只要页面在 <code>//@cc_on</code> 之后的都会被IE JScript引擎解释为打开条件编译后,所以 source map 的规范更改了语法。<a href="https://msdn.microsoft.com/en-us/library/8ka90k2e%28v=vs.94%29.aspx">条件编译注释</a> 是 IE 的一个小特色,但是它破坏了 <a href="https://bugs.jquery.com/ticket/13274">jQuery</a> 和其他库的 source map。</p>
<p>因为 IE 浏览器只要页面在 <code>//@cc_on</code> 之后的都会被 IE JScript 引擎解释为打开条件编译后,所以 source map 的规范更改了语法。<a href="https://msdn.microsoft.com/en-us/library/8ka90k2e%28v=vs.94%29.aspx">条件编译注释</a> 是 IE 的一个小特色,但是它破坏了 <a href="https://bugs.jquery.com/ticket/13274">jQuery</a> 和其他库的 source map。</p>

<h2 id="示例">示例</h2>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ <h2 id="错误类型">错误类型</h2>

<h2 id="哪里出错了?">哪里出错了?</h2>

<p>{{jsxref("Date.prototype.toLocaleFormat")}} 是非标准化的方法,已经被废弃,不应该再进行使用。该方法需要传入与 C 语言中的strftime() 方法相似的格式化字符串。该实现将会在 {{bug(818634)}} 中完全移除。</p>
<p>{{jsxref("Date.prototype.toLocaleFormat")}} 是非标准化的方法,已经被废弃,不应该再进行使用。该方法需要传入与 C 语言中的 strftime() 方法相似的格式化字符串。该实现将会在 {{bug(818634)}} 中完全移除。</p>

<h2 id="示例">示例</h2>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,15 @@ <h2 id="错误类型">错误类型</h2>

<p>{{jsxref("SyntaxError")}} 只在<a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode">严格模式</a>下会出现的警告。</p>

<h2 id="什么地方出错了">什么地方出错了?</h2>
<h2 id="什么地方出错了">什么地方出错了</h2>

<p>在通常期望进行相等判定(<code>==</code>)的地方出现了赋值<code>(=</code>)。 为了帮助调试,JavaScript(在开启严格模式的情况下)会对这种情况进行警告。</p>

<h2 id="示例">示例</h2>

<h3 id="条件表达式内的赋值">条件表达式内的赋值</h3>

<p>不建议在条件表达式中 (例如 <code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/if...else">if...else</a></code>) 使用简单赋值语句,因为在扫视代码的时候赋值操作与相等判定容易产生混淆。例如,不要使用以下写法:</p>
<p>不建议在条件表达式中(例如 <code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/if...else">if...else</a></code>)使用简单赋值语句,因为在扫视代码的时候赋值操作与相等判定容易产生混淆。例如,不要使用以下写法:</p>

<pre class="brush: js example-bad">if (x = y) {
// do the right thing
Expand All @@ -37,7 +37,7 @@ <h3 id="条件表达式内的赋值">条件表达式内的赋值</h3>
// do the right thing
}</pre>

<p>否则, 你的本意可能是想用比较操作符 (如 <code>==</code> 或 <code>===</code>):</p>
<p>否则, 你的本意可能是想用比较操作符(如 <code>==</code> 或 <code>===</code>):</p>

<pre class="brush: js">if (x == y) {
// do the right thing
Expand Down
Loading