From 563ca0a35e98678e2b7d5f154f31f496851e8d60 Mon Sep 17 00:00:00 2001 From: t7yang Date: Mon, 10 Jan 2022 08:38:07 +0800 Subject: remove code tag inside pre tag for zh-CN --- .../control_flow_and_error_handling/index.html | 4 ++-- .../guide/details_of_the_object_model/index.html | 2 +- .../guide/expressions_and_operators/index.html | 24 +++++++++---------- .../web/javascript/guide/functions/index.html | 28 +++++++++++----------- .../javascript/guide/grammar_and_types/index.html | 8 +++---- 5 files changed, 33 insertions(+), 33 deletions(-) (limited to 'files/zh-cn/web/javascript/guide') diff --git a/files/zh-cn/web/javascript/guide/control_flow_and_error_handling/index.html b/files/zh-cn/web/javascript/guide/control_flow_and_error_handling/index.html index aa26c47e83..5d7b3f356e 100644 --- a/files/zh-cn/web/javascript/guide/control_flow_and_error_handling/index.html +++ b/files/zh-cn/web/javascript/guide/control_flow_and_error_handling/index.html @@ -130,9 +130,9 @@ alert(x); // 输出的结果为 2

请不要混淆原始的布尔值truefalse 与 {{jsxref("Boolean")}}对象的真和假。例如:

-
var b = new Boolean(false);
+
var b = new Boolean(false);
 if (b) //结果视为真
-if (b == true) // 结果视为假
+if (b == true) // 结果视为假

示例

diff --git a/files/zh-cn/web/javascript/guide/details_of_the_object_model/index.html b/files/zh-cn/web/javascript/guide/details_of_the_object_model/index.html index ef6ace35f4..ba337d158f 100644 --- a/files/zh-cn/web/javascript/guide/details_of_the_object_model/index.html +++ b/files/zh-cn/web/javascript/guide/details_of_the_object_model/index.html @@ -600,7 +600,7 @@ Employee.prototype.name = "Unknown";

JavaScript 的属性查找机制首先在对象自身的属性中查找,如果指定的属性名称没有找到,将在对象的特殊属性 __proto__ 中查找。这个过程是递归的;被称为“在原型链中查找”。

-

特殊的 __proto__ 属性是在构建对象时设置的;设置为构造器的 prototype 属性的值。所以表达式 new Foo() 将创建一个对象,其 __proto__ == Foo.prototype。因而,修改 Foo.prototype 的属性,将改变所有通过 new Foo() 创建的对象的属性的查找。

+

特殊的 __proto__ 属性是在构建对象时设置的;设置为构造器的 prototype 属性的值。所以表达式 new Foo() 将创建一个对象,其 __proto__ == Foo.prototype。因而,修改 Foo.prototype 的属性,将改变所有通过 new Foo() 创建的对象的属性的查找。

每个对象都有一个 __proto__ 对象属性(除了 Object);每个函数都有一个 prototype 对象属性。因此,通过“原型继承”,对象与其它对象之间形成关系。通过比较对象的 __proto__ 属性和函数的 prototype 属性可以检测对象的继承关系。JavaScript 提供了便捷方法:instanceof 操作符可以用来将一个对象和一个函数做检测,如果对象继承自函数的原型,则该操作符返回真。例如:

diff --git a/files/zh-cn/web/javascript/guide/expressions_and_operators/index.html b/files/zh-cn/web/javascript/guide/expressions_and_operators/index.html index 8f45880006..bced40f16d 100644 --- a/files/zh-cn/web/javascript/guide/expressions_and_operators/index.html +++ b/files/zh-cn/web/javascript/guide/expressions_and_operators/index.html @@ -136,7 +136,7 @@ translation_of: Web/JavaScript/Guide/Expressions_and_Operators

对于更复杂的赋值,解构赋值语法是一个能从数组或对象对应的数组结构或对象字面量里提取数据的 Javascript 表达式。

-
var foo = ["one", "two", "three"];
+
var foo = ["one", "two", "three"];
 
 // 不使用解构
 var one   = foo[0];
@@ -144,14 +144,14 @@ var two   = foo[1];
 var three = foo[2];
 
 // 使用解构
-var [one, two, three] = foo;
+var [one, two, three] = foo;

比较运算符

