diff options
Diffstat (limited to 'files/zh-cn/web/javascript/guide/expressions_and_operators')
-rw-r--r-- | files/zh-cn/web/javascript/guide/expressions_and_operators/index.html | 86 |
1 files changed, 43 insertions, 43 deletions
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 1ea851d0f7..b90c70b5e0 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 @@ -33,18 +33,18 @@ translation_of: Web/JavaScript/Guide/Expressions_and_Operators <p>JavaScript 拥有二元和一元运算符, 和一个特殊的三元运算符(条件运算符)。一个二元运算符需要两个操作数,分别在运算符的前面和后面:</p> -<pre class="notranslate"><em>操作数1 运算符 操作数2</em> +<pre><em>操作数1 运算符 操作数2</em> </pre> <p>例如, <code>3+4</code> 或 <code>x*y</code>。</p> <p>一个一元运算符需要一个操作数,在运算符前面或后面:</p> -<pre class="notranslate"><em>运算符 操作数</em></pre> +<pre><em>运算符 操作数</em></pre> <p>或</p> -<pre class="notranslate"><em>操作数 运算符</em></pre> +<pre><em>操作数 运算符</em></pre> <p>例如, <code>x++</code> 或 <code>++x</code>。</p> @@ -136,7 +136,7 @@ translation_of: Web/JavaScript/Guide/Expressions_and_Operators <p>对于更复杂的赋值,<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment">解构赋值</a>语法是一个能从数组或对象对应的数组结构或对象字面量里提取数据的 Javascript 表达式。</p> -<pre class="brush: js line-numbers language-js notranslate"><code class="language-js">var foo = ["one", "two", "three"]; +<pre class="brush: js line-numbers language-js"><code class="language-js">var foo = ["one", "two", "three"]; // 不使用解构 var one = foo[0]; @@ -150,7 +150,7 @@ var [one, two, three] = foo;</code></pre> <p><a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Comparison_Operators">比较运算符</a>比较它的操作数并返回一个基于表达式是否为真的逻辑值。操作数可以是数字,字符串,逻辑,对象值。字符串比较是基于标准的字典顺序,使用Unicode值。在多数情况下,如果两个操作数不是相同的类型, JavaScript 会尝试转换它们为恰当的类型来比较。这种行为通常发生在数字作为操作数的比较。类型转换的例外是使用 <code>===</code> 和 <code>!==</code> 操作符,它们会执行严格的相等和不相等比较。这些运算符不会在检查相等之前转换操作数的类型。下面的表格描述了该示例代码中的各比较运算符</p> -<pre class="brush: js line-numbers language-js notranslate"><code class="language-js">var var1 = 3; +<pre class="brush: js line-numbers language-js"><code class="language-js">var var1 = 3; var var2 = 4;</code></pre> <table class="standard-table"> @@ -224,7 +224,7 @@ var var2 = 4;</code></pre> <p>算术运算符使用数值(字面量或者变量)作为操作数并返回一个数值.标准的算术运算符就是加减乘除(+ - * /)。当操作数是浮点数时,这些运算符表现得跟它们在大多数编程语言中一样(特殊要注意的是,除零会产生{{jsxref("Infinity")}})。例如:</p> -<pre class="brush: js notranslate">1 / 2; // 0.5 +<pre class="brush: js">1 / 2; // 0.5 1 / 2 == 1.0 / 2.0; // true </pre> @@ -378,7 +378,7 @@ var var2 = 4;</code></pre> <dl> <dt> - <pre class="notranslate"><code>Before: 11100110111110100000000000000110000000000001 + <pre><code>Before: 11100110111110100000000000000110000000000001 After: 10100000000000000110000000000001</code></pre> </dt> </dl> @@ -507,7 +507,7 @@ After: 10100000000000000110000000000001</code></pre> <p>下面是&&(逻辑"与")操作符的示例。</p> -<pre class="brush: js notranslate">var a1 = true && true; // t && t returns true +<pre class="brush: js">var a1 = true && true; // t && t returns true var a2 = true && false; // t && f returns false var a3 = false && true; // f && t returns false var a4 = false && (3 == 4); // f && f returns false @@ -518,7 +518,7 @@ var a7 = "Cat" && false; // t && f returns false <p>下面是||(逻辑"或")操作符的示例。</p> -<pre class="brush: js notranslate">var o1 = true || true; // t || t returns true +<pre class="brush: js">var o1 = true || true; // t || t returns true var o2 = false || true; // f || t returns true var o3 = true || false; // t || f returns true var o4 = false || (3 == 4); // f || f returns false @@ -529,7 +529,7 @@ var o7 = "Cat" || false; // t || f returns Cat <p>下面是!(逻辑"非")操作符的示例。</p> -<pre class="brush: js notranslate">var n1 = !true; // !t returns false +<pre class="brush: js">var n1 = !true; // !t returns false var n2 = !false; // !f returns true var n3 = !"Cat"; // !t returns false </pre> @@ -551,11 +551,11 @@ var n3 = !"Cat"; // !t returns false <p>例如,</p> -<pre class="brush: js line-numbers language-js notranslate"><code class="language-js">console.log("my " + "string"); // console logs the string "my string".</code></pre> +<pre class="brush: js line-numbers language-js"><code class="language-js">console.log("my " + "string"); // console logs the string "my string".</code></pre> <p>简写操作符 <code>+=</code> 也可以用来拼接字符串,例如:</p> -<pre class="brush: js notranslate"><code>var myString = "alpha";</code> +<pre class="brush: js"><code>var myString = "alpha";</code> <code>myString += "bet"; // 返回 "alphabet" </code> </pre> @@ -564,14 +564,14 @@ var n3 = !"Cat"; // !t returns false <p><a href="/zh-CN/docs/Web/JavaScript/Reference/Operators/Conditional_Operator">条件运算符</a>是JavaScript中唯一需要三个操作数的运算符。运算的结果根据给定条件在两个值中取其一。语法为:</p> -<pre class="notranslate"><em>条件 </em>?<em> 值1 </em>:<em> 值2</em> +<pre><em>条件 </em>?<em> 值1 </em>:<em> 值2</em> </pre> <p>如果<code>条件</code>为真,则结果取<code>值1</code>。否则为<code>值2</code>。你能够在任何允许使用标准运算符的地方使用条件运算符。</p> <p>例如,</p> -<pre class="brush: js notranslate">var status = (age >= 18) ? "adult" : "minor"; +<pre class="brush: js">var status = (age >= 18) ? "adult" : "minor"; </pre> <p>当 <code>age</code> 大于等于18的时候,将“adult”赋值给<code> status</code>;否则将“minor”赋值给 <code>status</code>。</p> @@ -582,7 +582,7 @@ var n3 = !"Cat"; // !t returns false <p>例如,假如 <code>a</code> 是一个二维数组,每个维度各有10个元素,以下代码利用逗号操作符来同时改变两个变量的值。这段代码的功能是打印出该二维数组的对角线元素的值:</p> -<pre class="brush: js notranslate">var x = [0,1,2,3,4,5,6,7,8,9] +<pre class="brush: js">var x = [0,1,2,3,4,5,6,7,8,9] var a = [x, x, x, x, x]; for (var i = 0, j = 9; i <= j; i++, j--) @@ -596,7 +596,7 @@ for (var i = 0, j = 9; i <= j; i++, j--) <p><code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete">delete</a></code>操作符,删除一个对象的属性或者一个数组中某一个键值。语法如下:</p> -<pre class="brush: js notranslate">delete objectName.property; +<pre class="brush: js">delete objectName.property; delete objectName[index]; delete property; // legal only within a with statement </pre> @@ -609,7 +609,7 @@ delete property; // legal only within a with statement <p>如果 <code>delete</code> 操作成功,属性或者元素会变成 <code>undefined</code>。如果 <code>delete</code>可行会返回<code>true</code>,如果不成功返回<code>false</code>。</p> -<pre class="brush: js notranslate">x = 42; +<pre class="brush: js">x = 42; var y = 43; myobj = new Number(); myobj.h = 4; // create property h @@ -626,7 +626,7 @@ delete myobj; // returns true (can delete if declared implicitly) <p><code>delete</code> 删除数组中的一个元素,这个元素就不在数组中了。例如,<code>trees[3]</code>被删除,<code>trees[3]</code> 仍然可寻址并返回<code>undefined</code>。</p> -<pre class="brush: js notranslate">var trees = new Array("redwood", "bay", "cedar", "oak", "maple"); +<pre class="brush: js">var trees = new Array("redwood", "bay", "cedar", "oak", "maple"); delete trees[3]; if (3 in trees) { // 不会被执行 @@ -635,7 +635,7 @@ if (3 in trees) { <p>如果想让数组中存在一个元素但是是<code>undefined</code>值,使用<code>undefined</code>关键字而不是<code>delete</code>操作. 如下: <code>trees[3]分配一个undefined</code>,但是这个数组元素仍然存在:</p> -<pre class="brush: js notranslate">var trees = new Array("redwood", "bay", "cedar", "oak", "maple"); +<pre class="brush: js">var trees = new Array("redwood", "bay", "cedar", "oak", "maple"); trees[3] = undefined; if (3 in trees) { // this gets executed(会被执行) @@ -646,7 +646,7 @@ if (3 in trees) { <p><a href="/zh-CN/docs/Web/JavaScript/Reference/Operators/typeof">typeof操作符</a> 可通过下面2种方式使用:</p> -<pre class="brush: js notranslate">typeof operand +<pre class="brush: js">typeof operand typeof (operand) </pre> @@ -654,7 +654,7 @@ typeof (operand) <p>假设你定义了如下的变量:</p> -<pre class="brush: js notranslate">var myFun = new Function("5 + 2"); +<pre class="brush: js">var myFun = new Function("5 + 2"); var shape = "round"; var size = 1; var today = new Date(); @@ -662,7 +662,7 @@ var today = new Date(); <p>typeof 操作符将会返回如下的结果:</p> -<pre class="brush: js notranslate">typeof myFun; // returns "function" +<pre class="brush: js">typeof myFun; // returns "function" typeof shape; // returns "string" typeof size; // returns "number" typeof today; // returns "object" @@ -671,26 +671,26 @@ typeof dontExist; // returns "undefined" <p>对于关键词 <code>true</code> 和 <code>null</code>, <code>typeof</code> 操作符将会返回如下结果:</p> -<pre class="brush: js notranslate">typeof true; // returns "boolean" +<pre class="brush: js">typeof true; // returns "boolean" typeof null; // returns "object" </pre> <p>对于一个数值或字符串<code></code>, <code>typeof</code> 操作符将会返回如下结果:</p> -<pre class="brush: js notranslate">typeof 62; // returns "number" +<pre class="brush: js">typeof 62; // returns "number" typeof 'Hello world'; // returns "string" </pre> <p>对于属性值,typeof 操作符将会返回属性所包含值的类型:</p> -<pre class="brush: js notranslate">typeof document.lastModified; // returns "string" +<pre class="brush: js">typeof document.lastModified; // returns "string" typeof window.length; // returns "number" typeof Math.LN2; // returns "number" </pre> <p>对于方法和函数,typeof 操作符将会返回如下结果:</p> -<pre class="brush: js notranslate">typeof blur; // returns "function" +<pre class="brush: js">typeof blur; // returns "function" typeof eval; // returns "function" typeof parseInt; // returns "function" typeof shape.split; // returns "function" @@ -698,7 +698,7 @@ typeof shape.split; // returns "function" <p>对于预定义的对象,typeof 操作符将会返回如下结果:</p> -<pre class="brush: js notranslate">typeof Date; // returns "function" +<pre class="brush: js">typeof Date; // returns "function" typeof Function; // returns "function" typeof Math; // returns "object" typeof Option; // returns "function" @@ -709,7 +709,7 @@ typeof String; // returns "function" <p>void 运算符运用方法如下:</p> -<pre class="brush: js notranslate">void (expression) +<pre class="brush: js">void (expression) void expression </pre> @@ -719,11 +719,11 @@ void expression <p>如下创建了一个超链接文本,当用户单击该文本时,不会有任何效果。</p> -<pre class="brush: html line-numbers language-html notranslate"><code class="language-html"><a href="javascript:void(0)">Click here to do nothing</a></code></pre> +<pre class="brush: html line-numbers language-html"><code class="language-html"><a href="javascript:void(0)">Click here to do nothing</a></code></pre> <p>下面的代码创建了一个超链接,当用户单击它时,提交一个表单。</p> -<pre class="brush: html line-numbers language-html notranslate"><code class="language-html"><a href="javascript:void(document.form.submit())"> +<pre class="brush: html line-numbers language-html"><code class="language-html"><a href="javascript:void(document.form.submit())"> Click here to submit</a></code></pre> <h3 id="关系操作符">关系操作符</h3> @@ -734,14 +734,14 @@ Click here to submit</a></code></pre> <p><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/in"><code>in</code>操作符</a>,如果所指定的<strong>属性</strong>确实存在于所指定的对象中,则会返回<code>true</code>,语法如下:</p> -<pre class="brush: js notranslate">propNameOrNumber in objectName +<pre class="brush: js">propNameOrNumber in objectName </pre> <p>在这里 <code>propNameOrNumber</code>可以是一个代表着属性名的字符串或者是一个代表着数组索引的数值表达式,而<code>objectName</code>则是一个对象名。</p> <p>下面的例子是 <code>in</code> 操作的常见用法。</p> -<pre class="brush: js notranslate">// Arrays +<pre class="brush: js">// Arrays var trees = new Array("redwood", "bay", "cedar", "oak", "maple"); 0 in trees; // returns true 3 in trees; // returns true @@ -765,7 +765,7 @@ var mycar = {make: "Honda", model: "Accord", year: 1998}; <p>如果所判别的对象确实是所指定的类型,则返回<code>true</code>。其语法如下:</p> -<pre class="brush: js notranslate">objectName instanceof objectType +<pre class="brush: js">objectName instanceof objectType </pre> <p><code>objectName</code> 是需要做判别的对象的名称,而<code>objectType</code>是假定的对象的类型, 例如{{jsxref("Date")}}或 {{jsxref("Array")}}.</p> @@ -774,7 +774,7 @@ var mycar = {make: "Honda", model: "Accord", year: 1998}; <p>例如, 下面的代码使用<code>instanceof</code>去判断 <code>theDay</code>是否是一个 <code>Date</code> 对象. <code>因为theDay</code>是一个<code>Date</code>对象, <code>所以if</code>中的代码会执行.</p> -<pre class="brush: js notranslate">var theDay = new Date(1995, 12, 17); +<pre class="brush: js">var theDay = new Date(1995, 12, 17); if (theDay instanceof Date) { // statements to execute } @@ -891,13 +891,13 @@ if (theDay instanceof Date) { <p><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this"><code>this</code></a>关键字被用于指代当前的对象,通常,<code>this</code>指代的是方法中正在被调用的对象。用法如下:</p> -<pre class="brush: js notranslate">this["propertyName"] +<pre class="brush: js">this["propertyName"] this.propertyName </pre> <p>假设一个用于验证对象<code>value</code>属性的<code>validate</code>函数,传参有对象,最高值和最低值。</p> -<pre class="brush: js notranslate">function validate(obj, lowval, hival){ +<pre class="brush: js">function validate(obj, lowval, hival){ if ((obj.value < lowval) || (obj.value > hival)) console.log("Invalid Value!"); } @@ -905,7 +905,7 @@ this.propertyName <p>你可以在任何表单元素的<code>onchange</code>事件处理中调用<code>validat</code>函数,用<code>this</code>来指代当前的表单元素,用例如下:</p> -<pre class="brush: html notranslate"><p>Enter a number between 18 and 99:</p> +<pre class="brush: html"><p>Enter a number between 18 and 99:</p> <input type="text" name="age" size=3 onChange="validate(this, 18, 99);"> </pre> @@ -913,7 +913,7 @@ this.propertyName <p>分组操作符()控制了表达式中计算的优先级. 举例来说, 你可以改变先乘除后加减的顺序,转而先计算加法。</p> -<pre class="brush:js line-numbers language-js notranslate"><code class="language-js">var a = 1; +<pre class="brush:js line-numbers language-js"><code class="language-js">var a = 1; var b = 2; var c = 3; @@ -941,7 +941,7 @@ a * c + b * c // 9</code></pre> <p>Comprehensions特性被许多编程语言所采用,该特性能够使你快速地通过一个已有的数组来创建出一个新的数组,比如:</p> -<pre class="brush:js line-numbers language-js notranslate"><code class="language-js">[for (i of [ 1, 2, 3 ]) i*i ]; +<pre class="brush:js line-numbers language-js"><code class="language-js">[for (i of [ 1, 2, 3 ]) i*i ]; // [ 1, 4, 9 ] var abc = [ "A", "B", "C" ]; @@ -956,14 +956,14 @@ var abc = [ "A", "B", "C" ]; <p>你可以使用<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new"><code>new</code> operator</a> 创建一个自定义类型或者是<code>预置类型</code>的对象实例。用法如下:</p> -<pre class="brush: js notranslate">var objectName = new objectType([param1, param2, ..., paramN]); +<pre class="brush: js">var objectName = new objectType([param1, param2, ..., paramN]); </pre> <p>super</p> <p><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/super">super </a>关键字可以用来调用一个对象父类的函数,它在用来调用一个<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes">类</a>的父类的构造函数时非常有用,比如:</p> -<pre class="notranslate">super([arguments]); // calls the parent constructor. super.functionOnParent([arguments]);</pre> +<pre>super([arguments]); // calls the parent constructor. super.functionOnParent([arguments]);</pre> <h4 id="扩展语句">扩展语句</h4> @@ -971,12 +971,12 @@ var abc = [ "A", "B", "C" ]; <p><strong>例如:</strong>现在你有一个数组,你想创建一个新数组,并将刚才那个作为它的一部分,用array的字面语法是不够的,你不得不写一些代码实现它,比如用些<code>push</code>, <code>splice</code>, <code>concat等等。但是用</code>spread syntax就没问题了:</p> -<pre class="notranslate"><code>var parts = ['shoulder', 'knees']; +<pre><code>var parts = ['shoulder', 'knees']; var lyrics = ['head', ...parts, 'and', 'toes'];</code></pre> <p>类似的,扩展语句也可以用在函数调用的时候:</p> -<pre class="notranslate"><code>function f(x, y, z) { } +<pre><code>function f(x, y, z) { } var args = [0, 1, 2]; f(...args);</code></pre> |