mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-12-15 15:20:30 +08:00
语法高亮,滚动条美化,设置页面调整
This commit is contained in:
@@ -20,12 +20,12 @@
|
||||
</ul>
|
||||
<p>JavaScript 拥有二元和一元运算符, 和一个特殊的三元运算符(条件运算符)。一个二元运算符需要两个操作数,分别在运算符的前面和后面:</p>
|
||||
<pre><em>操作数1 运算符 操作数2</em>
|
||||
</pre>
|
||||
</code></pre>
|
||||
<p>例如, <code>3+4</code> 或 <code>x*y</code>。</p>
|
||||
<p>一个一元运算符需要一个操作数,在运算符前面或后面:</p>
|
||||
<pre><em>运算符 操作数</em></pre>
|
||||
<pre><em>运算符 操作数</em></code></pre>
|
||||
<p>或</p>
|
||||
<pre><em>操作数 运算符</em></pre>
|
||||
<pre><em>操作数 运算符</em></code></pre>
|
||||
<p>例如, <code>x++</code> 或 <code>++x</code>。</p>
|
||||
<h3 id="赋值运算符">赋值运算符</h3>
|
||||
<p>一个 <a href="https://developer.mozilla.orgReference/Operators/Assignment_Operators">赋值运算符(assignment operator)</a> 将它右边操作数的值赋给它左边的操作数。最简单的赋值运算符是等于(<code>=</code>),它将右边的操作数值赋给左边的操作数。那么 <code>x = y</code> 就是将 y 的值赋给 x。</p>
|
||||
@@ -109,7 +109,7 @@
|
||||
</table>
|
||||
<h4 id="解构">解构</h4>
|
||||
<p>对于更复杂的赋值,<a href="https://developer.mozilla.orgReference/Operators/Destructuring_assignment">解构赋值</a>语法是一个能从数组或对象对应的数组结构或对象字面量里提取数据的 Javascript 表达式。</p>
|
||||
<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> foo <span class="operator token">=</span> <span class="punctuation token">[</span><span class="string token">"one"</span><span class="punctuation token">,</span> <span class="string token">"two"</span><span class="punctuation token">,</span> <span class="string token">"three"</span><span class="punctuation token">]</span><span class="punctuation token">;</span>
|
||||
<pre><code class="language-javascript"><code class="language-js"><span class="keyword token">var</span> foo <span class="operator token">=</span> <span class="punctuation token">[</span><span class="string token">"one"</span><span class="punctuation token">,</span> <span class="string token">"two"</span><span class="punctuation token">,</span> <span class="string token">"three"</span><span class="punctuation token">]</span><span class="punctuation token">;</span>
|
||||
|
||||
<span class="comment token">// 不使用解构</span>
|
||||
<span class="keyword token">var</span> one <span class="operator token">=</span> foo<span class="punctuation token">[</span><span class="number token">0</span><span class="punctuation token">]</span><span class="punctuation token">;</span>
|
||||
@@ -117,11 +117,11 @@
|
||||
<span class="keyword token">var</span> three <span class="operator token">=</span> foo<span class="punctuation token">[</span><span class="number token">2</span><span class="punctuation token">]</span><span class="punctuation token">;</span>
|
||||
|
||||
<span class="comment token">// 使用解构</span>
|
||||
<span class="keyword token">var</span> <span class="punctuation token">[</span>one<span class="punctuation token">,</span> two<span class="punctuation token">,</span> three<span class="punctuation token">]</span> <span class="operator token">=</span> foo<span class="punctuation token">;</span></code></pre>
|
||||
<span class="keyword token">var</span> <span class="punctuation token">[</span>one<span class="punctuation token">,</span> two<span class="punctuation token">,</span> three<span class="punctuation token">]</span> <span class="operator token">=</span> foo<span class="punctuation token">;</span></code></code></pre>
|
||||
<h3 id="比较运算符">比较运算符</h3>
|
||||
<p><a href="https://developer.mozilla.orgReference/Operators/Comparison_Operators">比较运算符</a>比较它的操作数并返回一个基于表达式是否为真的逻辑值。操作数可以是数字,字符串,逻辑,对象值。字符串比较是基于标准的字典顺序,使用Unicode值。在多数情况下,如果两个操作数不是相同的类型, JavaScript 会尝试转换它们为恰当的类型来比较。这种行为通常发生在数字作为操作数的比较。类型转换的例外是使用 <code>===</code> 和 <code>!==</code> 操作符,它们会执行严格的相等和不相等比较。这些运算符不会在检查相等之前转换操作数的类型。下面的表格描述了该示例代码中的各比较运算符</p>
|
||||
<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> var1 <span class="operator token">=</span> <span class="number token">3;
|
||||
</span>var var2 <span class="operator token">=</span> <span class="number token">4</span><span class="punctuation token">;</span></code></pre>
|
||||
<pre><code class="language-javascript"><code class="language-js"><span class="keyword token">var</span> var1 <span class="operator token">=</span> <span class="number token">3;
|
||||
</span>var var2 <span class="operator token">=</span> <span class="number token">4</span><span class="punctuation token">;</span></code></code></pre>
|
||||
<table class="standard-table">
|
||||
<caption>比较运算符</caption>
|
||||
<thead>
|
||||
@@ -189,9 +189,9 @@
|
||||
</div>
|
||||
<h3 id="算术运算符">算术运算符</h3>
|
||||
<p>算术运算符使用数值(字面量或者变量)作为操作数并返回一个数值.标准的算术运算符就是加减乘除(+ - * /)。当操作数是浮点数时,这些运算符表现得跟它们在大多数编程语言中一样(特殊要注意的是,除零会产生<a href="Reference/Global_Objects/Infinity" title="全局属性 Infinity 是一个数值,表示无穷大。"><code>Infinity</code></a>)。<span style="line-height: 1.5;">例如:</span></p>
|
||||
<pre class="brush: js">1 / 2; // 0.5
|
||||
<pre><code class="language-javascript">1 / 2; // 0.5
|
||||
1 / 2 == 1.0 / 2.0; // true
|
||||
</pre>
|
||||
</code></pre>
|
||||
<p>除了标准的算术运算符(+, - ,* /),JavaScript还提供了下表中的算术运算符。</p>
|
||||
<table class="fullwidth-table" style="height: 469px; width: 520px;">
|
||||
<caption>表 3.3 算术运算符</caption>
|
||||
@@ -325,7 +325,7 @@
|
||||
<dl>
|
||||
<dt>
|
||||
<pre><code>Before: 11100110111110100000000000000110000000000001
|
||||
After: 10100000000000000110000000000001</code></pre>
|
||||
After: 10100000000000000110000000000001</code></code></pre>
|
||||
</dt>
|
||||
</dl>
|
||||
<ul>
|
||||
@@ -437,28 +437,28 @@ After: 10100000000000000110000000000001</code></pre>
|
||||
</table>
|
||||
<p>能被转换为<code>false</code>的值有<code>null</code>, <code>0</code>, <code>NaN</code>, 空字符串("")和<code>undefined</code>。(译者注:也可以称作”falsy“)</p>
|
||||
<p>下面是&&(逻辑"与")操作符的示例。</p>
|
||||
<pre class="brush: js">var a1 = true && true; // t && t returns true
|
||||
<pre><code class="language-javascript">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
|
||||
var a5 = "Cat" && "Dog"; // t && t returns Dog
|
||||
var a6 = false && "Cat"; // f && t returns false
|
||||
var a7 = "Cat" && false; // t && f returns false
|
||||
</pre>
|
||||
</code></pre>
|
||||
<p>下面是||(逻辑"或")操作符的示例。</p>
|
||||
<pre class="brush: js">var o1 = true || true; // t || t returns true
|
||||
<pre><code class="language-javascript">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
|
||||
var o5 = "Cat" || "Dog"; // t || t returns Cat
|
||||
var o6 = false || "Cat"; // f || t returns Cat
|
||||
var o7 = "Cat" || false; // t || f returns Cat
|
||||
</pre>
|
||||
</code></pre>
|
||||
<p>下面是!(逻辑"非")操作符的示例。</p>
|
||||
<pre class="brush: js">var n1 = !true; // !t returns false
|
||||
<pre><code class="language-javascript">var n1 = !true; // !t returns false
|
||||
var n2 = !false; // !f returns true
|
||||
var n3 = !"Cat"; // !t returns false
|
||||
</pre>
|
||||
</code></pre>
|
||||
<h4 id="Short-Circuit_Evaluation" name="Short-Circuit_Evaluation">短路求值</h4>
|
||||
<p>作为逻辑表达式进行求值是从左到右,它们是为可能的“短路”的出现而使用以下规则进行测试:</p>
|
||||
<ul>
|
||||
@@ -469,43 +469,43 @@ var n3 = !"Cat"; // !t returns false
|
||||
<h3 id="字符串运算符">字符串运算符</h3>
|
||||
<p>除了比较操作符,它可以在字符串值中使用,连接操作符(+)连接两个字符串值相连接,返回另一个字符串,它是两个操作数串的结合。</p>
|
||||
<p>例如,</p>
|
||||
<pre class="brush: js line-numbers language-js"><code class="language-js">console<span class="punctuation token">.</span><span class="function token">log</span><span class="punctuation token">(</span><span class="string token">"my "</span> <span class="operator token">+</span> <span class="string token">"string"</span><span class="punctuation token">)</span><span class="punctuation token">;</span> <span class="comment token">// console logs the string "my string".</span></code></pre>
|
||||
<pre><code class="language-javascript"><code class="language-js">console<span class="punctuation token">.</span><span class="function token">log</span><span class="punctuation token">(</span><span class="string token">"my "</span> <span class="operator token">+</span> <span class="string token">"string"</span><span class="punctuation token">)</span><span class="punctuation token">;</span> <span class="comment token">// console logs the string "my string".</span></code></code></pre>
|
||||
<p>简写操作符 <code>+=</code> 也可以用来拼接字符串,例如:</p>
|
||||
<pre class="brush: js"><code>var myString = "alpha";</code>
|
||||
<pre><code class="language-javascript"><code>var myString = "alpha";</code>
|
||||
|
||||
<code>myString += "bet"; // 返回 "alphabet" </code>
|
||||
</pre>
|
||||
</code></pre>
|
||||
<h3 id="conditional_operator" name="conditional_operator">条件(三元)运算符</h3>
|
||||
<p><a href="Reference/Operators/Conditional_Operator">条件运算符</a>是JavaScript中唯一需要三个操作数的运算符。运算的结果根据给定条件在两个值中取其一。语法为:</p>
|
||||
<pre><em>条件 </em>?<em> 值1 </em>:<em> 值2</em>
|
||||
</pre>
|
||||
</code></pre>
|
||||
<p>如果<code>条件</code>为真,则结果取<code>值1</code>。否则为<code>值2</code>。你能够在任何允许使用标准运算符的地方使用条件运算符。</p>
|
||||
<p>例如,</p>
|
||||
<pre class="brush: js">var status = (age >= 18) ? "adult" : "minor";
|
||||
</pre>
|
||||
<pre><code class="language-javascript">var status = (age >= 18) ? "adult" : "minor";
|
||||
</code></pre>
|
||||
<p>当 <code>age</code> 大于等于18的时候,将“adult”赋值给<code> status</code>;否则将“minor”赋值给 <code>status</code>。</p>
|
||||
<h3 id="comma_operator" name="comma_operator">逗号操作符</h3>
|
||||
<p><a href="Reference/Operators/Comma_Operator">逗号操作符</a>(<code>,</code>)对两个操作数进行求值并返回最终操作数的值。它常常用在 <code>for</code> 循环中,在每次循环时对多个变量进行更新。</p>
|
||||
<p>例如,假如 <code>a</code> 是一个二维数组,每个维度各有10个元素,以下代码利用逗号操作符来同时改变两个变量的值。这段代码的功能是打印出该二维数组的对角线元素的值:</p>
|
||||
<pre class="brush: js">var x = [0,1,2,3,4,5,6,7,8,9]
|
||||
<pre><code class="language-javascript">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--)
|
||||
console.log('a[' + i + '][' + j + ']= ' + a[i][j]);</pre>
|
||||
console.log('a[' + i + '][' + j + ']= ' + a[i][j]);</code></pre>
|
||||
<h3 id="delete" name="delete"><font face="Consolas, Liberation Mono, Courier, monospace">一元</font>操作符</h3>
|
||||
<p>一元操作符仅对应一个操作数。</p>
|
||||
<h4 id="delete" name="delete"><code>delete</code></h4>
|
||||
<p><code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete">delete</a></code>操作符,删除一个对象或一个对象的属性或者一个数组中某一个键值。语法如下:</p>
|
||||
<pre class="brush: js">delete objectName;
|
||||
<pre><code class="language-javascript">delete objectName;
|
||||
delete objectName.property;
|
||||
delete objectName[index];
|
||||
delete property; // legal only within a with statement
|
||||
</pre>
|
||||
</code></pre>
|
||||
<p><code>objectName</code>是一个对象名,<code>property</code> 是一个已经存在的属性,<code>index</code>是数组中的一个已经存在的键值的索引值。</p>
|
||||
<p>第四行的形式只在<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/with">with</a></code>声明的状态下是合法的, 从对象中删除一个属性。</p>
|
||||
<p>你能使用 <code>delete</code> 删除各种各样的隐式声明, 但是被<code>var</code>声明的除外。</p>
|
||||
<p>如果 <code>delete</code> 操作成功,属性或者元素会变成 <code>undefined</code>。如果 <code>delete</code>可行会返回<code>true</code>,如果不成功返回<code>false</code>。</p>
|
||||
<pre class="brush: js">x = 42;
|
||||
<pre><code class="language-javascript">x = 42;
|
||||
var y = 43;
|
||||
myobj = new Number();
|
||||
myobj.h = 4; // create property h
|
||||
@@ -514,89 +514,89 @@ delete y; // returns false (cannot delete if declared with var)
|
||||
delete Math.PI; // returns false (cannot delete predefined properties)
|
||||
delete myobj.h; // returns true (can delete user-defined properties)
|
||||
delete myobj; // returns true (can delete if declared implicitly)
|
||||
</pre>
|
||||
</code></pre>
|
||||
<h5 id="删除数组元素">删除数组元素</h5>
|
||||
<p>删除数组中的元素时,数组的长度是不变的,例如删除<code>a[3]</code>, <code>a[4]</code>,<code>a[4]</code><code>和a[3]</code> 仍然存在变成了<code>undefined</code>。</p>
|
||||
<p><code>delete</code> 删除数组中的一个元素,这个元素就不在数组中了。例如,<code>trees[3]</code>被删除,<code>trees[3]</code> 仍然可寻址并返回<code>undefined</code>。</p>
|
||||
<pre class="brush: js">var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
|
||||
<pre><code class="language-javascript">var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
|
||||
delete trees[3];
|
||||
if (3 in trees) {
|
||||
// 不会被执行
|
||||
}
|
||||
</pre>
|
||||
</code></pre>
|
||||
<p>如果想让数组中存在一个元素但是是<code>undefined</code>值,使用<code>undefined</code>关键字而不是<code>delete</code>操作. 如下: <code>trees[3]分配一个undefined</code>,但是这个数组元素仍然存在:</p>
|
||||
<pre class="brush: js">var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
|
||||
<pre><code class="language-javascript">var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
|
||||
trees[3] = undefined;
|
||||
if (3 in trees) {
|
||||
// this gets executed(会被执行)
|
||||
}
|
||||
</pre>
|
||||
</code></pre>
|
||||
<h4 id="typeof" name="typeof"><code>typeof</code></h4>
|
||||
<p><a href="Reference/Operators/typeof">typeof操作符</a> 可通过下面2种方式使用:</p>
|
||||
<pre class="brush: js">typeof operand
|
||||
<pre><code class="language-javascript">typeof operand
|
||||
typeof (operand)
|
||||
</pre>
|
||||
</code></pre>
|
||||
<p>typeof 操作符返回一个表示 operand 类型的字符串值。operand 可为字符串、变量、关键词或对象,其类型将被返回。operand 两侧的括号为可选。</p>
|
||||
<p>假设你定义了如下的变量:</p>
|
||||
<pre class="brush: js">var myFun = new Function("5 + 2");
|
||||
<pre><code class="language-javascript">var myFun = new Function("5 + 2");
|
||||
var shape = "round";
|
||||
var size = 1;
|
||||
var today = new Date();
|
||||
</pre>
|
||||
</code></pre>
|
||||
<p>typeof 操作符将会返回如下的结果:</p>
|
||||
<pre class="brush: js">typeof myFun; // returns "function"
|
||||
<pre><code class="language-javascript">typeof myFun; // returns "function"
|
||||
typeof shape; // returns "string"
|
||||
typeof size; // returns "number"
|
||||
typeof today; // returns "object"
|
||||
typeof dontExist; // returns "undefined"
|
||||
</pre>
|
||||
</code></pre>
|
||||
<p>对于关键词 <code>true</code> 和 <code>null<font face="Open Sans, Arial, sans-serif">, </font></code><code>typeof</code> 操作符将会返回如下结果:</p>
|
||||
<pre class="brush: js">typeof true; // returns "boolean"
|
||||
<pre><code class="language-javascript">typeof true; // returns "boolean"
|
||||
typeof null; // returns "object"
|
||||
</pre>
|
||||
</code></pre>
|
||||
<p>对于一个数值或字符串<code><font face="Open Sans, Arial, sans-serif">, </font></code><code>typeof</code> 操作符将会返回如下结果:</p>
|
||||
<pre class="brush: js">typeof 62; // returns "number"
|
||||
<pre><code class="language-javascript">typeof 62; // returns "number"
|
||||
typeof 'Hello world'; // returns "string"
|
||||
</pre>
|
||||
</code></pre>
|
||||
<p>对于属性值,typeof 操作符将会返回属性所包含值的类型:</p>
|
||||
<pre class="brush: js">typeof document.lastModified; // returns "string"
|
||||
<pre><code class="language-javascript">typeof document.lastModified; // returns "string"
|
||||
typeof window.length; // returns "number"
|
||||
typeof Math.LN2; // returns "number"
|
||||
</pre>
|
||||
</code></pre>
|
||||
<p>对于方法和函数,typeof 操作符将会返回如下结果:</p>
|
||||
<pre class="brush: js">typeof blur; // returns "function"
|
||||
<pre><code class="language-javascript">typeof blur; // returns "function"
|
||||
typeof eval; // returns "function"
|
||||
typeof parseInt; // returns "function"
|
||||
typeof shape.split; // returns "function"
|
||||
</pre>
|
||||
</code></pre>
|
||||
<p>对于预定义的对象,typeof 操作符将会返回如下结果:</p>
|
||||
<pre class="brush: js">typeof Date; // returns "function"
|
||||
<pre><code class="language-javascript">typeof Date; // returns "function"
|
||||
typeof Function; // returns "function"
|
||||
typeof Math; // returns "object"
|
||||
typeof Option; // returns "function"
|
||||
typeof String; // returns "function"
|
||||
</pre>
|
||||
</code></pre>
|
||||
<h4 id="void" name="void"><code>void</code></h4>
|
||||
<p>void 运算符运用方法如下:</p>
|
||||
<pre class="brush: js">void (expression)
|
||||
<pre><code class="language-javascript">void (expression)
|
||||
void expression
|
||||
</pre>
|
||||
</code></pre>
|
||||
<p>void运算符,表明一个运算没有返回值。expression是javaScript表达式,括号中的表达式是一个可选项,当然使用该方式是一种好的形式。</p>
|
||||
<p>你可以使用void运算符指明一个超文本链接。该表达式是有效的,但是并不会在当前文档中进行加载。</p>
|
||||
<p>如下创建了一个超链接文本,当用户单击该文本时,不会有任何效果。</p>
|
||||
<pre class="brush: html line-numbers language-html"><code class="language-html"><span class="tag token"><span class="tag token"><span class="punctuation token"><</span>a</span> <span class="attr-name token">href</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>javascript:void(0)<span class="punctuation token">"</span></span><span class="punctuation token">></span></span>Click here to do nothing<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>a</span><span class="punctuation token">></span></span></code></pre>
|
||||
<pre><code class="language-html line-numbers language-html"><code class="language-html"><span class="tag token"><span class="tag token"><span class="punctuation token"><</span>a</span> <span class="attr-name token">href</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>javascript:void(0)<span class="punctuation token">"</span></span><span class="punctuation token">></span></span>Click here to do nothing<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>a</span><span class="punctuation token">></span></span></code></code></pre>
|
||||
<p>下面的代码创建了一个超链接,当用户单击它时,提交一个表单。</p>
|
||||
<pre class="brush: html line-numbers language-html"><code class="language-html"><span class="tag token"><span class="tag token"><span class="punctuation token"><</span>a</span> <span class="attr-name token">href</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>javascript:void(document.form.submit())<span class="punctuation token">"</span></span><span class="punctuation token">></span></span>
|
||||
Click here to submit<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>a</span><span class="punctuation token">></span></span></code></pre>
|
||||
<pre><code class="language-html line-numbers language-html"><code class="language-html"><span class="tag token"><span class="tag token"><span class="punctuation token"><</span>a</span> <span class="attr-name token">href</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>javascript:void(document.form.submit())<span class="punctuation token">"</span></span><span class="punctuation token">></span></span>
|
||||
Click here to submit<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>a</span><span class="punctuation token">></span></span></code></code></pre>
|
||||
<h3 id="关系操作符">关系操作符</h3>
|
||||
<p>关系操作符对操作数进行比较,根据比较结果真或假,返回相应的布尔值。</p>
|
||||
<h4 id="in" name="in"><code>in</code></h4>
|
||||
<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">propNameOrNumber in objectName
|
||||
</pre>
|
||||
<pre><code class="language-javascript">propNameOrNumber in objectName
|
||||
</code></pre>
|
||||
<p>在这里 <code>propNameOrNumber</code>可以是一个代表着属性名的字符串或者是一个代表着数组索引的数值表达式,而<code>objectName</code>则是一个对象名。</p>
|
||||
<p>下面的例子是 <code>in</code> 操作的常见用法。</p>
|
||||
<pre class="brush: js">// Arrays
|
||||
<pre><code class="language-javascript">// Arrays
|
||||
var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
|
||||
0 in trees; // returns true
|
||||
3 in trees; // returns true
|
||||
@@ -614,19 +614,19 @@ var myString = new String("coral");
|
||||
var mycar = {make: "Honda", model: "Accord", year: 1998};
|
||||
"make" in mycar; // returns true
|
||||
"model" in mycar; // returns true
|
||||
</pre>
|
||||
</code></pre>
|
||||
<h4 id="instanceof" name="instanceof"><code>instanceof</code></h4>
|
||||
<p>如果所判别的对象确实是所指定的类型,则返回<code>true</code>。其语法如下:</p>
|
||||
<pre class="brush: js">objectName instanceof objectType
|
||||
</pre>
|
||||
<pre><code class="language-javascript">objectName instanceof objectType
|
||||
</code></pre>
|
||||
<p><code>objectName</code> 是需要做判别的对象的名称,而<code>objectType</code>是假定的对象的类型, 例如<a href="Reference/Date" title="此页面仍未被本地化, 期待您的翻译!"><code>Date</code></a>或 <a href="Reference/Array" title="REDIRECT Array"><code>Array</code></a>.</p>
|
||||
<p>当你需要确认一个对象在运行时的类型时,可使用<code>instanceof</code>. 例如,需要 catch 异常时,你可以针对抛出异常的类型,来做不同的异常处理。</p>
|
||||
<p>例如, 下面的代码使用<code>instanceof</code>去判断 <code>theDay</code>是否是一个 <code>Date</code> 对象. <code>因为theDay</code>是一个<code>Date</code>对象, <code>所以if</code>中的代码会执行.</p>
|
||||
<pre class="brush: js">var theDay = new Date(1995, 12, 17);
|
||||
<pre><code class="language-javascript">var theDay = new Date(1995, 12, 17);
|
||||
if (theDay instanceof Date) {
|
||||
// statements to execute
|
||||
}
|
||||
</pre>
|
||||
</code></pre>
|
||||
<h3 id="运算符优先级">运算符优先级</h3>
|
||||
<p>运算符的优先级,用于确定一个表达式的计算顺序。在你不能确定优先级时,可以通过使用括号显式声明运算符的优先级。</p>
|
||||
<p>下表列出了描述符的优先级,从最高到最低。</p>
|
||||
@@ -722,22 +722,22 @@ if (theDay instanceof Date) {
|
||||
<h3 id="new" name="new">基本表达式</h3>
|
||||
<h4 id="this" name="this"><code>this</code></h4>
|
||||
<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">this["propertyName"]
|
||||
<pre><code class="language-javascript">this["propertyName"]
|
||||
this.propertyName
|
||||
</pre>
|
||||
</code></pre>
|
||||
<p>假设一个用于验证对象<code>value</code>属性的<code>validate</code>函数,传参有对象,最高值和最低值。</p>
|
||||
<pre class="brush: js">function validate(obj, lowval, hival){
|
||||
<pre><code class="language-javascript">function validate(obj, lowval, hival){
|
||||
if ((obj.value < lowval) || (obj.value > hival))
|
||||
console.log("Invalid Value!");
|
||||
}
|
||||
</pre>
|
||||
</code></pre>
|
||||
<p>你可以在任何表单元素的<code>onchange</code>事件处理中调用<code>validat</code>函数,用<code>this</code>来指代当前的表单元素,用例如下:</p>
|
||||
<pre class="brush: html"><p>Enter a number between 18 and 99:</p>
|
||||
<pre><code class="language-html"><p>Enter a number between 18 and 99:</p>
|
||||
<input type="text" name="age" size=3 onChange="validate(this, 18, 99);">
|
||||
</pre>
|
||||
</code></pre>
|
||||
<h4 id="分组操作符">分组操作符</h4>
|
||||
<p>分组操作符()控制了表达式中计算的优先级. 举例来说, 你可以改变先乘除后加减的顺序,转而先计算加法。</p>
|
||||
<pre class="brush:js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> a <span class="operator token">=</span> <span class="number token">1</span><span class="punctuation token">;</span>
|
||||
<pre><code class="language-js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> a <span class="operator token">=</span> <span class="number token">1</span><span class="punctuation token">;</span>
|
||||
<span class="keyword token">var</span> b <span class="operator token">=</span> <span class="number token">2</span><span class="punctuation token">;</span>
|
||||
<span class="keyword token">var</span> c <span class="operator token">=</span> <span class="number token">3</span><span class="punctuation token">;</span>
|
||||
|
||||
@@ -750,7 +750,7 @@ a <span class="operator token">+</span> <span class="punctuation token">(</span>
|
||||
<span class="punctuation token">(</span>a <span class="operator token">+</span> b<span class="punctuation token">)</span> <span class="operator token">*</span> c <span class="comment token">// 9</span>
|
||||
|
||||
<span class="comment token">// 这等价于</span>
|
||||
a <span class="operator token">*</span> c <span class="operator token">+</span> b <span class="operator token">*</span> c <span class="comment token">// 9</span></code></pre>
|
||||
a <span class="operator token">*</span> c <span class="operator token">+</span> b <span class="operator token">*</span> c <span class="comment token">// 9</span></code></code></pre>
|
||||
<h5 id="数值推导">数值推导</h5>
|
||||
<p>Comprehensions 是一个带有实验性质的JavaScript特性, 计划将在未来的ECMAScript版本中加入该特性. 有两种类型的comprehensions:</p>
|
||||
<dl>
|
||||
@@ -760,30 +760,30 @@ a <span class="operator token">*</span> c <span class="operator token">+</span>
|
||||
<dd>生成器数值推导 (译者注:生成器数值推导标准化可能不大,推荐使用 <a href="https://developer.mozilla.orgReference/Operators/Generator_comprehensions">生成器函数</a>)</dd>
|
||||
</dl>
|
||||
<p>Comprehensions特性被许多编程语言所采用,该特性能够使你快速地通过一个已有的数组来创建出一个新的数组,比如:</p>
|
||||
<pre class="brush:js line-numbers language-js"><code class="language-js"><span class="punctuation token">[</span><span class="keyword token">for</span> <span class="punctuation token">(</span>i <span class="keyword token">of</span> <span class="punctuation token">[</span> <span class="number token">1</span><span class="punctuation token">,</span> <span class="number token">2</span><span class="punctuation token">,</span> <span class="number token">3</span> <span class="punctuation token">]</span><span class="punctuation token">)</span> i<span class="operator token">*</span>i <span class="punctuation token">]</span><span class="punctuation token">;</span>
|
||||
<pre><code class="language-js line-numbers language-js"><code class="language-js"><span class="punctuation token">[</span><span class="keyword token">for</span> <span class="punctuation token">(</span>i <span class="keyword token">of</span> <span class="punctuation token">[</span> <span class="number token">1</span><span class="punctuation token">,</span> <span class="number token">2</span><span class="punctuation token">,</span> <span class="number token">3</span> <span class="punctuation token">]</span><span class="punctuation token">)</span> i<span class="operator token">*</span>i <span class="punctuation token">]</span><span class="punctuation token">;</span>
|
||||
<span class="comment token">// [ 1, 4, 9 ]</span>
|
||||
|
||||
<span class="keyword token">var</span> abc <span class="operator token">=</span> <span class="punctuation token">[</span> <span class="string token">"A"</span><span class="punctuation token">,</span> <span class="string token">"B"</span><span class="punctuation token">,</span> <span class="string token">"C"</span> <span class="punctuation token">]</span><span class="punctuation token">;</span>
|
||||
<span class="punctuation token">[</span><span class="keyword token">for</span> <span class="punctuation token">(</span>letters <span class="keyword token">of</span> abc<span class="punctuation token">)</span> letters<span class="punctuation token">.</span><span class="function token">toLowerCase</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">]</span><span class="punctuation token">;</span>
|
||||
<span class="comment token">// [ "a", "b", "c" ]</span></code></pre>
|
||||
<span class="comment token">// [ "a", "b", "c" ]</span></code></code></pre>
|
||||
<h3 id="左值表达式">左值表达式</h3>
|
||||
<p>左值可以作为赋值的目标。</p>
|
||||
<h4 id="new" name="new"><code>new</code></h4>
|
||||
<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">var objectName = new objectType([param1, param2, ..., paramN]);
|
||||
</pre>
|
||||
<pre><code class="language-javascript">var objectName = new objectType([param1, param2, ..., paramN]);
|
||||
</code></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>super([arguments]); // calls the parent constructor. super.functionOnParent([arguments]);</pre>
|
||||
<pre>super([arguments]); // calls the parent constructor. super.functionOnParent([arguments]);</code></pre>
|
||||
<h4 id="扩展语句">扩展语句</h4>
|
||||
<p><a href="Reference/Operators/Spread_operator">扩展语句</a>符允许一个表达式在原地展开, 当需要多个参数 (比如函数调用时) 或者多个值(比如字面量数组) 。</p>
|
||||
<p><strong>例如:</strong>现在你有一个数组,你想创建一个新数组,并将刚才那个作为它的一部分,用array的字面语法是不够的,你不得不写一些代码实现它,比如用些<code>push</code>, <code>splice</code>, <code>concat等等。但是用</code>spread syntax就没问题了:</p>
|
||||
<pre><code>var parts = ['shoulder', 'knees'];
|
||||
var lyrics = ['head', ...parts, 'and', 'toes'];</code></pre>
|
||||
var lyrics = ['head', ...parts, 'and', 'toes'];</code></code></pre>
|
||||
<p>类似的,扩展语句也可以用在函数调用的时候:</p>
|
||||
<pre><code>function f(x, y, z) { }
|
||||
var args = [0, 1, 2];
|
||||
f(...args);</code></pre>
|
||||
f(...args);</code></code></pre>
|
||||
<div><div class="prevnext" style="text-align: right;">
|
||||
<p><a href="Guide/Functions" style="float: left;">« 上一页</a><a href="Guide/Numbers_and_dates">下一页 »</a></p>
|
||||
</div></div>
|
||||
|
||||
Reference in New Issue
Block a user