比较运算符比较它的操作数并返回一个基于表达式是否为真的逻辑值。操作数可以是数字,字符串,逻辑,对象值。字符串比较是基于标准的字典顺序,使用Unicode值。在多数情况下,如果两个操作数不是相同的类型, JavaScript 会尝试转换它们为恰当的类型来比较。这种行为通常发生在数字作为操作数的比较。类型转换的例外是使用 ===!== 操作符,它们会执行严格的相等和不相等比较。这些运算符不会在检查相等之前转换操作数的类型。下面的表格描述了该示例代码中的各比较运算符

-
var var1 = 3;
-var var2 = 4;
+
var var1 = 3;
+var var2 = 4;
@@ -551,7 +551,7 @@ var n3 = !"Cat"; // !t returns false

例如,

-
console.log("my " + "string"); // console logs the string "my string".
+
console.log("my " + "string"); // console logs the string "my string".

简写操作符 += 也可以用来拼接字符串,例如:

@@ -719,12 +719,12 @@ void expression

如下创建了一个超链接文本,当用户单击该文本时,不会有任何效果。

-
<a href="javascript:void(0)">Click here to do nothing</a>
+
<a href="javascript:void(0)">Click here to do nothing</a>

下面的代码创建了一个超链接,当用户单击它时,提交一个表单。

-
<a href="javascript:void(document.form.submit())">
-Click here to submit</a>
+
<a href="javascript:void(document.form.submit())">
+Click here to submit</a>

关系操作符

@@ -913,7 +913,7 @@ this.propertyName

分组操作符()控制了表达式中计算的优先级. 举例来说, 你可以改变先乘除后加减的顺序,转而先计算加法。

-
var a = 1;
+
var a = 1;
 var b = 2;
 var c = 3;
 
@@ -926,7 +926,7 @@ a + (b * c)   // 7
 (a + b) * c   // 9
 
 // 这等价于
-a * c + b * c // 9
+a * c + b * c // 9
数值推导
@@ -941,12 +941,12 @@ a * c + b * c // 9

Comprehensions特性被许多编程语言所采用,该特性能够使你快速地通过一个已有的数组来创建出一个新的数组,比如:

-
[for (i of [ 1, 2, 3 ]) i*i ];
+
[for (i of [ 1, 2, 3 ]) i*i ];
 // [ 1, 4, 9 ]
 
 var abc = [ "A", "B", "C" ];
 [for (letters of abc) letters.toLowerCase()];
-// [ "a", "b", "c" ]
+// [ "a", "b", "c" ]

左值表达式

diff --git a/files/zh-cn/web/javascript/guide/functions/index.html b/files/zh-cn/web/javascript/guide/functions/index.html index f80d65ce3b..73a1efbdc4 100644 --- a/files/zh-cn/web/javascript/guide/functions/index.html +++ b/files/zh-cn/web/javascript/guide/functions/index.html @@ -85,7 +85,7 @@ console.log(factorial(3));

下面的代码:

-
function map(f, a) {
+
function map(f, a) {
   let result = []; // 创建一个数组
   let i; // 声明一个值,用来循环
   for (i = 0; i != a.length; i++)
@@ -97,7 +97,7 @@ const f = function(x) {
 }
 let numbers = [0,1, 2, 5,10];
 let cube = map(f,numbers);
-console.log(cube);
+console.log(cube);

返回 [0, 1, 8, 125, 1000]。

@@ -136,11 +136,11 @@ function square(n) { return n*n }

提示:注意只有使用如上的语法形式(即 function funcName(){})才可以。而下面的代码是无效的。就是说,函数提升仅适用于函数声明,而不适用于函数表达式。

-
console.log(square); // square is hoisted with an initial value undefined.
+
console.log(square); // square is hoisted with an initial value undefined.
 console.log(square(5)); // Uncaught TypeError: square is not a function
 const square = function (n) {
   return n * n;
-}
+}

函数的参数并不局限于字符串或数字。你也可以将整个对象传递给函数。函数 show_props(其定义参见 用对象编程)就是一个将对象作为参数的例子。

@@ -468,7 +468,7 @@ getCode(); // Returns the secret code

例如,设想有一个用来连接字符串的函数。唯一事先确定的参数是在连接后的字符串中用来分隔各个连接部分的字符(译注:比如例子里的分号“;”)。该函数定义如下:

-
function myConcat(separator) {
+
function myConcat(separator) {
    var result = ''; // 把值初始化成一个字符串,这样就可以用来保存字符串了!!
    var i;
    // iterate through arguments
@@ -476,7 +476,7 @@ getCode();    // Returns the secret code
       result += arguments[i] + separator;
    }
    return result;
-}
+}

