diff options
author | Irvin <irvinfly@gmail.com> | 2022-02-16 02:02:49 +0800 |
---|---|---|
committer | Irvin <irvinfly@gmail.com> | 2022-02-16 02:35:54 +0800 |
commit | 01b0e12ba27b5069248fd09235e9a7143915ee30 (patch) | |
tree | 0e9edf538dc3fa3331e1dbb79239b58186765f86 /files/zh-cn/web/javascript/reference/statements | |
parent | 6ca84f1794af830ada9736d7289ce29aabb04ca3 (diff) | |
download | translated-content-01b0e12ba27b5069248fd09235e9a7143915ee30.tar.gz translated-content-01b0e12ba27b5069248fd09235e9a7143915ee30.tar.bz2 translated-content-01b0e12ba27b5069248fd09235e9a7143915ee30.zip |
remove `notranslate` class in zh-CN
Diffstat (limited to 'files/zh-cn/web/javascript/reference/statements')
11 files changed, 98 insertions, 98 deletions
diff --git a/files/zh-cn/web/javascript/reference/statements/async_function/index.html b/files/zh-cn/web/javascript/reference/statements/async_function/index.html index 37aad08974..b4bdd88173 100644 --- a/files/zh-cn/web/javascript/reference/statements/async_function/index.html +++ b/files/zh-cn/web/javascript/reference/statements/async_function/index.html @@ -23,7 +23,7 @@ translation_of: Web/JavaScript/Reference/Statements/async_function <h2 id="语法">语法</h2> -<pre class="syntaxbox notranslate">async function <em>name</em>([<em>param</em>[, <em>param</em>[, ... <em>param</em>]]]) { +<pre class="syntaxbox">async function <em>name</em>([<em>param</em>[, <em>param</em>[, ... <em>param</em>]]]) { <em> statements </em> } </pre> @@ -65,14 +65,14 @@ translation_of: Web/JavaScript/Reference/Statements/async_function <p>例如,如下代码:</p> -<pre class="syntaxbox notranslate">async function <var>foo</var>() { +<pre class="syntaxbox">async function <var>foo</var>() { <var>return 1</var> } </pre> <p>等价于:</p> -<pre class="syntaxbox notranslate">function <var>foo</var>() { +<pre class="syntaxbox">function <var>foo</var>() { <var>return Promise.resolve(1)</var> } </pre> @@ -81,14 +81,14 @@ translation_of: Web/JavaScript/Reference/Statements/async_function <p>例如:</p> -<pre class="syntaxbox notranslate">async function <var>foo</var>() { +<pre class="syntaxbox">async function <var>foo</var>() { <var>await 1</var> } </pre> <p>等价于</p> -<pre class="syntaxbox notranslate">function <var>foo</var>() { +<pre class="syntaxbox">function <var>foo</var>() { <var>return Promise.resolve(1).then(() => undefined)</var> } </pre> @@ -103,7 +103,7 @@ translation_of: Web/JavaScript/Reference/Statements/async_function <li>一段时间后,同样当第二个promise完结的时候,<code>result2</code>将被赋值为<code>2</code>,之后函数将会正常同步执行,将默认返回<code>undefined</code> 。</li> </ol> -<pre class="notranslate">async function <var>foo</var>() { +<pre>async function <var>foo</var>() { const result1 = <var>await new Promise((resolve) => setTimeout(() => resolve('1'))) </var> const result2 = <var>await new Promise((resolve) => setTimeout(() => resolve('2')))</var> } @@ -113,7 +113,7 @@ foo()</pre> <p>例如,在下面的代码中,在promise链上配置了<code>.catch</code>处理程序,将抛出未处理的promise错误。这是因为<code>p2</code>返回的结果不会被await处理。</p> -<pre class="notranslate">async function <var>foo</var>() { +<pre>async function <var>foo</var>() { const p1 = <var>new Promise((resolve) => setTimeout(() => resolve('1'), 1000)) </var> const p2 = <var>new Promise((_,reject) => setTimeout(() => reject('2'), 500)) const results = [await p1, await p2] // 不推荐使用这种方式,请使用 Promise.all或者Promise.allSettled </var> @@ -126,7 +126,7 @@ foo().catch(() => {}) // 捕捉所有的错误...</pre> <h3 id="简单例子">简单例子</h3> -<pre class="brush: js notranslate">var resolveAfter2Seconds = function() { +<pre class="brush: js">var resolveAfter2Seconds = function() { console.log("starting slow promise"); return new Promise(resolve => { setTimeout(function() { @@ -238,7 +238,7 @@ setTimeout(parallelPromise, 13000); // same as parallel <p>返回 {{jsxref("Promise")}}的 API 将会产生一个 promise 链,它将函数肢解成许多部分。例如下面的代码:</p> -<pre class="brush: js notranslate">function getProcessedData(url) { +<pre class="brush: js">function getProcessedData(url) { return downloadData(url) // 返回一个 promise 对象 .catch(e => { return downloadFallbackData(url) // 返回一个 promise 对象 @@ -250,7 +250,7 @@ setTimeout(parallelPromise, 13000); // same as parallel <p>可以重写为单个async函数:</p> -<pre class="brush: js notranslate">async function getProcessedData(url) { +<pre class="brush: js">async function getProcessedData(url) { let v; try { v = await downloadData(url); @@ -270,7 +270,7 @@ setTimeout(parallelPromise, 13000); // same as parallel <p>看下下面重写的上面代码,在<code>processDataInWorker</code>抛出异常时返回了null:</p> -<pre class="notranslate"><code>async function getProcessedData(url) { +<pre><code>async function getProcessedData(url) { let v; try { v = await downloadData(url); diff --git a/files/zh-cn/web/javascript/reference/statements/break/index.html b/files/zh-cn/web/javascript/reference/statements/break/index.html index 25d8964e32..c0297dbb86 100644 --- a/files/zh-cn/web/javascript/reference/statements/break/index.html +++ b/files/zh-cn/web/javascript/reference/statements/break/index.html @@ -14,7 +14,7 @@ translation_of: Web/JavaScript/Reference/Statements/break <h2 id="语法">语法</h2> -<pre class="syntaxbox notranslate"><code>break [label];</code></pre> +<pre class="syntaxbox"><code>break [label];</code></pre> <dl> <dt><code>label</code> {{optional_inline}}</dt> @@ -33,7 +33,7 @@ translation_of: Web/JavaScript/Reference/Statements/break <p>下面的函数里有个 <code>break</code> 语句,当 <code>i</code> 为 3 时,会中止 {{jsxref("Statements/while", "while")}} 循环,然后返回 3 * <code>x</code> 的值。</p> -<pre class="brush: js notranslate"><code class="language-js">function testBreak(x) { +<pre class="brush: js"><code class="language-js">function testBreak(x) { var i = 0; while (i < 6) { @@ -50,7 +50,7 @@ translation_of: Web/JavaScript/Reference/Statements/break <p>在下面的代码中, <code>break</code> 使用在 {{jsxref("Statements/switch", "switch")}} 语句中,当遇到匹配到case后,就会执行相应的代码并中断循环体。</p> -<pre class="notranslate">const food = "sushi"; +<pre>const food = "sushi"; switch (food) { case "sushi": @@ -68,7 +68,7 @@ switch (food) { <p>下面的代码中一起使用 <code>break</code> 语句和被标记的块语句。一个 <code>break</code> 语句必须内嵌在它引用的标记中。注意,<code>inner_block</code> 内嵌在 <code>outer_block</code> 中。</p> -<pre class="brush:js;highlight:[1,3,5]; notranslate">outer_block:{ +<pre class="brush:js;highlight:[1,3,5];">outer_block:{ inner_block:{ console.log ('1'); @@ -84,7 +84,7 @@ switch (food) { <p>下面的代码同样使用了 <code>break</code> 语句和被标记的块语句,但是产生了一个语法错误,因为它的 <code>break</code> 语句在 <code>block_1</code> 中,但是引用了 <code>block_2</code>。<code>break</code> 语句必须内嵌在它引用的标签中。</p> -<pre class="brush:js;highlight:[1,3,6]; notranslate">block_1:{ +<pre class="brush:js;highlight:[1,3,6];">block_1:{ console.log ('1'); break block_2; // SyntaxError: label not found } @@ -98,7 +98,7 @@ block_2:{ <p>在下面的代码同样会产生SyntaxError,因为它并没被正确的使用在循环、switch或label语句中。</p> -<pre class="notranslate">function testBreak(x) { +<pre>function testBreak(x) { var i = 0; while (i < 6) { @@ -116,7 +116,7 @@ return i * x; testBreak(1); // SyntaxError: Illegal break statement </pre> -<pre class="notranslate">block_1: { +<pre>block_1: { console.log('1'); ( function() { break block_1; // SyntaxError: Undefined label 'block_1' diff --git a/files/zh-cn/web/javascript/reference/statements/const/index.html b/files/zh-cn/web/javascript/reference/statements/const/index.html index b096efd17f..de8e0c7f39 100644 --- a/files/zh-cn/web/javascript/reference/statements/const/index.html +++ b/files/zh-cn/web/javascript/reference/statements/const/index.html @@ -19,7 +19,7 @@ translation_of: Web/JavaScript/Reference/Statements/const <h2 id="语法">语法</h2> -<pre class="syntaxbox notranslate">const <em>name1 = <em>value1 [</em>, <em>name2</em> = <em>value2</em><em> [</em>, ... [</em>, <em>nameN</em> = <em>valueN]]]</em>;</pre> +<pre class="syntaxbox">const <em>name1 = <em>value1 [</em>, <em>name2</em> = <em>value2</em><em> [</em>, ... [</em>, <em>nameN</em> = <em>valueN]]]</em>;</pre> <dl> <dt><code>nameN</code></dt> @@ -44,7 +44,7 @@ translation_of: Web/JavaScript/Reference/Statements/const <p>常量在声明的时候可以使用大小写,但通常情况下全部用大写字母。</p> -<pre class="brush: js; notranslate">// 定义常量MY_FAV并赋值7 +<pre class="brush: js;">// 定义常量MY_FAV并赋值7 const MY_FAV = 7; // 报错 - Uncaught TypeError: Assignment to constant variable. @@ -69,7 +69,7 @@ let MY_FAV = 20; <p>注意块作用域的性质很重要</p> -<pre class="brush: js notranslate">if (MY_FAV === 7) { +<pre class="brush: js">if (MY_FAV === 7) { // 没问题,并且创建了一个块作用域变量 MY_FAV // (works equally well with let to declare a block scoped non const variable) let MY_FAV = 20; @@ -87,7 +87,7 @@ console.log('my favorite number is ' + MY_FAV); <h3 id="常量要求一个初始值">常量要求一个初始值</h3> -<pre class="brush: js notranslate">// 报错 +<pre class="brush: js">// 报错 // Uncaught SyntaxError: Missing initializer in const declaration const FOO; @@ -97,7 +97,7 @@ const FOO; <p>常量可以定义成对象和数组</p> -<pre class="brush: js notranslate">const MY_OBJECT = {'key': 'value'}; +<pre class="brush: js">const MY_OBJECT = {'key': 'value'}; // 重写对象和上面一样会失败 // Uncaught TypeError: Assignment to constant variable. diff --git a/files/zh-cn/web/javascript/reference/statements/export/index.html b/files/zh-cn/web/javascript/reference/statements/export/index.html index 2eb0086a2f..f2a8e5a226 100644 --- a/files/zh-cn/web/javascript/reference/statements/export/index.html +++ b/files/zh-cn/web/javascript/reference/statements/export/index.html @@ -24,7 +24,7 @@ translation_of: Web/JavaScript/Reference/Statements/export <li>默认导出(每个模块包含一个)</li> </ol> -<pre class="brush: js notranslate">// 导出单个特性 +<pre class="brush: js">// 导出单个特性 export let <em>name1</em>, <em>name2</em>, …, <em>nameN</em>; // also var, const export let <em>name1</em> = …, <em>name2</em> = …, …, <em>nameN</em>; // also var, const export function FunctionName(){...} @@ -63,7 +63,7 @@ export { default } from …;</pre> <p>命名导出:</p> -<pre class="brush: js notranslate">// 导出事先定义的特性 +<pre class="brush: js">// 导出事先定义的特性 export { myFunction,myVariable }; // 导出单个特性(可以导出var,let, @@ -73,7 +73,7 @@ export function myFunction() { ... };</pre> <p>默认导出:</p> -<pre class="brush: js notranslate">// 导出事先定义的特性作为默认值 +<pre class="brush: js">// 导出事先定义的特性作为默认值 export { myFunction as default }; // 导出单个特性作为默认值 @@ -86,16 +86,16 @@ export default class { .. } <p>但是,可以使用任何名称导入默认导出,例如:</p> -<pre class="brush: js notranslate">// 文件 test.js +<pre class="brush: js">// 文件 test.js let k; export default k = 12; </pre> -<pre class="brush: js notranslate">// 另一个文件 +<pre class="brush: js">// 另一个文件 import m from './test'; // 由于 k 是默认导出,所以可以自由使用 import m 替代 import k console.log(m); // 输出为 12 </pre> <p> 你也可以重命名命名导出以避免命名冲突:</p> -<pre class="brush: js notranslate">export { <var>myFunction</var> as <var>function1</var>,<var> +<pre class="brush: js">export { <var>myFunction</var> as <var>function1</var>,<var> myVariable</var> as variable };</pre> <h3 id="重导出_聚合">重导出 / 聚合</h3> @@ -104,13 +104,13 @@ console.log(m); // 输出为 12 </pre> <p>这个可以使用“export from”语法实现:</p> -<pre class="brush: js notranslate">export { default as function1, +<pre class="brush: js">export { default as function1, function2 } from 'bar.js'; </pre> <p>与之形成对比的是联合使用导入和导出:</p> -<pre class="brush: js notranslate">import { default as function1, +<pre class="brush: js">import { default as function1, function2 } from 'bar.js'; export { function1, function2 }; </pre> @@ -121,14 +121,14 @@ export { function1, function2 }; <p>注意:尽管与import等效,但以下语法在语法上无效:</p> </div> -<pre class="brush: js notranslate">import DefaultExport from 'bar.js'; // 有效的 +<pre class="brush: js">import DefaultExport from 'bar.js'; // 有效的 </pre> -<pre class="brush: js notranslate">export DefaultExport from 'bar.js'; // 无效的</pre> +<pre class="brush: js">export DefaultExport from 'bar.js'; // 无效的</pre> <p>这里正确的做法是重命名这个导出:</p> -<pre class="brush: js notranslate">export { default as DefaultExport } from 'bar.js';</pre> +<pre class="brush: js">export { default as DefaultExport } from 'bar.js';</pre> <h2 id="示例">示例</h2> @@ -136,7 +136,7 @@ export { function1, function2 }; <p>在模块 <code>my-module.js</code> 中,可能包含以下代码:</p> -<pre class="brush: js notranslate">// module "my-module.js" +<pre class="brush: js">// module "my-module.js" function cube(x) { return x * x * x; } @@ -158,7 +158,7 @@ export { cube, foo, graph }; <p>然后,在你的 HTML 页面的顶级模块中:</p> -<pre class="brush: js notranslate">import { cube, foo, graph } from 'my-module.js'; +<pre class="brush: js">import { cube, foo, graph } from 'my-module.js'; graph.options = { color:'blue', @@ -180,7 +180,7 @@ console.log(foo); // 4.555806215962888</pre> <p>如果我们要导出一个值或得到模块中的返回值,就可以使用默认导出:</p> -<pre class="brush: js notranslate">// module "my-module.js" +<pre class="brush: js">// module "my-module.js" export default function cube(x) { return x * x * x; @@ -189,7 +189,7 @@ export default function cube(x) { <p>然后,在另一个脚本中,可以直接导入默认导出:</p> -<pre class="brush: js notranslate">import cube from './my-module.js'; +<pre class="brush: js">import cube from './my-module.js'; console.log(cube(3)); // 27 </pre> @@ -206,24 +206,24 @@ console.log(cube(3)); // 27 <p>你的代码看起来应该像这样:</p> -<pre class="brush: js notranslate">// childModule1.js 中 +<pre class="brush: js">// childModule1.js 中 let myFunction = ...; // assign something useful to myFunction let myVariable = ...; // assign something useful to myVariable export {myFunction, myVariable};</pre> -<pre class="brush: js notranslate">// childModule2.js 中 +<pre class="brush: js">// childModule2.js 中 let myClass = ...; // assign something useful to myClass export myClass; </pre> -<pre class="brush: js notranslate">// parentModule.js 中 +<pre class="brush: js">// parentModule.js 中 // 仅仅聚合 childModule1 和 childModule2 中的导出 // 以重新导出他们 export { myFunction, myVariable } from 'childModule1.js'; export { myClass } from 'childModule2.js'; </pre> -<pre class="brush: js notranslate">// 顶层模块中 +<pre class="brush: js">// 顶层模块中 // 我们可以从单个模块调用所有导出,因为 parentModule 事先 // 已经将他们“收集”/“打包”到一起 import { myFunction, myVariable, myClass } from 'parentModule.js' diff --git a/files/zh-cn/web/javascript/reference/statements/for-await...of/index.html b/files/zh-cn/web/javascript/reference/statements/for-await...of/index.html index 247677e1b9..597426a1fc 100644 --- a/files/zh-cn/web/javascript/reference/statements/for-await...of/index.html +++ b/files/zh-cn/web/javascript/reference/statements/for-await...of/index.html @@ -28,7 +28,7 @@ translation_of: Web/JavaScript/Reference/Statements/for-await...of <h2 id="语法">语法</h2> -<pre class="syntaxbox notranslate">for await (<em>variable</em> of <em>iterable</em>) { +<pre class="syntaxbox">for await (<em>variable</em> of <em>iterable</em>) { <em>statement </em>} </pre> @@ -46,7 +46,7 @@ translation_of: Web/JavaScript/Reference/Statements/for-await...of <p>你还可以迭代一个明确实现异步迭代协议的对象:</p> -<pre class="brush:js notranslate">var asyncIterable = { +<pre class="brush:js">var asyncIterable = { [Symbol.asyncIterator]() { return { i: 0, @@ -76,7 +76,7 @@ translation_of: Web/JavaScript/Reference/Statements/for-await...of <p>异步生成器已经实现了异步迭代器协议, 所以可以用 <code>for await...of</code>循环。</p> -<pre class="brush: js notranslate">async function* asyncGenerator() { +<pre class="brush: js">async function* asyncGenerator() { var i = 0; while (i < 3) { yield i++; @@ -94,7 +94,7 @@ translation_of: Web/JavaScript/Reference/Statements/for-await...of <p>有关使用<code>for await... of</code>考虑迭代API中获取数据的异步 generator 更具体的例子。这个例子首先为一个数据流创建了一个异步 generator,然后使用它来获得这个API的响应值的大小。</p> -<pre class="brush: js notranslate">async function* streamAsyncIterator(stream) { +<pre class="brush: js">async function* streamAsyncIterator(stream) { const reader = stream.getReader(); try { while (true) { diff --git a/files/zh-cn/web/javascript/reference/statements/for...in/index.html b/files/zh-cn/web/javascript/reference/statements/for...in/index.html index 7254cda762..b1ec38f6ef 100644 --- a/files/zh-cn/web/javascript/reference/statements/for...in/index.html +++ b/files/zh-cn/web/javascript/reference/statements/for...in/index.html @@ -12,7 +12,7 @@ translation_of: Web/JavaScript/Reference/Statements/for...in <h2 id="Syntax" name="Syntax">语法</h2> -<pre class="notranslate">for (<var>variable</var> in <var>object</var>) +<pre>for (<var>variable</var> in <var>object</var>) statement</pre> <dl> @@ -47,7 +47,7 @@ translation_of: Web/JavaScript/Reference/Statements/for...in <p>下面的函数接受一个对象作为参数。被调用时迭代传入对象的所有可枚举属性然后返回一个所有属性名和其对应值的字符串。</p> -<pre class="brush: js notranslate">var obj = {a:1, b:2, c:3}; +<pre class="brush: js">var obj = {a:1, b:2, c:3}; for (var prop in obj) { console.log("obj." + prop + " = " + obj[prop]); @@ -60,7 +60,7 @@ for (var prop in obj) { <p>下面的函数说明了{{jsxref("Object.prototype.hasOwnProperty", "hasOwnProperty()")}}的用法:继承的属性不显示。</p> -<pre class="brush: js notranslate">var triangle = {a: 1, b: 2, c: 3}; +<pre class="brush: js">var triangle = {a: 1, b: 2, c: 3}; function ColoredTriangle() { this.color = 'red'; @@ -124,7 +124,7 @@ for (var prop in obj) { <p>在 SpiderMonkey 40 {{geckoRelease(40)}} 版本之前,可以在使用一个初始化表达式(<code>i=0</code>)在一个<code>for...in</code>循环中:</p> -<pre class="brush: js example-bad notranslate">var obj = {a: 1, b: 2, c: 3}; +<pre class="brush: js example-bad">var obj = {a: 1, b: 2, c: 3}; for (var i = 0 in obj) { console.log(obj[i]); } diff --git a/files/zh-cn/web/javascript/reference/statements/function/index.html b/files/zh-cn/web/javascript/reference/statements/function/index.html index dc052a53d0..0ab978503d 100644 --- a/files/zh-cn/web/javascript/reference/statements/function/index.html +++ b/files/zh-cn/web/javascript/reference/statements/function/index.html @@ -21,7 +21,7 @@ translation_of: Web/JavaScript/Reference/Statements/function <h2 id="语法">语法</h2> -<pre class="eval notranslate">function <em>name</em>([<em>param</em>,[, <em>param</em>,[..., <em>param</em>]]]) { +<pre class="eval">function <em>name</em>([<em>param</em>,[, <em>param</em>,[..., <em>param</em>]]]) { [<em>statements</em>] } </pre> @@ -55,7 +55,7 @@ translation_of: Web/JavaScript/Reference/Statements/function <p>函数可以被有条件来声明,这意味着,函数声明可能出现在一个 if 语句里,但是,这种声明方式在不同的浏览器里可能有不同的效果。因此,不应该在生产环境代码中使用这种声明方式,应该使用函数表达式来代替。</p> -<pre class="brush: js notranslate"><code>var hoisted = "foo" in this; +<pre class="brush: js"><code>var hoisted = "foo" in this; console.log(`'foo' name ${hoisted ? "is" : "is not"} hoisted. typeof foo is ${typeof foo}`); if (false) { function foo(){ return 1; } @@ -75,7 +75,7 @@ if (false) { <p>注意,即使把上面代码中的 if(false) 改为 if(true),结果也是一样的</p> -<pre class="brush: js notranslate"><code>var hoisted = "foo" in this; +<pre class="brush: js"><code>var hoisted = "foo" in this; console.log(`'foo' name ${hoisted ? "is" : "is not"} hoisted. typeof foo is ${typeof foo}`); if (true) { function foo(){ return 1; } @@ -98,7 +98,7 @@ if (true) { <p>JavaScript 中的<strong>函数声明</strong>被提升到了<strong>函数定义</strong>。你可以在函数声明之前使用该函数:</p> -<pre class="brush: js language-js notranslate"><code class="language-js" style="direction: ltr; white-space: pre;">hoisted(); // logs "foo" +<pre class="brush: js language-js"><code class="language-js" style="direction: ltr; white-space: pre;">hoisted(); // logs "foo" function hoisted() { console.log('foo'); @@ -109,7 +109,7 @@ function hoisted() { <p>注意 :<strong>函数表达式</strong>{{jsxref("Operators/function", "function expressions")}} 不会被提升:</p> </div> -<pre class="brush: js language-js notranslate"><code class="language-js" style="direction: ltr; white-space: pre;">notHoisted(); // TypeError: notHoisted is not a function +<pre class="brush: js language-js"><code class="language-js" style="direction: ltr; white-space: pre;">notHoisted(); // TypeError: notHoisted is not a function var notHoisted = function() { console.log('bar'); @@ -122,7 +122,7 @@ var notHoisted = function() { <p>下面的代码声明了一个函数,该函数返回了销售的总金额, 参数是产品a,b,c分别的销售的数量.</p> -<pre class="brush: js language-js notranslate"><code class="language-js" style="direction: ltr; white-space: pre;">function calc_sales(units_a, units_b, units_c) {functionfunctionfunctionfunctionfunctionfunctionfunctionfunctionfunctionfunctionfunction +<pre class="brush: js language-js"><code class="language-js" style="direction: ltr; white-space: pre;">function calc_sales(units_a, units_b, units_c) {functionfunctionfunctionfunctionfunctionfunctionfunctionfunctionfunctionfunctionfunction return units_a*79 + units_b * 129 + units_c * 699; }</code></pre> diff --git a/files/zh-cn/web/javascript/reference/statements/import/index.html b/files/zh-cn/web/javascript/reference/statements/import/index.html index eac05517ff..8daa4187e2 100644 --- a/files/zh-cn/web/javascript/reference/statements/import/index.html +++ b/files/zh-cn/web/javascript/reference/statements/import/index.html @@ -21,7 +21,7 @@ translation_of: Web/JavaScript/Reference/Statements/import <p>语法</p> -<pre class="syntaxbox brush: js notranslate">import <em>defaultExport</em> from "<em>module-name</em>"; +<pre class="syntaxbox brush: js">import <em>defaultExport</em> from "<em>module-name</em>"; import * as <em>name</em> from "<em>module-name</em>"; import { <em>export </em>} from "<em>module-name</em>"; import { <em>export</em> as <em>alias </em>} from "<em>module-name</em>"; @@ -55,37 +55,37 @@ var promise = import("module-name");//这是一个处于第三阶段的提案。 <p>这将<code>myModule</code>插入当前作用域,其中包含来自位于<code>/modules/my-module.js</code>文件中导出的所有接口。</p> -<pre class="brush: js notranslate">import * as myModule from '/modules/my-module.js'; +<pre class="brush: js">import * as myModule from '/modules/my-module.js'; </pre> <p>在这里,访问导出接口意味着使用模块名称(在本例为“myModule”)作为命名空间。例如,如果上面导入的模块包含一个接口<code>doAllTheAmazingThings()</code>,你可以这样调用:</p> -<pre class="brush: js notranslate">myModule.doAllTheAmazingThings();</pre> +<pre class="brush: js">myModule.doAllTheAmazingThings();</pre> <h3 id="导入单个接口">导入单个接口</h3> <p>给定一个名为<code>myExport</code>的对象或值,它已经从模块<code>my-module</code>导出(因为整个模块被导出)或显式地导出(使用{{jsxref("Statements/export", "export")}}语句),将<code>myExport</code>插入当前作用域。</p> -<pre class="brush: js notranslate">import {myExport} from '/modules/my-module.js';</pre> +<pre class="brush: js">import {myExport} from '/modules/my-module.js';</pre> <h3 id="导入多个接口">导入多个接口</h3> <p>这将<code>foo</code>和<code>bar</code>插入当前作用域。</p> -<pre class="brush: js notranslate">import {foo, bar} from '/modules/my-module.js';</pre> +<pre class="brush: js">import {foo, bar} from '/modules/my-module.js';</pre> <h3 id="导入带有别名的接口">导入带有别名的接口</h3> <p>你可以在导入时重命名接口。例如,将<code>shortName</code>插入当前作用域。</p> -<pre class="brush: js notranslate">import {reallyReallyLongModuleExportName as shortName} +<pre class="brush: js">import {reallyReallyLongModuleExportName as shortName} from '/modules/my-module.js';</pre> <h3 id="导入时重命名多个接口">导入时重命名多个接口</h3> <p>使用别名导入模块的多个接口。</p> -<pre class="brush: js notranslate">import { +<pre class="brush: js">import { reallyReallyLongModuleMemberName as shortName, anotherLongModuleName as short } from '/modules/my-module.js'; @@ -95,7 +95,7 @@ var promise = import("module-name");//这是一个处于第三阶段的提案。 <p>整个模块仅为副作用(中性词,无贬义含义)而导入,而不导入模块中的任何内容(接口)。 这将运行模块中的全局代码, 但实际上不导入任何值。</p> -<pre class="brush: js notranslate">import '/modules/my-module.js';</pre> +<pre class="brush: js">import '/modules/my-module.js';</pre> <h3 id="导入默认值">导入默认值</h3> @@ -103,22 +103,22 @@ var promise = import("module-name");//这是一个处于第三阶段的提案。 <p>最简单的用法是直接导入默认值:</p> -<pre class="brush: js notranslate">import myDefault from '/modules/my-module.js';</pre> +<pre class="brush: js">import myDefault from '/modules/my-module.js';</pre> <p>也可以同时将<code>default</code>语法与上述用法(命名空间导入或命名导入)一起使用。在这种情况下,<code>default</code>导入必须首先声明。 例如:</p> -<pre class="brush: js notranslate">import myDefault, * as myModule from '/modules/my-module.js'; +<pre class="brush: js">import myDefault, * as myModule from '/modules/my-module.js'; // myModule used as a namespace</pre> <p>或者</p> -<pre class="brush: js notranslate">import myDefault, {foo, bar} from '/modules/my-module.js'; +<pre class="brush: js">import myDefault, {foo, bar} from '/modules/my-module.js'; // specific, named imports </pre> <p>当用{{anch("动态导入")}}的方式导入默认导出时,其工作方式有所不同。你需要从返回的对象中解构并重命名 "default" 键。</p> -<pre class="brush: js notranslate">(async () => { +<pre class="brush: js">(async () => { if (somethingIsTrue) { const { default: myDefault, foo, bar } = await import('/modules/my-module.js'); } @@ -140,7 +140,7 @@ var promise = import("module-name");//这是一个处于第三阶段的提案。 <p>关键字import可以像调用函数一样来动态的导入模块。以这种方式调用,将返回一个 <code>promise</code>。</p> -<pre class="brush: js notranslate">import('/modules/my-module.js') +<pre class="brush: js">import('/modules/my-module.js') .then((module) => { // Do something with the module. }); @@ -148,7 +148,7 @@ var promise = import("module-name");//这是一个处于第三阶段的提案。 <p>这种使用方式也支持 <code>await</code> 关键字。</p> -<pre class="brush: js notranslate">let module = await import('/modules/my-module.js');</pre> +<pre class="brush: js">let module = await import('/modules/my-module.js');</pre> <h2 id="示例">示例</h2> @@ -158,7 +158,7 @@ var promise = import("module-name");//这是一个处于第三阶段的提案。 <h4 id="模块:file.js">模块:file.js</h4> -<pre class="brush: js notranslate">function getJSON(url, callback) { +<pre class="brush: js">function getJSON(url, callback) { let xhr = new XMLHttpRequest(); xhr.onload = function () { callback(this.responseText) @@ -173,7 +173,7 @@ export function getUsefulContents(url, callback) { <h4 id="主程序:main.js">主程序:main.js</h4> -<pre class="brush: js notranslate">import { getUsefulContents } from '/modules/file.js'; +<pre class="brush: js">import { getUsefulContents } from '/modules/file.js'; getUsefulContents('http://www.example.com', data => { doSomethingUseful(data); });</pre> @@ -182,7 +182,7 @@ getUsefulContents('http://www.example.com', <p>此示例展示了如何基于用户操作去加载功能模块到页面上,在例子中通过点击按钮,然后会调用模块内的函数。当然这不是能实现这个功能的唯一方式,<code>import()</code>函数也可以支持<code>await</code>。</p> -<pre class="brush: js notranslate">const main = document.querySelector("main"); +<pre class="brush: js">const main = document.querySelector("main"); for (const link of document.querySelectorAll("nav > a")) { link.addEventListener("click", e => { e.preventDefault(); diff --git a/files/zh-cn/web/javascript/reference/statements/let/index.html b/files/zh-cn/web/javascript/reference/statements/let/index.html index 84898ef237..0dc1a84365 100644 --- a/files/zh-cn/web/javascript/reference/statements/let/index.html +++ b/files/zh-cn/web/javascript/reference/statements/let/index.html @@ -23,7 +23,7 @@ translation_of: Web/JavaScript/Reference/Statements/let <h2 id="语法">语法</h2> -<pre class="syntaxbox notranslate">let var1 [= value1] [, var2 [= value2]] [, ..., varN [= valueN]];</pre> +<pre class="syntaxbox">let var1 [= value1] [, var2 [= value2]] [, ..., varN [= valueN]];</pre> <h3 id="参数">参数</h3> @@ -46,7 +46,7 @@ translation_of: Web/JavaScript/Reference/Statements/let <p><code><strong>let</strong></code>声明的变量只在其声明的块或子块中可用,这一点,与<code><strong>var</strong></code>相似。二者之间最主要的区别在于<code><strong>var</strong></code>声明的变量的作用域是整个封闭函数。</p> -<pre class="brush: js notranslate">function varTest() { +<pre class="brush: js">function varTest() { var x = 1; { var x = 2; // 同样的变量! @@ -69,7 +69,7 @@ function letTest() { <p>位于函数或代码顶部的<strong><code>var</code></strong>声明会给全局对象新增属性, 而<strong><code>let</code></strong>不会。例如:</p> -<pre class="brush: js notranslate">var x = 'global'; +<pre class="brush: js">var x = 'global'; let y = 'global'; console.log(this.x); // "global" console.log(this.y); // undefined @@ -79,7 +79,7 @@ console.log(this.y); // undefined <p>在处理<a href="https://developer.mozilla.org/en-US/docs/Glossary/Constructor">构造函数</a>的时候,可以通过<code><strong>let</strong></code>声明而不是闭包来创建一个或多个私有成员。</p> -<pre class="brush: js notranslate">var Thing; +<pre class="brush: js">var Thing; { let privateScope = new WeakMap(); @@ -122,7 +122,7 @@ thing.showPrivate(); <p>在同一个函数或块作用域中重复声明同一个变量会引起{{jsxref("SyntaxError")}}。</p> -<pre class="brush: js example-bad notranslate">if (x) { +<pre class="brush: js example-bad">if (x) { let foo; let foo; // SyntaxError thrown. } @@ -130,7 +130,7 @@ thing.showPrivate(); <p>在 <a href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Statements/switch"><code>switch</code></a> 语句中只有一个块,你可能因此而遇到错误。</p> -<pre class="brush: js example-bad notranslate">let x = 1; +<pre class="brush: js example-bad">let x = 1; switch(x) { case 0: let foo; @@ -144,7 +144,7 @@ switch(x) { <p>然而,需要特别指出的是,一个嵌套在 case 子句中的块会创建一个新的块作用域的词法环境,就不会产生上诉重复声明的错误。</p> -<pre class="notranslate">let x = 1; +<pre>let x = 1; switch(x) { case 0: { @@ -162,7 +162,7 @@ switch(x) { <p>与通过 <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var#var_hoisting">var</a></code> 声明的有初始化值 <code>undefined</code> 的变量不同,通过 <code>let</code> 声明的变量直到它们的定义被执行时才初始化。在变量初始化前访问该变量会导致 <code><a href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/ReferenceError">ReferenceError</a></code>。该变量处在一个自块顶部到初始化处理的“暂存死区”中。</p> -<pre class="brush: js notranslate">function do_something() { +<pre class="brush: js">function do_something() { console.log(bar); // undefined console.log(foo); // ReferenceError var bar = 1; @@ -173,7 +173,7 @@ switch(x) { <p>与通过<code>var</code>声明的变量, 有初始化值 <code>undefined</code>和只是未声明的变量不同的是,如果使用<code>typeof</code>检测在暂存死区中的变量, 会抛出<code>ReferenceError</code>异常:</p> -<pre class="notranslate"><code>// prints out 'undefined' +<pre><code>// prints out 'undefined' console.log(typeof undeclaredVariable); // results in a 'ReferenceError' @@ -189,7 +189,7 @@ let i = 10;</code> <p>这个if块里的<code>foo</code>还依旧在暂存死区里。</p> -<pre class="brush: js example-bad notranslate">function test(){ +<pre class="brush: js example-bad">function test(){ var foo = 33; if (foo) { let foo = (foo + 55); // ReferenceError @@ -201,7 +201,7 @@ test();</pre> <p>在没有执行到它的初始化语句之前,它仍旧存在于暂存死区中。</p> -<pre class="brush: js example-bad notranslate">function go(n) { +<pre class="brush: js example-bad">function go(n) { // n here is defined! console.log(n); // Object {a: [1,2,3]} @@ -216,7 +216,7 @@ go({a: [1, 2, 3]});</pre> <p>用在块级作用域中时, <strong><code>let</code></strong>将变量的作用域限制在块内, 而<code><strong>var</strong></code>声明的变量的作用域是在函数内.</p> -<pre class="brush: js notranslate">var a = 1; +<pre class="brush: js">var a = 1; var b = 2; if (a === 1) { @@ -232,7 +232,7 @@ console.log(b); // 2</pre> <p>而这种<code><strong>var</strong></code> 与 <strong><code>let</code></strong>合并的声明方式会报<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError">SyntaxError</a></code>错误, 因为<code><strong>var</strong></code>会将变量提升至块的顶部, 这会导致隐式地重复声明变量.</p> -<pre class="brush: js example-bad notranslate">let x = 1; +<pre class="brush: js example-bad">let x = 1; { var x = 2; // SyntaxError for re-declaration diff --git a/files/zh-cn/web/javascript/reference/statements/switch/index.html b/files/zh-cn/web/javascript/reference/statements/switch/index.html index 64cce4f231..763bda116b 100644 --- a/files/zh-cn/web/javascript/reference/statements/switch/index.html +++ b/files/zh-cn/web/javascript/reference/statements/switch/index.html @@ -20,7 +20,7 @@ translation_of: Web/JavaScript/Reference/Statements/switch <h2 id="语法">语法</h2> -<pre class="brush: js notranslate">switch (expression) { +<pre class="brush: js">switch (expression) { case value1: // 当 expression 的结果与 value1 匹配时,执行此处语句 [break;] @@ -59,7 +59,7 @@ translation_of: Web/JavaScript/Reference/Statements/switch <p>下面的例子中,如果 <code>expr</code> 计算为 "Bananas",程序就会匹配值为 "Bananas" 的 case 然后执行相关语句。当遇到 <code>break</code> 时,程序就跳出 <code>switch</code> 然后执行 <code>switch</code> 后的语句。若 <code>break</code> 被省略,值为 "Cherries" 的 case 中的语句就也将被执行。</p> -<pre class="brush: js notranslate">switch (expr) { +<pre class="brush: js">switch (expr) { case 'Oranges': console.log('Oranges are $0.59 a pound.'); break; @@ -87,7 +87,7 @@ console.log("Is there anything else you'd like?"); <p>如果你忘记添加 break,那么代码将会从值所匹配的 case 语句开始运行,然后持续执行下一个 case 语句而不论值是否匹配。例子如下:</p> -<pre class="brush: js notranslate">var foo = 0; +<pre class="brush: js">var foo = 0; switch (foo) { case -1: console.log('negative 1'); @@ -109,7 +109,7 @@ switch (foo) { <p>可以啊!JavaScript 会在它找不到匹配项时跳回到那个 default :</p> -<pre class="brush: js notranslate">var foo = 5; +<pre class="brush: js">var foo = 5; switch (foo) { case 2: console.log(2); @@ -136,7 +136,7 @@ switch (foo) { <p>这是一个单操作顺序的 switch 语句,其中四个不同值的执行结果完全一样。</p> -<pre class="brush: js notranslate">var Animal = 'Giraffe'; +<pre class="brush: js">var Animal = 'Giraffe'; switch (Animal) { case 'Cow': case 'Giraffe': @@ -153,7 +153,7 @@ switch (Animal) { <p>这是一个关联操作顺序的 switch 语句,其中,根据所输入的整数,你会得到不同的输出。这表示它将以你放置 case 语句的顺序遍历,并且不必是数字顺序的。在 JavaScript 中,你甚至可以将字符串定义到这些 case 语句里。</p> -<pre class="brush: js notranslate">var foo = 1; +<pre class="brush: js">var foo = 1; var output = 'Output: '; switch (foo) { case 0: @@ -222,7 +222,7 @@ switch (foo) { <p>以这段代码为例:</p> -<pre class="brush: js notranslate">const action = 'say_hello'; +<pre class="brush: js">const action = 'say_hello'; switch (action) { case 'say_hello': let message = 'hello'; @@ -243,7 +243,7 @@ switch (action) { <p>通过把 case 语句包装到括号里面,我们就可以轻松解决这个问题。</p> -<pre class="brush: js notranslate">const action = 'say_hello'; +<pre class="brush: js">const action = 'say_hello'; switch (action) { case 'say_hello': { // added brackets let message = 'hello'; diff --git a/files/zh-cn/web/javascript/reference/statements/with/index.html b/files/zh-cn/web/javascript/reference/statements/with/index.html index 32ce03679b..4454271872 100644 --- a/files/zh-cn/web/javascript/reference/statements/with/index.html +++ b/files/zh-cn/web/javascript/reference/statements/with/index.html @@ -15,7 +15,7 @@ translation_of: Web/JavaScript/Reference/Statements/with <h2 id="Syntax" name="Syntax">语法</h2> -<pre class="syntaxbox notranslate">with (expression) { +<pre class="syntaxbox">with (expression) { <em>statement</em> } </pre> @@ -43,7 +43,7 @@ translation_of: Web/JavaScript/Reference/Statements/with <p><strong>弊端:</strong><code>with</code>语句使得代码不易阅读,同时使得JavaScript编译器难以在作用域链上查找某个变量,难以决定应该在哪个对象上来取值。请看下面的例子:</p> -<pre class="brush: js notranslate">function f(x, o) { +<pre class="brush: js">function f(x, o) { with (o) print(x); }</pre> @@ -53,7 +53,7 @@ translation_of: Web/JavaScript/Reference/Statements/with <p><strong>弊端:</strong>使用<code>with</code>语句的代码,无法向前兼容,特別是在使用一些原生数据类型的时候。看下面的例子:</p> <div> -<pre class="brush:js notranslate">function f(foo, values) { +<pre class="brush:js">function f(foo, values) { with (foo) { console.log(values) } @@ -69,7 +69,7 @@ translation_of: Web/JavaScript/Reference/Statements/with <p>下面的<code>with</code>语句指定<code><a href="/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math" title="JavaScript/Reference/Global_Objects/Math">Math</a></code>对象作为默认对象。<code>with</code>语句里面的变量,分別指向<code>Math</code>对象的<a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/PI" title="JavaScript/Reference/Global_Objects/Math/PI"><code>PI</code></a> 、<code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/cos" title="JavaScript/Reference/Global_Objects/Math/cos">cos</a>和</code><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sin" title="JavaScript/Reference/Global_Objects/Math/sin">sin</a></code>函数,不用在前面添加命名空间。后续所有引用都指向<code>Math</code>对象。</p> -<pre class="brush:js notranslate">var a, x, y; +<pre class="brush:js">var a, x, y; var r = 10; with (Math) { |