diff --git a/files/zh-cn/web/javascript/reference/errors/array_sort_argument/index.html b/files/zh-cn/web/javascript/reference/errors/array_sort_argument/index.html index 1053ea058b31de..2d29f60837691d 100644 --- a/files/zh-cn/web/javascript/reference/errors/array_sort_argument/index.html +++ b/files/zh-cn/web/javascript/reference/errors/array_sort_argument/index.html @@ -18,7 +18,7 @@
{{jsxref("TypeError")}}
-{{jsxref("Array.prototype.sort()")}} 的参数预期为 {{jsxref("undefined")}} 或者是一个比较操作数的函数。
diff --git a/files/zh-cn/web/javascript/reference/errors/bad_octal/index.html b/files/zh-cn/web/javascript/reference/errors/bad_octal/index.html index ff607301744ec2..1e36a970d180b7 100644 --- a/files/zh-cn/web/javascript/reference/errors/bad_octal/index.html +++ b/files/zh-cn/web/javascript/reference/errors/bad_octal/index.html @@ -20,11 +20,11 @@仅在 strict mode 下出现 {{jsxref("SyntaxError")}} 警告。
-十进制字面量可以以零作为开始(0
),后面跟着其他十进制数,但是假如前导 0 之后的所有数字都小于 8,那么这个数就会被解析为一个八进制的数。因为 08 和 09 不是这样的,所以 JavaScript 会发出警告。
十进制字面量可以以零作为开始 (0
),后面跟着其他十进制数,但是假如前导 0 之后的所有数字都小于 8,那么这个数就会被解析为一个八进制的数。因为 08 和 09 不是这样的,所以 JavaScript 会发出警告。
请注意,不推荐使用八进制字面值和八进制转义序列,并会产生另外的弃用警告。 在 ECMAScript 6 和更高版本里,语法使用前导零后跟小写或大写拉丁字母“O”(0o或0O)。更多信息请查看 lexical grammar。
+请注意,不推荐使用八进制字面值和八进制转义序列,并会产生另外的弃用警告。 在 ECMAScript 6 和更高版本里,语法使用前导零后跟小写或大写拉丁字母“O”(0o 或 0O)。更多信息请查看 lexical grammar。
备注:现在仅 firefox 会产生此错误。
diff --git a/files/zh-cn/web/javascript/reference/errors/bad_radix/index.html b/files/zh-cn/web/javascript/reference/errors/bad_radix/index.html index 1c45f8b6dd3144..22b42979ca9019 100644 --- a/files/zh-cn/web/javascript/reference/errors/bad_radix/index.html +++ b/files/zh-cn/web/javascript/reference/errors/bad_radix/index.html @@ -21,9 +21,9 @@在使用{{jsxref("Number.prototype.toString()")}}方法时使用了可选的基数参数,参数应该为一个2到36之间的整型(数字),返回对应数字的转换为字符串时表示的该进制对应的数字量。
+在使用{{jsxref("Number.prototype.toString()")}}方法时使用了可选的基数参数,参数应该为一个 2 到 36 之间的整型 (数字),返回对应数字的转换为字符串时表示的该进制对应的数字量。
-为什么小于36呢?因为一个大于(包含等于)10的基数在使用时需要用一个字母表字符来代替。不能超过36是因为拉丁字母表中只有26个字符。
+为什么小于 36 呢?因为一个大于 (包含等于)10 的基数在使用时需要用一个字母表字符来代替。不能超过 36 是因为拉丁字母表中只有 26 个字符。
你可能会用到以下的常见基数:
diff --git a/files/zh-cn/web/javascript/reference/errors/bad_regexp_flag/index.html b/files/zh-cn/web/javascript/reference/errors/bad_regexp_flag/index.html index 6365649479f3aa..f78e38cf3b7e48 100644 --- a/files/zh-cn/web/javascript/reference/errors/bad_regexp_flag/index.html +++ b/files/zh-cn/web/javascript/reference/errors/bad_regexp_flag/index.html @@ -18,9 +18,9 @@{{jsxref("SyntaxError","语法错误")}}.
-在代码中出现了无效的正则表达式的标记。在一个正则表达式字面量中,由闭合的两条斜线组成一个模式,(正则表达式的)标记定义在第二个(斜线)标记之后。他们也可以通过{{jsxref("RegExp", "正则表达式")}} 对象的构造函数(第二个参数)来定义。正则表达式的标记可以单独或者任意次序的组合使用,但ECMAScript只规定了五个。
+在代码中出现了无效的正则表达式的标记。在一个正则表达式字面量中,由闭合的两条斜线组成一个模式,(正则表达式的)标记定义在第二个(斜线)标记之后。他们也可以通过{{jsxref("RegExp", "正则表达式")}} 对象的构造函数(第二个参数)来定义。正则表达式的标记可以单独或者任意次序的组合使用,但 ECMAScript 只规定了五个。
要使正则表达式包含标记,使用此语法:
@@ -42,19 +42,19 @@g
只有5个有效的正则表达式标记。
+只有 5 个有效的正则表达式标记。
/foo/bar; @@ -89,7 +89,7 @@示例
有效的正则表达式标记
-在JavaScript中允许的五个有效的正则表达式标记,参阅上表。
+在 JavaScript 中允许的五个有效的正则表达式标记,参阅上表。
/foo/g; /foo/gim; @@ -100,5 +100,5 @@相关页面
n
, s
, x
, A
)n
, s
, x
, A
)return
返回的或者 yield
语句在函数 function 外被调用. 或许是少了一个花括号, return
返回的和 yield
语句必须是在一个函数里,因为它们会停止(暂停或恢复)函数的继续执行,然后返回。
return
返回的或者 yield
语句在函数 function 外被调用。或许是少了一个花括号, return
返回的和 yield
语句必须是在一个函数里,因为它们会停止(暂停或恢复)函数的继续执行,然后返回。
{{jsxref("TypeError")}}.
-访问了 {{jsxref("undefined")}} 或{{jsxref("null")}} 值的属性.
+访问了 {{jsxref("undefined")}} 或{{jsxref("null")}} 值的属性。
// 对于undefined 以及 null 值, substring 方法无法正常工作 +// 对于 undefined 以及 null 值, substring 方法无法正常工作 var foo = undefined; foo.substring(1); // TypeError: x is undefined, can't access property "substring" of it @@ -41,10 +41,10 @@无效情形
解决问题
-为了解决
+undefined
或null
值的空指针问题,你可以使用 typeof 操作符, 比如.为了解决
undefined
或null
值的空指针问题,你可以使用 typeof 操作符,比如。if (typeof foo !== 'undefined') { - // 现在已经确认foo已定义,可以进一步操作. + // 现在已经确认 foo 已定义,可以进一步操作。 }参考更多
diff --git a/files/zh-cn/web/javascript/reference/errors/cant_assign_to_property/index.html b/files/zh-cn/web/javascript/reference/errors/cant_assign_to_property/index.html index e8b44ece570db8..258c6817544d60 100644 --- a/files/zh-cn/web/javascript/reference/errors/cant_assign_to_property/index.html +++ b/files/zh-cn/web/javascript/reference/errors/cant_assign_to_property/index.html @@ -18,9 +18,9 @@错误类型
原因
-在 {{jsxref("Strict_mode")}}下, 当试图给一个{{Glossary("symbol")}},{{Glossary("string")}},{{Glossary("number")}}或者一个{{Glossary("boolean")}}类型的数据创建一个属性时就会报 {{jsxref("TypeError")}}, 任何 {{Glossary("Primitive")}} 值都不允许有{{Glossary("property/JavaScript", "property")}}.
+在 {{jsxref("Strict_mode")}}下,当试图给一个{{Glossary("symbol")}},{{Glossary("string")}},{{Glossary("number")}}或者一个{{Glossary("boolean")}}类型的数据创建一个属性时就会报 {{jsxref("TypeError")}}, 任何 {{Glossary("Primitive")}} 值都不允许有{{Glossary("property/JavaScript", "property")}}.
-这个问题可能是由一个错误的值被放在了一个错误的地方导致的, 或者预期{{jsxref("String")}}或{{jsxref("Number")}}的对象变体
+这个问题可能是由一个错误的值被放在了一个错误的地方导致的,或者预期{{jsxref("String")}}或{{jsxref("Number")}}的对象变体
@@ -31,13 +31,13 @@
错误的情况
'use strict'; var foo = "my string"; -// 下面这行代码在非严格模式下不会执行. +// 下面这行代码在非严格模式下不会执行。 foo.bar = {}; // TypeError: can't assign to property "bar" on "my string": not an object如何正确使用
-有两种方式, 第一种修复这部分代码阻止{{Glossary("primitive")}}被用于这种情况, 或者可以通过使用对象构造器创建来修复.
+有两种方式,第一种修复这部分代码阻止{{Glossary("primitive")}}被用于这种情况,或者可以通过使用对象构造器创建来修复。
'use strict'; diff --git a/files/zh-cn/web/javascript/reference/errors/cyclic_object_value/index.md b/files/zh-cn/web/javascript/reference/errors/cyclic_object_value/index.md index ef3436fe70310a..c078c5022304e8 100644 --- a/files/zh-cn/web/javascript/reference/errors/cyclic_object_value/index.md +++ b/files/zh-cn/web/javascript/reference/errors/cyclic_object_value/index.md @@ -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` 参数查找和过滤(会导致数据丢失)循环引用。 @@ -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 格式。 diff --git a/files/zh-cn/web/javascript/reference/errors/dead_object/index.html b/files/zh-cn/web/javascript/reference/errors/dead_object/index.html index c974ec27b8242f..7bfe70b233efd0 100644 --- a/files/zh-cn/web/javascript/reference/errors/dead_object/index.html +++ b/files/zh-cn/web/javascript/reference/errors/dead_object/index.html @@ -20,7 +20,7 @@错误类型
哪里出错了?
-为了提高内存使用效率以及防止内存泄露,Firefox 浏览器不允许插件在 DOM 所在的父页面被销毁后对 DOM 对象保持强引用。死对象指的是在 DOM 被销毁后依然持有对 DOM 元素的强引用(处于活跃状态)。为了避免这样的问题,对处于外部文档中的 DOM 节点的引用应该被存储于一个专属于那个文档的对象当中,并且在文档卸载的时候将其清理,或者使用弱引用方式进行存储。
+为了提高内存使用效率以及防止内存泄露,Firefox 浏览器不允许插件在 DOM 所在的父页面被销毁后对 DOM 对象保持强引用。死对象指的是在 DOM 被销毁后依然持有对 DOM 元素的强引用 (处于活跃状态)。为了避免这样的问题,对处于外部文档中的 DOM 节点的引用应该被存储于一个专属于那个文档的对象当中,并且在文档卸载的时候将其清理,或者使用弱引用方式进行存储。
Checking if an object is dead
diff --git a/files/zh-cn/web/javascript/reference/errors/deprecated_caller_or_arguments_usage/index.html b/files/zh-cn/web/javascript/reference/errors/deprecated_caller_or_arguments_usage/index.html index 37df78c1d8202b..cf409a74c24492 100644 --- a/files/zh-cn/web/javascript/reference/errors/deprecated_caller_or_arguments_usage/index.html +++ b/files/zh-cn/web/javascript/reference/errors/deprecated_caller_or_arguments_usage/index.html @@ -22,7 +22,7 @@错误类型
仅在严格模式下出现的 {{jsxref("ReferenceError")}} 警告。JavaScript 的执行将不会停止。
-发生了什么?
+发生了什么?
在 strict mode 中,{{jsxref("Function.caller")}} 和 {{jsxref("Function.arguments")}} 属性是不该使用的。它们都是已经被废弃的了,因为这两者泄露了函数的调用者,是不标准的,难于优化和有这潜在的性能问题。
diff --git a/files/zh-cn/web/javascript/reference/errors/deprecated_source_map_pragma/index.html b/files/zh-cn/web/javascript/reference/errors/deprecated_source_map_pragma/index.html index 074e964160a3d8..739ba9c778c7d3 100644 --- a/files/zh-cn/web/javascript/reference/errors/deprecated_source_map_pragma/index.html +++ b/files/zh-cn/web/javascript/reference/errors/deprecated_source_map_pragma/index.html @@ -22,13 +22,13 @@错误类型
{{jsxref("SyntaxError")}} 的警告。不会终止 JavaScript 的执行。
-哪里错了?
+哪里错了?
在 JavaScript 源码中使用了已废弃的 source map 语法。
JavaScript 源代码经常被组合和压缩,以便能更高效地从服务器获取它们。使用了 source maps,调试器就可以将正在执行的代码映射到原始源文件。
-因为 IE 浏览器只要页面在
+//@cc_on
之后的都会被IE JScript引擎解释为打开条件编译后,所以 source map 的规范更改了语法。条件编译注释 是 IE 的一个小特色,但是它破坏了 jQuery 和其他库的 source map。因为 IE 浏览器只要页面在
//@cc_on
之后的都会被 IE JScript 引擎解释为打开条件编译后,所以 source map 的规范更改了语法。条件编译注释 是 IE 的一个小特色,但是它破坏了 jQuery 和其他库的 source map。示例
diff --git a/files/zh-cn/web/javascript/reference/errors/deprecated_tolocaleformat/index.html b/files/zh-cn/web/javascript/reference/errors/deprecated_tolocaleformat/index.html index e8e8040227e754..7e1591458e00db 100644 --- a/files/zh-cn/web/javascript/reference/errors/deprecated_tolocaleformat/index.html +++ b/files/zh-cn/web/javascript/reference/errors/deprecated_tolocaleformat/index.html @@ -19,7 +19,7 @@错误类型
哪里出错了?
-{{jsxref("Date.prototype.toLocaleFormat")}} 是非标准化的方法,已经被废弃,不应该再进行使用。该方法需要传入与 C 语言中的strftime() 方法相似的格式化字符串。该实现将会在 {{bug(818634)}} 中完全移除。
+{{jsxref("Date.prototype.toLocaleFormat")}} 是非标准化的方法,已经被废弃,不应该再进行使用。该方法需要传入与 C 语言中的 strftime() 方法相似的格式化字符串。该实现将会在 {{bug(818634)}} 中完全移除。
示例
diff --git a/files/zh-cn/web/javascript/reference/errors/equal_as_assign/index.html b/files/zh-cn/web/javascript/reference/errors/equal_as_assign/index.html index e92f0a63e8429c..7e566ab847fa38 100644 --- a/files/zh-cn/web/javascript/reference/errors/equal_as_assign/index.html +++ b/files/zh-cn/web/javascript/reference/errors/equal_as_assign/index.html @@ -16,7 +16,7 @@错误类型
{{jsxref("SyntaxError")}} 只在严格模式下会出现的警告。
-什么地方出错了?
+什么地方出错了?
在通常期望进行相等判定(
@@ -24,7 +24,7 @@==
)的地方出现了赋值(=
)。 为了帮助调试,JavaScript(在开启严格模式的情况下)会对这种情况进行警告。示例
条件表达式内的赋值
-不建议在条件表达式中 (例如
+if...else
) 使用简单赋值语句,因为在扫视代码的时候赋值操作与相等判定容易产生混淆。例如,不要使用以下写法:不建议在条件表达式中(例如
if...else
)使用简单赋值语句,因为在扫视代码的时候赋值操作与相等判定容易产生混淆。例如,不要使用以下写法:if (x = y) { // do the right thing @@ -37,7 +37,7 @@-条件表达式内的赋值
// do the right thing }否则, 你的本意可能是想用比较操作符 (如
+==
或===
):否则, 你的本意可能是想用比较操作符(如
==
或===
):if (x == y) { // do the right thing diff --git a/files/zh-cn/web/javascript/reference/errors/for-each-in_loops_are_deprecated/index.html b/files/zh-cn/web/javascript/reference/errors/for-each-in_loops_are_deprecated/index.html index ba17973172fb3b..a45f174c6100d5 100644 --- a/files/zh-cn/web/javascript/reference/errors/for-each-in_loops_are_deprecated/index.html +++ b/files/zh-cn/web/javascript/reference/errors/for-each-in_loops_are_deprecated/index.html @@ -9,22 +9,22 @@消息
-警告: JavaScript 1.6's 版本的for-each-in遍历不再赞成使用; 建议用 ES6的 for-of 替换 +警告: JavaScript 1.6's 版本的 for-each-in 遍历不再赞成使用; 建议用 ES6 的 for-of 替换错误类型
警告
-出了什么问题?
+出了什么问题?
-JavaScript 1.6's {{jsxref("Statements/for_each...in", "for each (variable in obj)")}}语法不赞成使用, 将在未来版本移除它。
+JavaScript 1.6's {{jsxref("Statements/for_each...in", "for each (variable in obj)")}}语法不赞成使用,将在未来版本移除它。
实例
遍历对象
-{{jsxref("Statements/for_each...in", "for each...in")}} 用来遍历指定对象.
+{{jsxref("Statements/for_each...in", "for each...in")}} 用来遍历指定对象。
不赞成这么使用
@@ -41,7 +41,7 @@不赞成这么使用
替换语法
-你可以使用 {{jsxref("Statements/for...in", "for...in")}} 遍历指定对象, 获取每次循环的值:
+你可以使用 {{jsxref("Statements/for...in", "for...in")}} 遍历指定对象,获取每次循环的值:
var object = { a: 10, b: 20 }; @@ -52,7 +52,7 @@-替换语法
}也可以使用{jsxref("Statements/for...of", "for...of")}} (ES2015) 和 {{jsxref("Object.values")}} (ES2017), 你可以获取指定对象的值得数组然后像这样遍历它:
+也可以使用{jsxref("Statements/for...of", "for...of")}} (ES2015) 和 {{jsxref("Object.values")}} (ES2017), 你可以获取指定对象的值得数组然后像这样遍历它:
var object = { a: 10, b: 20 }; @@ -64,7 +64,7 @@替换语法
数组遍历
-{{jsxref("Statements/for_each...in", "for each...in")}} 被用于遍历制定数组.
+{{jsxref("Statements/for_each...in", "for each...in")}} 被用于遍历制定数组。
不赞成这么使用
@@ -94,7 +94,7 @@替换语法
遍历一个空数组
-{{jsxref("Statements/for_each...in", "for each...in")}} 如果指定值是
+null
o或undefined什么都遍历不出来。
{{jsxref("Statements/for...of", "for...of")}} 在这种情况会抛出异常.{{jsxref("Statements/for_each...in", "for each...in")}} 如果指定值是
null
o 或undefined 什么都遍历不出来。
{{jsxref("Statements/for...of", "for...of")}} 在这种情况会抛出异常。不赞成这么使用
@@ -113,7 +113,7 @@不赞成这么使用
替换语法
-用{{jsxref("Statements/for...of", "for...of")}} 重写{{jsxref("Statements/for_each...in", "for each...in")}} 后值可以为
+null
和undefined
,同时你需要警惕{{jsxref("Statements/for...of", "for...of")}}抛出的异常.用{{jsxref("Statements/for...of", "for...of")}} 重写{{jsxref("Statements/for_each...in", "for each...in")}} 后值可以为
null
和undefined
,同时你需要警惕{{jsxref("Statements/for...of", "for...of")}}抛出的异常。function func(array) { if (array) { @@ -132,7 +132,7 @@遍历对象键值对
不赞成这么使用
-不赞成使用{{jsxref("Statements/for_each...in", "for each...in")}}和{{jsxref("Iterator")}} 对象来遍历指定对象的键值对.
+不赞成使用{{jsxref("Statements/for_each...in", "for each...in")}}和{{jsxref("Iterator")}} 对象来遍历指定对象的键值对。
警告:
@@ -146,7 +146,7 @@不赞成这么使用
替换语法
-你可以使用 {{jsxref("Statements/for...in", "for...in")}} 遍历指定对象,获取每次循环的值:
+你可以使用 {{jsxref("Statements/for...in", "for...in")}} 遍历指定对象,获取每次循环的值:
var object = { a: 10, b: 20 }; @@ -157,7 +157,7 @@-替换语法
}也可以使用{jsxref("Statements/for...of", "for...of")}} (ES2015) 和 {{jsxref("Object.values")}} (ES2017), 你可以获取指定对象的值得数组然后像这样遍历它:
+也可以使用{jsxref("Statements/for...of", "for...of")}} (ES2015) 和 {{jsxref("Object.values")}} (ES2017), 你可以获取指定对象的值得数组然后像这样遍历它:
var object = { a: 10, b: 20 }; diff --git a/files/zh-cn/web/javascript/reference/errors/identifier_after_number/index.html b/files/zh-cn/web/javascript/reference/errors/identifier_after_number/index.html index c2607edd2b3d43..441aafb75f9447 100644 --- a/files/zh-cn/web/javascript/reference/errors/identifier_after_number/index.html +++ b/files/zh-cn/web/javascript/reference/errors/identifier_after_number/index.html @@ -19,7 +19,7 @@-What went wrong?
变量名叫{{Glossary("Identifier", "identifiers")}},它符合某些规则,而你打破了这些规则!
-一个JavaScript标识符必须以字母开头,下划线(_)或美元符号($)。他们不能以数字开头。只有后续字符可以是数字(0-9)。
+一个 JavaScript 标识符必须以字母开头,下划线(_)或美元符号($)。他们不能以数字开头。只有后续字符可以是数字(0-9)。
Examples
diff --git a/files/zh-cn/web/javascript/reference/errors/illegal_character/index.html b/files/zh-cn/web/javascript/reference/errors/illegal_character/index.html index 16367c43a215ad..33ed90ea9f3a1e 100644 --- a/files/zh-cn/web/javascript/reference/errors/illegal_character/index.html +++ b/files/zh-cn/web/javascript/reference/errors/illegal_character/index.html @@ -62,7 +62,7 @@隐藏字符
// SyntaxError: illegal character当使用文本编辑器如VIM进行探测的时候,可以发现这里存在一个零宽空格 (ZWSP) (U+200B) 。
+当使用文本编辑器如 VIM 进行探测的时候,可以发现这里存在一个零宽空格 (ZWSP) (U+200B) 。
var foo = 'bar';<200b>diff --git a/files/zh-cn/web/javascript/reference/errors/invalid_array_length/index.html b/files/zh-cn/web/javascript/reference/errors/invalid_array_length/index.html index b0d98f825f7454..e02db2d29b49ef 100644 --- a/files/zh-cn/web/javascript/reference/errors/invalid_array_length/index.html +++ b/files/zh-cn/web/javascript/reference/errors/invalid_array_length/index.html @@ -20,16 +20,16 @@错误类型
{{jsxref("RangeError")}}
-什么地方出错了?
+什么地方出错了?
无效的数组错误长度通常会在以下情形中出现:
-
-- 当创建一个长度为负数或者长度大于等于2^32 的{{jsxref("Array")}} 或者 {{jsxref("ArrayBuffer")}} 时。
-- 当设置 {{jsxref("Array.length")}} 属性为负数或者长度大于等于2^32 时。
+- 当创建一个长度为负数或者长度大于等于 2^32 的{{jsxref("Array")}} 或者 {{jsxref("ArrayBuffer")}} 时。
+- 当设置 {{jsxref("Array.length")}} 属性为负数或者长度大于等于 2^32 时。
为什么 Array(数组) 和 ArrayBuffer(数组缓冲区) 的长度会受到限制?因为 Array 和 ArrayBuffer 的 length(长度) 属性被定义为一个32位无符号整形(unsigned 32-bit integer)的值,所以它只能存储 0 - 2^32 - 1 之间的数。
+为什么 Array(数组)和 ArrayBuffer(数组缓冲区)的长度会受到限制?因为 Array 和 ArrayBuffer 的 length(长度)属性被定义为一个 32 位无符号整形(unsigned 32-bit integer)的值,所以它只能存储 0 - 2^32 - 1 之间的数。
当你使用构造函数来创建一个数组的时候,你可能想使用字面值的形式,第一个参数会被解释为数组的长度。
diff --git a/files/zh-cn/web/javascript/reference/errors/invalid_assignment_left-hand_side/index.html b/files/zh-cn/web/javascript/reference/errors/invalid_assignment_left-hand_side/index.html index e3506fc1995911..e13b5ad0c10137 100644 --- a/files/zh-cn/web/javascript/reference/errors/invalid_assignment_left-hand_side/index.html +++ b/files/zh-cn/web/javascript/reference/errors/invalid_assignment_left-hand_side/index.html @@ -35,7 +35,7 @@Examples
// ReferenceError: invalid assignment left-hand side -在
+if
语句中,你要使用比较运算符("=="),而在字符串连接中,使用加号运算符("+")。在
if
语句中,你要使用比较运算符 ("=="),而在字符串连接中,使用加号运算符 ("+")。if (Math.PI == 3 || Math.PI == 4) { console.log('no way!'); diff --git a/files/zh-cn/web/javascript/reference/errors/invalid_const_assignment/index.html b/files/zh-cn/web/javascript/reference/errors/invalid_const_assignment/index.html index 330bab78c80b0d..eac1173f196ee1 100644 --- a/files/zh-cn/web/javascript/reference/errors/invalid_const_assignment/index.html +++ b/files/zh-cn/web/javascript/reference/errors/invalid_const_assignment/index.html @@ -68,7 +68,7 @@-作用域
const COLUMNS = 120; }+
const与不可变性
const 与不可变性
const 声明语句创建了一个对值的只读引用。这并不意味着它指向的值是不可变的,而是说这个变量标记符不能被再次分配。例如,在值是对象的情况下,引用的对象自身内容依然是可以改变的。不能改变该变量的引用:
diff --git a/files/zh-cn/web/javascript/reference/errors/invalid_date/index.html b/files/zh-cn/web/javascript/reference/errors/invalid_date/index.html index 1deee46fccb5c6..5138c156787373 100644 --- a/files/zh-cn/web/javascript/reference/errors/invalid_date/index.html +++ b/files/zh-cn/web/javascript/reference/errors/invalid_date/index.html @@ -11,16 +11,16 @@消息
-范围错误: 非法数据(Firefox) -范围错误: 非法时间值 (Chrome) -范围错误: 提供的数据不是有效的 (Chrome) +diff --git a/files/zh-cn/web/javascript/reference/errors/more_arguments_needed/index.html b/files/zh-cn/web/javascript/reference/errors/more_arguments_needed/index.html index b042af14bb853d..7136bc94578cc4 100644 --- a/files/zh-cn/web/javascript/reference/errors/more_arguments_needed/index.html +++ b/files/zh-cn/web/javascript/reference/errors/more_arguments_needed/index.html @@ -20,7 +20,7 @@范围错误:非法数据 (Firefox) +范围错误:非法时间值 (Chrome) +范围错误:提供的数据不是有效的 (Chrome)错误类型
{{jsxref("RangeError")}}
-哪里出错了?
+哪里出错了?
为 {{jsxref("Date")}} 或 {{jsxref("Date.parse()")}} 提供了一个会导致无效日期的字符串。
@@ -28,7 +28,7 @@示例
错误示例
-ISO格式化字符串中不可识别的字符串或者包含非法元素值的日期一般会返回 {{jsxref("NaN")}}。然而,根据实现的不同,不符合ISO格式的字符串可能也会抛出
+RangeError: invalid date
,比如在火狐浏览器中有以下情形:ISO 格式化字符串中不可识别的字符串或者包含非法元素值的日期一般会返回 {{jsxref("NaN")}}。然而,根据实现的不同,不符合 ISO 格式的字符串可能也会抛出
RangeError: invalid date
,比如在火狐浏览器中有以下情形:new Date('foo-bar 2014'); new Date('2014-25-23').toISOString(); diff --git a/files/zh-cn/web/javascript/reference/errors/invalid_for-of_initializer/index.html b/files/zh-cn/web/javascript/reference/errors/invalid_for-of_initializer/index.html index 7e93d3af35474d..16e62acf5ca646 100644 --- a/files/zh-cn/web/javascript/reference/errors/invalid_for-of_initializer/index.html +++ b/files/zh-cn/web/javascript/reference/errors/invalid_for-of_initializer/index.html @@ -24,7 +24,7 @@错误类型
哪里出错了?
-for...of 循环的头部包含有初始化表达式。也就是对一个变量进行声明并赋值|
+for (var i = 0 of iterable)
|。这在 for-of 循环中是被禁止的。你想要的可能是允许包含初始化器的for
循环形式。for...of 循环的头部包含有初始化表达式。也就是对一个变量进行声明并赋值 |
for (var i = 0 of iterable)
|。这在 for-of 循环中是被禁止的。你想要的可能是允许包含初始化器的for
循环形式。示例
diff --git a/files/zh-cn/web/javascript/reference/errors/is_not_iterable/index.html b/files/zh-cn/web/javascript/reference/errors/is_not_iterable/index.html index a3cd34eb82f080..bbc9b0c1271da4 100644 --- a/files/zh-cn/web/javascript/reference/errors/is_not_iterable/index.html +++ b/files/zh-cn/web/javascript/reference/errors/is_not_iterable/index.html @@ -18,15 +18,15 @@错误类型
{{jsxref("TypeError")}}
-发生了什么错误?
+发生了什么错误?
-这个值作为 for…of 的表达式右值,或者作为一个函数的参数,如 {{jsxref("Promise.all")}} 或者 {{jsxref("TypedArray.from")}}, 不是一个 可迭代对象. 一个可迭代对象可以是一个内置可迭代类型,如{{jsxref("Array")}}, {{jsxref("String")}} 或 {{jsxref("Map")}}, 一个 generator 生成结果, 或者一个实现了 可迭代协议 的对象
+这个值作为 for…of 的表达式右值,或者作为一个函数的参数,如 {{jsxref("Promise.all")}} 或者 {{jsxref("TypedArray.from")}}, 不是一个 可迭代对象. 一个可迭代对象可以是一个内置可迭代类型,如{{jsxref("Array")}}, {{jsxref("String")}} 或 {{jsxref("Map")}}, 一个 generator 生成结果,或者一个实现了 可迭代协议 的对象
示例
Iterating over Object properties
-在JavaScript中, {{jsxref("Object")}} 是不可迭代的,除非它们实现了迭代协议. 因此, 你不能使用 for…of 来迭代对象的属性.
+在 JavaScript 中,{{jsxref("Object")}} 是不可迭代的,除非它们实现了迭代协议. 因此,你不能使用 for…of 来迭代对象的属性。
var obj = { 'France': 'Paris', 'England': 'London' }; for (let p of obj) { // TypeError: obj is not iterable @@ -34,10 +34,10 @@-Iterating over Object properties
}做为替代你必须使用 {{jsxref("Object.keys")}} 或 {{jsxref("Object.entries")}} 来迭代对象的属性或属性值.
+做为替代你必须使用 {{jsxref("Object.keys")}} 或 {{jsxref("Object.entries")}} 来迭代对象的属性或属性值。
var obj = { 'France': 'Paris', 'England': 'London' }; -// 迭代属性名称: +// 迭代属性名称: for (let country of-Object
.keys(obj)) { var capital = obj[country]; console.log(country, capital); @@ -47,7 +47,7 @@Iterating over Object properties
console.log(country, capital);这次case的另外一个选择是使用 {{jsxref("Map")}}:
+这次 case 的另外一个选择是使用 {{jsxref("Map")}}:
var map = new Map; map.set('France', 'Paris'); @@ -67,7 +67,7 @@Iterating over Object properties
Iterating over a generator
-Generators 是用来生成可迭代对象的函数.
+Generators 是用来生成可迭代对象的函数。
function* generate(a, b) { yield a; @@ -78,7 +78,7 @@-Iterating over a generator
console.log(x);当它没有被调用, 这个 {{jsxref("Function")}} 相应的是可调用的,但是不可迭代。 调用 generator 生成一个可迭代对象,该对象将迭代在生成器执行期间生成的值.
+当它没有被调用,这个 {{jsxref("Function")}} 相应的是可调用的,但是不可迭代。 调用 generator 生成一个可迭代对象,该对象将迭代在生成器执行期间生成的值。
function* generate(a, b) { yield a; @@ -90,7 +90,7 @@Iterating over a generator
Iterating over a custom iterable
-可以使用{{jsxref("Symbol.iterator")}} 方法去实现一个自定义迭代器。你必须确定自定义的迭代器方法返回一个迭代器对象,即它必须有一个next()
+可以使用{{jsxref("Symbol.iterator")}} 方法去实现一个自定义迭代器。你必须确定自定义的迭代器方法返回一个迭代器对象,即它必须有一个 next()
const myEmptyIterable = { [Symbol.iterator]() { diff --git a/files/zh-cn/web/javascript/reference/errors/json_bad_parse/index.html b/files/zh-cn/web/javascript/reference/errors/json_bad_parse/index.html index cac9176d80b961..1da3c5efd383da 100644 --- a/files/zh-cn/web/javascript/reference/errors/json_bad_parse/index.html +++ b/files/zh-cn/web/javascript/reference/errors/json_bad_parse/index.html @@ -50,7 +50,7 @@错误类型
{{jsxref("SyntaxError")}}
-哪里出错了?
+哪里出错了?
{{jsxref("JSON.parse()")}} 会把一个字符串解析成 JSON 对象。如果字符串书写正确,那么其将会被解析成一个有效的 JSON,但是这个字符串被检测出错误语法的时候将会抛出错误。
@@ -58,7 +58,7 @@示例
-
JSON.parse()
不允许在末尾添加多余的逗号下面两行代码都会抛出错误:
+下面两行代码都会抛出错误:
JSON.parse('[1, 2, 3, 4, ]'); JSON.parse('{"foo" : 1, }'); @@ -66,7 +66,7 @@-
JSON.parse() // at line 1 column 14 of the JSON data
省略末尾多余的逗号解析 JSON 就是正确:
+省略末尾多余的逗号解析 JSON 就是正确:
JSON.parse('[1, 2, 3, 4 ]'); JSON.parse('{"foo" : 1 }');@@ -85,7 +85,7 @@JSON 的属性名必须使用双
前导 0 和小数点
-数字不能用 0 开头,比如01,并且你的小数点后面必须跟着至少一个数字。
+数字不能用 0 开头,比如 01,并且你的小数点后面必须跟着至少一个数字。
JSON.parse('{"foo" : 01 }'); // SyntaxError: JSON.parse: expected ',' or '}' after property value @@ -96,7 +96,7 @@-前导 0 和小数点
// at line 1 column 2 of the JSON data正确的写法应该是只写一个1,不书写前面的0。在小数点的后面至少要跟上一个数字:
+正确的写法应该是只写一个 1,不书写前面的 0。在小数点的后面至少要跟上一个数字:
JSON.parse('{"foo" : 1 }'); JSON.parse('{"foo" : 1.0 }'); diff --git a/files/zh-cn/web/javascript/reference/errors/malformed_formal_parameter/index.html b/files/zh-cn/web/javascript/reference/errors/malformed_formal_parameter/index.html index edbee71c60dc10..821b9df3066290 100644 --- a/files/zh-cn/web/javascript/reference/errors/malformed_formal_parameter/index.html +++ b/files/zh-cn/web/javascript/reference/errors/malformed_formal_parameter/index.html @@ -18,7 +18,7 @@错误类型
{{jsxref("SyntaxError")}}
-哪里错了?
+哪里错了?
在至少带有两个参数的
@@ -26,7 +26,7 @@Function()
构造器中它的最后一个参数是创建的新函数的源代码。剩下的都是新函数的参数。哪里错了?
好吧,这解决了我的问题。但是为什么不开始就说明白呢?
-诚然,错误信息中的措辞稍微有些奇怪。"Formal parameter" 是 "function argument" 的另一种优美的同义。 我们使用 “malformed”(即畸形)这个词,因为所有的Firefox工程师都是19世纪哥特式恐怖小说的巨星。
+诚然,错误信息中的措辞稍微有些奇怪。"Formal parameter" 是 "function argument" 的另一种优美的同义。 我们使用 “malformed”(即畸形)这个词,因为所有的 Firefox 工程师都是 19 世纪哥特式恐怖小说的巨星。
示例
diff --git a/files/zh-cn/web/javascript/reference/errors/malformed_uri/index.html b/files/zh-cn/web/javascript/reference/errors/malformed_uri/index.html index 40bb10ae1dded0..8b575973eb77ac 100644 --- a/files/zh-cn/web/javascript/reference/errors/malformed_uri/index.html +++ b/files/zh-cn/web/javascript/reference/errors/malformed_uri/index.html @@ -27,7 +27,7 @@示例
编码
-编码操作会将每一个字符实例替换为一到四个相对应的 UTF-8 编码形式的转义序列。如果试图编码一个非高-低位完整的代理字符,将会抛出一个 {{jsxref("URIError")}} 错误,例如:
+编码操作会将每一个字符实例替换为一到四个相对应的 UTF-8 编码形式的转义序列。如果试图编码一个非高 - 低位完整的代理字符,将会抛出一个 {{jsxref("URIError")}} 错误,例如:
encodeURI('\uD800'); // "URIError: malformed URI sequence" @@ -36,7 +36,7 @@-编码
// "URIError: malformed URI sequence"高-低位完整的代理字符是没问题的,例如:
+高 - 低位完整的代理字符是没问题的,例如:
encodeURI('\uD800\uDFFF'); // "%F0%90%8F%BF"diff --git a/files/zh-cn/web/javascript/reference/errors/missing_bracket_after_list/index.html b/files/zh-cn/web/javascript/reference/errors/missing_bracket_after_list/index.html index d1da6101849b2c..b7c03ebc967940 100644 --- a/files/zh-cn/web/javascript/reference/errors/missing_bracket_after_list/index.html +++ b/files/zh-cn/web/javascript/reference/errors/missing_bracket_after_list/index.html @@ -18,9 +18,9 @@错误类型
{{jsxref("SyntaxError")}}.
-哪里出错了?
+哪里出错了?
-数组初始化在某处出现了语法错误。比如缺少了右中括号("
+]
") 或一个逗号 (",
")。数组初始化在某处出现了语法错误。比如缺少了右中括号 ("
]
") 或一个逗号 (",
")。示例
diff --git a/files/zh-cn/web/javascript/reference/errors/missing_curly_after_property_list/index.html b/files/zh-cn/web/javascript/reference/errors/missing_curly_after_property_list/index.html index 4c6a06e4e05be4..c5102f16515ccf 100644 --- a/files/zh-cn/web/javascript/reference/errors/missing_curly_after_property_list/index.html +++ b/files/zh-cn/web/javascript/reference/errors/missing_curly_after_property_list/index.html @@ -18,7 +18,7 @@错误类型
{{jsxref("SyntaxError")}}
-哪里出错了?
+哪里出错了?
在对象初始化的时候语法出错了。可能是遗漏了一个大括号,也可能是遗漏了逗号。还要检查是否以正确的顺序关闭了大括号或括号。 缩进或格式化代码也许可以更好帮助你看清这些芜杂的。
diff --git a/files/zh-cn/web/javascript/reference/errors/missing_formal_parameter/index.html b/files/zh-cn/web/javascript/reference/errors/missing_formal_parameter/index.html index 1528fbe00e30f9..467438e1d1d237 100644 --- a/files/zh-cn/web/javascript/reference/errors/missing_formal_parameter/index.html +++ b/files/zh-cn/web/javascript/reference/errors/missing_formal_parameter/index.html @@ -19,7 +19,7 @@错误类型
{{jsxref("SyntaxError")}}
-哪里出错了?
+哪里出错了?
“形式参数” 是 “函数参数”一种更好的说法。函数声明缺少合法的参数定义。在函数声明中,参数定义必须为标记符({{Glossary("Identifier", "identifiers")}}), 而不是任何类似于数字、字符串或者对象的值。函数声明和函数调用是两个不同的步骤。函数声明中的参数需要使用标记符,而仅仅在函数被呼叫(调用)的时候才可以传入其所需要的值。
diff --git a/files/zh-cn/web/javascript/reference/errors/missing_parenthesis_after_argument_list/index.html b/files/zh-cn/web/javascript/reference/errors/missing_parenthesis_after_argument_list/index.html index 5d3dfe88092f72..ccc1293d987484 100644 --- a/files/zh-cn/web/javascript/reference/errors/missing_parenthesis_after_argument_list/index.html +++ b/files/zh-cn/web/javascript/reference/errors/missing_parenthesis_after_argument_list/index.html @@ -11,14 +11,14 @@消息
-语法错误: 参数列表后面缺少 ) +-语法错误:参数列表后面缺少 )错误类型
{{jsxref("SyntaxError")}}.
-什么地方出错了?
+什么地方出错了?
有一个函数在调用时出现错误。这可能是一个错误,丢失运算符或者转义字符等。
diff --git a/files/zh-cn/web/javascript/reference/errors/missing_semicolon_before_statement/index.html b/files/zh-cn/web/javascript/reference/errors/missing_semicolon_before_statement/index.html index 434c765136190b..f1dcecc9272ca0 100644 --- a/files/zh-cn/web/javascript/reference/errors/missing_semicolon_before_statement/index.html +++ b/files/zh-cn/web/javascript/reference/errors/missing_semicolon_before_statement/index.html @@ -16,9 +16,9 @@错误类型
{{jsxref("SyntaxError")}}.
-哪里出错了?
+哪里出错了?
-某个地方丢失了一个(
+;
)。 JavaScript 语句必须以分号结束。 有一些是由 自动分号插入(ASI) 的使用所影响到的, 但在这种情况下,你需要提供一个分号,以便于JavaScript可以将源代码解析正确。然而,通常情况下,这个错误只是另一个错误一个导致的,如不正确转义字符串,使用var的错误。你也可能有太多的括号的地方。当出现此错误时,仔细检查语法。某个地方丢失了一个 (
;
)。 JavaScript 语句必须以分号结束。 有一些是由 自动分号插入 (ASI) 的使用所影响到的, 但在这种情况下,你需要提供一个分号,以便于 JavaScript 可以将源代码解析正确。然而,通常情况下,这个错误只是另一个错误一个导致的,如不正确转义字符串,使用 var 的错误。你也可能有太多的括号的地方。当出现此错误时,仔细检查语法。例子
@@ -26,7 +26,7 @@例子
转义字符串
-这个错误可能发生不正确时容易转义字符串JavaScript引擎是希望你的字符串的末尾已经。例如:
+这个错误可能发生不正确时容易转义字符串 JavaScript 引擎是希望你的字符串的末尾已经。例如:
var foo = 'Tom's bar'; // SyntaxError: missing ; before statement@@ -37,7 +37,7 @@例子
var foo = 'Tom\'s bar';用var声明属性
+用 var 声明属性
你不能将带有变量声明的对象或数组的属性用
@@ -59,7 +59,7 @@var
来声明。用var声明属性
不推荐使用的关键字
-如果你用的是另一种编程语言,那么在javaScript中使用不具有相同或完全没有意义的关键字也是很常见的:
+如果你用的是另一种编程语言,那么在 javaScript 中使用不具有相同或完全没有意义的关键字也是很常见的:
def print(info){ console.log(info); @@ -76,6 +76,6 @@不推荐使用的关键字
参考
错误类型
{{jsxref("TypeError")}}.
-哪里出错了?
+哪里出错了?
调用函数的时候出现了错误。需要提供更多的参数。
diff --git a/files/zh-cn/web/javascript/reference/errors/negative_repetition_count/index.html b/files/zh-cn/web/javascript/reference/errors/negative_repetition_count/index.html index 94a79e94a8d461..f4b3475e0d16bd 100644 --- a/files/zh-cn/web/javascript/reference/errors/negative_repetition_count/index.html +++ b/files/zh-cn/web/javascript/reference/errors/negative_repetition_count/index.html @@ -20,7 +20,7 @@错误类型
{{jsxref("RangeError")}}
-发生了什么?
+发生了什么?
代码中使用了 {{jsxref("String.prototype.repeat()")}}方法。它有一个计数参数,表示重复该字符串的次数。该参数必须在 0 及正 {{jsxref("Infinity")}} 之间,且不能为负数。该值的合法范围可以这样表示: [0, +∞)。
diff --git a/files/zh-cn/web/javascript/reference/errors/no_properties/index.html b/files/zh-cn/web/javascript/reference/errors/no_properties/index.html index 5e904dd8ab7406..36251db019d7c7 100644 --- a/files/zh-cn/web/javascript/reference/errors/no_properties/index.html +++ b/files/zh-cn/web/javascript/reference/errors/no_properties/index.html @@ -15,17 +15,17 @@错误类型
{{jsxref("TypeError")}}.
-哪里出错了?
+哪里出错了?
{{jsxref("null")}} 和 {{jsxref("undefined")}}中,没有你需要的属性。
例子
null.foo; -// 错误类型: null没有这个属性 +// 错误类型: null 没有这个属性 undefined.bar; -// 错误类型: undefined没有这个属性 +// 错误类型: undefined 没有这个属性参考
diff --git a/files/zh-cn/web/javascript/reference/errors/not_a_codepoint/index.html b/files/zh-cn/web/javascript/reference/errors/not_a_codepoint/index.html index 769e6daa0c1da4..5c3bb7b414542d 100644 --- a/files/zh-cn/web/javascript/reference/errors/not_a_codepoint/index.html +++ b/files/zh-cn/web/javascript/reference/errors/not_a_codepoint/index.html @@ -17,11 +17,11 @@错误类型
什么地方出错了?
-{{jsxref("String.fromCodePoint()")}} 这个方法只能接受有效的码位(code point) 。
+{{jsxref("String.fromCodePoint()")}} 这个方法只能接受有效的码位(code point)。
码位( code point)是组成码空间(或代码页)的数值,范围是 0 到 0x10FFFF。
-{{jsxref("NaN")}},负整数(-1),非整数(3.14),或编号大于0x10FFFF (1114111) 的字符,无法使用该方法。
+{{jsxref("NaN")}},负整数(-1),非整数(3.14),或编号大于 0x10FFFF (1114111) 的字符,无法使用该方法。
范例
diff --git a/files/zh-cn/web/javascript/reference/errors/not_a_constructor/index.html b/files/zh-cn/web/javascript/reference/errors/not_a_constructor/index.html index 60279ed3c86138..d444e872d5131a 100644 --- a/files/zh-cn/web/javascript/reference/errors/not_a_constructor/index.html +++ b/files/zh-cn/web/javascript/reference/errors/not_a_constructor/index.html @@ -26,7 +26,7 @@错误类型
{{jsxref("TypeError")}}
-哪里出错了?
+哪里出错了?
是因为尝试将不是构造器的对象或者变量来作为构造器使用。参考 {{Glossary("constructor")}} 或者
@@ -55,7 +55,7 @@new
operator 来了解什么是构造器。无效的
一个构造器
-假设你想为汽车创建一个对象类型。 你希望此类型的对象被称为
+car
,并且您希望它具有make,model 和 year 属性。 为此,你编写以下函数:假设你想为汽车创建一个对象类型。 你希望此类型的对象被称为
car
,并且您希望它具有 make,model 和 year 属性。 为此,你编写以下函数:function Car(make, model, year) { this.make = make; @@ -64,7 +64,7 @@-一个构造器
}现在你可以创建一个名为
+mycar
的对象,如下所示:现在你可以创建一个名为
mycar
的对象,如下所示:var mycar = new Car("Eagle", "Talon TSi", 1993);@@ -82,7 +82,7 @@关于 Promises
// 这是合法的,但是没必要这么长: return new Promise((resolve, reject) => { resolve(true); }) -// 用静态方法来代替: +// 用静态方法来代替: return Promise.resolve(true); return Promise.reject(false);diff --git a/files/zh-cn/web/javascript/reference/errors/not_a_function/index.html b/files/zh-cn/web/javascript/reference/errors/not_a_function/index.html index 00c3cb3073a28d..732caca10e7e99 100644 --- a/files/zh-cn/web/javascript/reference/errors/not_a_function/index.html +++ b/files/zh-cn/web/javascript/reference/errors/not_a_function/index.html @@ -9,7 +9,7 @@ ---{{jsSidebar("Errors")}}-JavaScript异常"is not a function"会在试图去调用一个像函数一样的值,但是该值实际上不是函数时被抛出.+JavaScript 异常"is not a function"会在试图去调用一个像函数一样的值,但是该值实际上不是函数时被抛出。信息
@@ -20,21 +20,21 @@错误类型
{{jsxref("TypeError")}}
-哪里出错了?
+哪里出错了?
问题出在你试图去调用一个像函数一样的值,但是该值实际上不是函数,有时候你的代码需要调用一些函数,但是那种值并不能当作函数来被调用。
-也许函数名称上有错别字? 也许你正在调用Object对象没有这个方法? 例如,在JavaScript中单纯的对象(Object)没有map函数,但是JavaScript数组(Array)对象却有这个函数。
+也许函数名称上有错别字? 也许你正在调用 Object 对象没有这个方法? 例如,在 JavaScript 中单纯的对象 (Object) 没有map函数,但是 JavaScript 数组 (Array) 对象却有这个函数。
-再比如,在JavaScript中很多原生对象的内置方法需要你提供一个(回调)函数。 所以你必须提供一个函数,以使这些方法正常工作:
+再比如,在 JavaScript 中很多原生对象的内置方法需要你提供一个(回调)函数。 所以你必须提供一个函数,以使这些方法正常工作:
-
-- 当你在使用 {{jsxref("Array")}} 或 {{jsxref("TypedArray")}} 对象时: +
- 当你在使用 {{jsxref("Array")}} 或 {{jsxref("TypedArray")}} 对象时:
-
- {{jsxref("Array.prototype.every()")}}, {{jsxref("Array.prototype.some()")}}, {{jsxref("Array.prototype.forEach()")}}, {{jsxref("Array.prototype.map()")}}, {{jsxref("Array.prototype.filter()")}}, {{jsxref("Array.prototype.reduce()")}}, {{jsxref("Array.prototype.reduceRight()")}}, {{jsxref("Array.prototype.find()")}}
- 当你在使用 {{jsxref("Map")}} 和 {{jsxref("Set")}} 对象时: +
- 当你在使用 {{jsxref("Map")}} 和 {{jsxref("Set")}} 对象时:
@@ -56,7 +56,7 @@
- {{jsxref("Map.prototype.forEach()")}} and {{jsxref("Set.prototype.forEach()")}}
函数的名称错误
var x = document.getElementById("foo");-调用Object类型中不存在的方法
+调用 Object 类型中不存在的方法
对于某些特殊的方法,它只属于某些特定的原生对象中,你必须提供一个回调函数才能正常运行。例如:这里调用了一个 {{jsxref("Array.prototype.map()")}} 方法,但是这方法只能被 {{jsxref("Array")}} 对象所调用。
@@ -68,7 +68,7 @@调用Object类型中不存在 // TypeError: obj.map is not a function -
正确的做法,使用一个数组来代替:
+正确的做法,使用一个数组来代替:
var numbers = [1, 4, 9]; @@ -81,7 +81,7 @@调用Object类型中不存在
函数与已有属性重名
-当您在创建类时,可能会存在某个属性和某个方法的名称相同,当您在调用该函数时,编译器会认为该函数不存在.
+当您在创建类时,可能会存在某个属性和某个方法的名称相同,当您在调用该函数时,编译器会认为该函数不存在。
var Dog = function () { this.age = 11; @@ -100,7 +100,7 @@-函数与已有属性重名
myNewDog.name("Cassidy"); //Uncaught TypeError: myNewDog.name is not a function正确的做法是使用不同的变量名.
+正确的做法是使用不同的变量名。
var Dog = function () { this.age = 11; @@ -120,15 +120,15 @@函数与已有属性重名
使用括号进行乘法运算
-在数学中,您可以将 2 × (3 + 5) 写为 2*(3 + 5) 或者省略为 2(3 + 5).
+在数学中,您可以将 2 × (3 + 5) 写为 2*(3 + 5) 或者省略为 2(3 + 5).
-使用后者时将会抛出错误:
+使用后者时将会抛出错误:
const sixteen = 2(3 + 5); alert('2 x (3 + 5) is ' + String(sixteen)); //Uncaught TypeError: 2 is not a function-您可以添加乘法运算符
+*
来改正代码:您可以添加乘法运算符
*
来改正代码:const sixteen = 2 * (3 + 5); alert('2 x (3 + 5) is ' + String(sixteen)); @@ -136,7 +136,7 @@-使用括号进行乘法运算
正确地导入和导出模块
-确保正确导入模块.
+确保正确导入模块。
以下为一个示例模块 (
@@ -156,7 +156,7 @@helpers.js
)正确地导入和导出模块
export default helpers;在
+App.js
中正确导入该模块:在
App.js
中正确导入该模块:import helpers from './helpers'diff --git a/files/zh-cn/web/javascript/reference/errors/not_defined/index.html b/files/zh-cn/web/javascript/reference/errors/not_defined/index.html index 070e804d5c1bc0..ace42786e0012d 100644 --- a/files/zh-cn/web/javascript/reference/errors/not_defined/index.html +++ b/files/zh-cn/web/javascript/reference/errors/not_defined/index.html @@ -14,7 +14,7 @@错误类型
{{jsxref("ReferenceError")}}.
-什么地方出错了?
+什么地方出错了?
在某些地方引用一个不存在的变量的时候。当你使用变量的时候,这个变量必须是已经被声明的,或者你可以确保它在你当前的脚本或作用域 ({{Glossary("scope")}}) 中可用。
diff --git a/files/zh-cn/web/javascript/reference/errors/precision_range/index.html b/files/zh-cn/web/javascript/reference/errors/precision_range/index.html index 42e2c703a96480..cac631c3571d8a 100644 --- a/files/zh-cn/web/javascript/reference/errors/precision_range/index.html +++ b/files/zh-cn/web/javascript/reference/errors/precision_range/index.html @@ -31,7 +31,7 @@什么地方出错了?
- {{jsxref("Number.prototype.toPrecision()")}}
通常这些方法允许的参数范围介于0和20(或21)之间。需要注意的是,ECMAScript标准是允许扩展这个范围的。
+通常这些方法允许的参数范围介于 0 和 20(或 21)之间。需要注意的是,ECMAScript 标准是允许扩展这个范围的。
diff --git a/files/zh-cn/web/javascript/reference/errors/property_access_denied/index.html b/files/zh-cn/web/javascript/reference/errors/property_access_denied/index.html index 7b90b8be6f0b12..c5484984d38ff7 100644 --- a/files/zh-cn/web/javascript/reference/errors/property_access_denied/index.html +++ b/files/zh-cn/web/javascript/reference/errors/property_access_denied/index.html @@ -18,7 +18,7 @@
错误类型
{{jsxref("Error","错误")}}.
-什么地方出错了?
+什么地方出错了?
尝试访问无权访问的对象。这很可能出现在使用{{HTMLElement("iframe")}}元素时加载了一个不同域名下的页面,这在访问子页面时会违背同源策略。
diff --git a/files/zh-cn/web/javascript/reference/errors/read-only/index.html b/files/zh-cn/web/javascript/reference/errors/read-only/index.html index ecdc225497caed..d094d1c6afa1d6 100644 --- a/files/zh-cn/web/javascript/reference/errors/read-only/index.html +++ b/files/zh-cn/web/javascript/reference/errors/read-only/index.html @@ -7,10 +7,10 @@报错消息
-TypeError: "x" is read-only (Firefox) //格式错误:"x"只读。(x可以代表任意值) +TypeError: "x" is read-only (Firefox) //格式错误:"x"只读。(x 可以代表任意值) TypeError: 0 is read-only (Firefox) TypeError: Cannot assign to read only property 'x' of #<Object> (Chrome) -//格式错误:对象的x属性是只读的不能设置 (chrome) +//格式错误:对象的 x 属性是只读的不能设置(chrome) TypeError: Cannot assign to read only property '0' of [object Array] (Chrome)@@ -18,7 +18,7 @@错误格式
{{jsxref("TypeError")}}
-哪里出错了?
+哪里出错了?
全局变量或对象属性被设置为只读 (专业点讲,就是这条数据属性禁止写入.)
@@ -28,7 +28,7 @@例如
无效例子(也就是下面这么做会导致报这种错)
-只读属性不能直接创建, 但我们可以通过{{jsxref("Object.defineProperty()")}} 或 {{jsxref("Object.freeze()")}}设置.
+只读属性不能直接创建,但我们可以通过{{jsxref("Object.defineProperty()")}} 或 {{jsxref("Object.freeze()")}}设置。
"use strict"; var obj = Object.freeze({name: "Elsa", score: 157}); @@ -42,14 +42,14 @@无效 var frozenArray = Object.freeze([0, 1, 2]); frozenArray[0]++; // TypeError -还有几个JavaScript内置属性. 如果你尝试修改一个常量. +还有几个 JavaScript 内置属性。如果你尝试修改一个常量。 "use strict"; Math.PI = 4; // TypeError
傻了吧,报错了
-+
全局变量undefined也是只读的
, 所以你不能忽视臭名昭著的"undefined is not a function"错误:
全局变量 undefined 也是只读的
, 所以你不能忽视臭名昭著的"undefined is not a function"错误:"use strict"; undefined = function () {}; // TypeError: "undefined" is read-only @@ -59,7 +59,7 @@下面这样都是有效,不
"use strict"; var obj = Object.freeze({name: "Score", points: 157}); -obj = {name: obj.name, points: 0}; // 用一个新对象替换原来的对象(其实就是更改了对象的指针) +obj = {name: obj.name, points: 0}; // 用一个新对象替换原来的对象 (其实就是更改了对象的指针) "use strict"; var LUNG_COUNT = 2; // diff --git a/files/zh-cn/web/javascript/reference/errors/redeclared_parameter/index.html b/files/zh-cn/web/javascript/reference/errors/redeclared_parameter/index.html index 9a537951807ce7..b7283bb1622428 100644 --- a/files/zh-cn/web/javascript/reference/errors/redeclared_parameter/index.html +++ b/files/zh-cn/web/javascript/reference/errors/redeclared_parameter/index.html @@ -20,9 +20,9 @@错误类型
{{jsxref("SyntaxError")}}
-哪里出错了?
+哪里出错了?
-某个变量名称已经作为函数参数出现了,但是又使用了
+let
在函数体里重声明了。在JavaScript 中不允许使用let在相同的函数或块范围内重新声明相同的变量。某个变量名称已经作为函数参数出现了,但是又使用了
let
在函数体里重声明了。在 JavaScript 中不允许使用 let 在相同的函数或块范围内重新声明相同的变量。示例
diff --git a/files/zh-cn/web/javascript/reference/errors/reduce_of_empty_array_with_no_initial_value/index.html b/files/zh-cn/web/javascript/reference/errors/reduce_of_empty_array_with_no_initial_value/index.html index 3d90929530778f..204ec9ad13a89b 100644 --- a/files/zh-cn/web/javascript/reference/errors/reduce_of_empty_array_with_no_initial_value/index.html +++ b/files/zh-cn/web/javascript/reference/errors/reduce_of_empty_array_with_no_initial_value/index.html @@ -50,7 +50,7 @@有效的情况
这个问题有两种可能的解决办法:
-一种是提供一个初始值作为操作符的中立元素,比如加法里的0,乘法里的1,或者是合并中的一个空字符串。
+一种是提供一个初始值作为操作符的中立元素,比如加法里的 0,乘法里的 1,或者是合并中的一个空字符串。
var ints = [0, -1, -2, -3, -4, -5]; ints.filter(x => x < 0) // removes all elements diff --git a/files/zh-cn/web/javascript/reference/errors/reserved_identifier/index.html b/files/zh-cn/web/javascript/reference/errors/reserved_identifier/index.html index d99acf3fa8a5b7..28d5691ab72f26 100644 --- a/files/zh-cn/web/javascript/reference/errors/reserved_identifier/index.html +++ b/files/zh-cn/web/javascript/reference/errors/reserved_identifier/index.html @@ -20,7 +20,7 @@错误类型
哪里出错了?
-保留字 用作标记符将会出错. 这些标记符在严格模式和非严格模式下保留:
+保留字 用作标记符将会出错。这些标记符在严格模式和非严格模式下保留:
- diff --git a/files/zh-cn/web/javascript/reference/errors/resulting_string_too_large/index.html b/files/zh-cn/web/javascript/reference/errors/resulting_string_too_large/index.html index b35ca63938832f..10bc79071b1457 100644 --- a/files/zh-cn/web/javascript/reference/errors/resulting_string_too_large/index.html +++ b/files/zh-cn/web/javascript/reference/errors/resulting_string_too_large/index.html @@ -21,7 +21,7 @@
enum
错误类型
{{jsxref("RangeError")}}
-发生了什么?
+发生了什么?
代码中使用了 {{jsxref("String.prototype.repeat()")}}方法。它有一个计数参数,表示重复该字符串的次数。该参数必须在 0 及正 {{jsxref("Infinity")}} 之间,且不能为负数。该值的合法范围可以这样表示: [0, +∞)。
diff --git a/files/zh-cn/web/javascript/reference/errors/stmt_after_return/index.html b/files/zh-cn/web/javascript/reference/errors/stmt_after_return/index.html index 54fb1cf7a39589..00bb46f72f8d54 100644 --- a/files/zh-cn/web/javascript/reference/errors/stmt_after_return/index.html +++ b/files/zh-cn/web/javascript/reference/errors/stmt_after_return/index.html @@ -16,20 +16,20 @@错误类型
警告
-什么地方出错了?
+什么地方出错了?
在
return
语句之后的不可达的语句会在下列情形中产生:
- 在{{jsxref("Statements/return", "return")}} 语句之后出现其他表达式;
-- 在省略分号的return语句之后直接接一个表达式。
+- 在省略分号的 return 语句之后直接接一个表达式。
当一个表达式出现在一个有效的
-return
表达式之后时,会出现这个警告,用以说明在return
语句之后的表达式不可达,即这条语句之后的表达式永远不会运行。为什么我需要在
+return
语句之后添加分号?在省略分号的return
语句之后,开发者想要终止当前函数的执行还是返回return之后表达式的结果的意图是不明确的。这个警告表明这种情况下return
语句的表述具有二义性。为什么我需要在
-return
语句之后添加分号?在省略分号的return
语句之后,开发者想要终止当前函数的执行还是返回 return 之后表达式的结果的意图是不明确的。这个警告表明这种情况下return
语句的表述具有二义性。当在省略分号的return语句之后出现下列语句时,不会出现警告:
+当在省略分号的 return 语句之后出现下列语句时,不会出现警告:
- {{jsxref("Statements/throw", "throw")}}
diff --git a/files/zh-cn/web/javascript/reference/errors/strict_non_simple_params/index.html b/files/zh-cn/web/javascript/reference/errors/strict_non_simple_params/index.html index e546200e69e2f0..cfbdeab40c36cc 100644 --- a/files/zh-cn/web/javascript/reference/errors/strict_non_simple_params/index.html +++ b/files/zh-cn/web/javascript/reference/errors/strict_non_simple_params/index.html @@ -15,18 +15,18 @@信息
Firefox: 句法错误: "use strict" 不允许在带默认参数的函数中 -句法错误: "use strict" 不允许在带rest参数的函数中 +句法错误: "use strict" 不允许在带 rest 参数的函数中 句法错误: "use strict" 不允许在带解构参数的函数中 Chrome: -句法错误: 非法的'use strict'指令,在带有非简单参数列表的函数中 +句法错误:非法的'use strict'指令,在带有非简单参数列表的函数中错误类型
{{jsxref("SyntaxError")}}.
-哪里出错了?
+哪里出错了?
在函数顶部直接写了
@@ -36,13 +36,13 @@"use strict"
,而该函数拥有以下的参数其中之一:哪里出错了?
{{jsxref("Operators/Destructuring_assignment", "解构赋值", "", 1)}} -根据ECMAScript规范,不允许在这些函数的顶部使用“use strict”指令。
+根据 ECMAScript 规范,不允许在这些函数的顶部使用“use strict”指令。
示例
函数语句
-在这种情况下,函数sum具有默认参数a = 1和b = 2:
+在这种情况下,函数 sum 具有默认参数 a = 1 和 b = 2:
function sum(a=1, b=2) { // SyntaxError: "use strict" not allowed in function with default parameter @@ -51,7 +51,7 @@-函数语句
}如果这个函数应该处于 strict mode,并且整个脚本或封装函数也可以在严格模式下,可以移动 "use strict" 指令到函数之外:
+如果这个函数应该处于 strict mode,并且整个脚本或封装函数也可以在严格模式下,可以移动 "use strict" 指令到函数之外:
"use strict"; function sum(a=1, b=2) { @@ -82,7 +82,7 @@函数表达式
箭头函数
-如果箭头函数需要访问
+this
,则可以将箭头函数作为封闭函数来使用:如果箭头函数需要访问
this
,则可以将箭头函数作为封闭函数来使用:var callback = (...args) => { // SyntaxError: "use strict" not allowed in function with rest parameter diff --git a/files/zh-cn/web/javascript/reference/errors/too_much_recursion/index.html b/files/zh-cn/web/javascript/reference/errors/too_much_recursion/index.html index 1671a5598a5075..297d61d8ec7f9a 100644 --- a/files/zh-cn/web/javascript/reference/errors/too_much_recursion/index.html +++ b/files/zh-cn/web/javascript/reference/errors/too_much_recursion/index.html @@ -18,9 +18,9 @@-错误类型
{{jsxref("InternalError","内部错误")}}.
-什么地方出错了?
+什么地方出错了?
-一个调用自身的函数被称作递归函数。一些情况下,递归函数类似于一个循环,都重复地执行一个代码段许多次,都需要一个条件(用于避免无尽循环或此处的无尽递归)。当出现过于深层的递归或无尽递归时,JavaScript将会抛出此错误。
+一个调用自身的函数被称作递归函数。一些情况下,递归函数类似于一个循环,都重复地执行一个代码段许多次,都需要一个条件(用于避免无尽循环或此处的无尽递归)。当出现过于深层的递归或无尽递归时,JavaScript 将会抛出此错误。
示例
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 index 722965d574356a..b46a6a9c9a4f78 100644 --- a/files/zh-cn/web/javascript/reference/errors/undeclared_var/index.html +++ b/files/zh-cn/web/javascript/reference/errors/undeclared_var/index.html @@ -22,7 +22,7 @@错误类型
仅在严格模式中出现 {{jsxref("ReferenceError")}} 警告。
-发生了什么?
+发生了什么?
在代码里赋值了一个未声明的变量。换句话说,有处没有带着
diff --git a/files/zh-cn/web/javascript/reference/errors/undefined_prop/index.html b/files/zh-cn/web/javascript/reference/errors/undefined_prop/index.html index 9cda2d050156b1..ccf31377e64879 100644 --- a/files/zh-cn/web/javascript/reference/errors/undefined_prop/index.html +++ b/files/zh-cn/web/javascript/reference/errors/undefined_prop/index.html @@ -20,7 +20,7 @@var
关键字的赋值。事实上已声明的和未声明的变量之间有一些差异,这可能会导致意想不到的结果,这就是为什么 JavaScript 在严格模式打印出这种错误。错误类型
仅在 strict mode 下出现 {{jsxref("ReferenceError")}} 警告。
-哪里出错了?
+哪里出错了?
脚本尝试去访问一个不存在的对象属性。property accessors 页面描述了两种访问属性的方法。
diff --git a/files/zh-cn/web/javascript/reference/errors/unexpected_token/index.html b/files/zh-cn/web/javascript/reference/errors/unexpected_token/index.html index 3de534c36a44c1..960f76d1188cc0 100644 --- a/files/zh-cn/web/javascript/reference/errors/unexpected_token/index.html +++ b/files/zh-cn/web/javascript/reference/errors/unexpected_token/index.html @@ -23,7 +23,7 @@错误类型
{{jsxref("SyntaxError")}}
-哪里出错了?
+哪里出错了?
期望获得一个特定的语法结构,但得到了其他的。 可能只是一个简单的错字。
diff --git a/files/zh-cn/web/javascript/reference/errors/unexpected_type/index.html b/files/zh-cn/web/javascript/reference/errors/unexpected_type/index.html index c90cb20c276246..a2a4849ac6cb2d 100644 --- a/files/zh-cn/web/javascript/reference/errors/unexpected_type/index.html +++ b/files/zh-cn/web/javascript/reference/errors/unexpected_type/index.html @@ -23,7 +23,7 @@错误类型
{{jsxref("TypeError")}}.
-什么地方出错了?
+什么地方出错了?
出现了与期望不符的类型。 这个错误常常由 {{jsxref("undefined")}} 或 {{jsxref("null")}} 值引起。
diff --git a/files/zh-cn/web/javascript/reference/errors/unnamed_function_statement/index.html b/files/zh-cn/web/javascript/reference/errors/unnamed_function_statement/index.html index 83d147aaab94b8..aa9808e89a0475 100644 --- a/files/zh-cn/web/javascript/reference/errors/unnamed_function_statement/index.html +++ b/files/zh-cn/web/javascript/reference/errors/unnamed_function_statement/index.html @@ -47,9 +47,9 @@语句与表达式
})();标号函数(Labeled functions)
+标号函数 (Labeled functions)
-你使用函数标号(labels)的时候, 也需要在关键词
+function
后面提供一个函数名称. 这样的代码是不能运行的:你使用函数标号 (labels)的时候,也需要在关键词
function
后面提供一个函数名称。这样的代码是不能运行的:function Greeter() { german: function () { @@ -59,7 +59,7 @@-标号函数(Labeled functions)
// SyntaxError: function statement requires a name这个例子可以正常运行:
+这个例子可以正常运行:
function Greeter() { german: function g() { diff --git a/files/zh-cn/web/javascript/reference/errors/unterminated_string_literal/index.html b/files/zh-cn/web/javascript/reference/errors/unterminated_string_literal/index.html index b0ab684413da10..9a4eed3fb9ecd4 100644 --- a/files/zh-cn/web/javascript/reference/errors/unterminated_string_literal/index.html +++ b/files/zh-cn/web/javascript/reference/errors/unterminated_string_literal/index.html @@ -32,7 +32,7 @@示例
多行字符串
-在javascript中你不能够直接使用多行字符串赋值给一个变量。如下:
+在 javascript 中你不能够直接使用多行字符串赋值给一个变量。如下:
var longString = "This is a very long string which needs to wrap across multiple lines because