你可以给这个函数传递任意数量的参数,它会将各个参数连接成一个字符串“列表”:

@@ -544,7 +544,7 @@ console.log(arr); // [2, 4, 6]

在一些函数模式中,更简洁的函数很受欢迎。对比一下:

-
var a = [
+
var a = [
   "Hydrogen",
   "Helium",
   "Lithium",
@@ -557,13 +557,13 @@ console.log(a2); // logs [ 8, 6, 7, 9 ]
 
 var a3 = a.map( s => s.length );
 
-console.log(a3); // logs [ 8, 6, 7, 9 ]
+console.log(a3); // logs [ 8, 6, 7, 9 ]

this 的词法

在箭头函数出现之前,每一个新函数都重新定义了自己的 this 值(在构造函数中是一个新的对象;在严格模式下是未定义的;在作为“对象方法”调用的函数中指向这个对象;等等)。以面向对象的编程风格,这样着实有点恼人。

-
function Person() {
+
function Person() {
   // 构造函数Person()将`this`定义为自身
   this.age = 0;
 
@@ -575,11 +575,11 @@ console.log(a3); // logs [ 8, 6, 7, 9 ]
}, 1000); } -var p = new Person();
+var p = new Person();

在ECMAScript 3/5里,通过把this的值赋值给一个变量可以修复这个问题。

-
function Person() {
+
function Person() {
   var self = this; // 有的人习惯用`that`而不是`self`,
                    // 无论你选择哪一种方式,请保持前后代码的一致性
   self.age = 0;
@@ -588,13 +588,13 @@ var p = new Person();
// 以下语句可以实现预期的功能 self.age++; }, 1000); -}
+}

另外,创建一个约束函数可以使得 this值被正确传递给 growUp() 函数。

箭头函数捕捉闭包上下文的this值,所以下面的代码工作正常。

-
function Person(){
+
function Person(){
   this.age = 0;
 
   setInterval(() => {
@@ -602,7 +602,7 @@ var p = new Person();
}, 1000); } -var p = new Person();
+var p = new Person();

预定义函数

diff --git a/files/zh-cn/web/javascript/guide/grammar_and_types/index.html b/files/zh-cn/web/javascript/guide/grammar_and_types/index.html index 916abc0139..7fb7d70567 100644 --- a/files/zh-cn/web/javascript/guide/grammar_and_types/index.html +++ b/files/zh-cn/web/javascript/guide/grammar_and_types/index.html @@ -441,7 +441,7 @@ console.log(a[0]); // 3

简言之,其语法是:

-
[(+|-)][digits][.digits][(E|e)[(+|-)]digits]
+
[(+|-)][digits][.digits][(E|e)[(+|-)]digits]

例如:

@@ -495,7 +495,7 @@ console.log(unusualPropertyNames["!"]); // Bang!

在ES2015,对象字面值扩展支持在创建时设置原型,简写了 foo: foo 形式的属性赋值,方法定义,支持父方法调用,以及使用表达式动态计算属性名。总之,这些也使对象字面值和类声明更加紧密地联系起来,让基于对象的设计从这些便利中更加受益。

-
var obj = {
+
var obj = {
     // __proto__
     __proto__: theProtoObj,
     // Shorthand for ‘handler: handler’
@@ -507,7 +507,7 @@ console.log(unusualPropertyNames["!"]); // Bang!
}, // Computed (dynamic) property names [ 'prop_' + (() => 42)() ]: 42 -};
+};

请注意:

@@ -523,7 +523,7 @@ console.log(foo["2"]); // two

一个正则表达式是字符被斜线(译注:正斜杠“/”)围成的表达式。下面是一个正则表达式文字的一个例子。

-
var re = /ab+c/;
+
var re = /ab+c/;

字符串字面量 (String literals)

-- cgit v1.2.3-54-g00ecf
比较运算符