mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2026-04-24 11:22:42 +08:00
语法高亮,滚动条美化,设置页面调整
This commit is contained in:
@@ -135,36 +135,36 @@
|
||||
<p>注释用来在源码中增加提示、笔记、建议、警告等信息,可以帮助阅读和理解源码。在调试时,可以用来将一段代码屏蔽掉,防止其运行。</p>
|
||||
<p>JavaScript中有两种生成注释的方法。</p>
|
||||
<p>第一种是<strong>单行注释</strong> (single-line comment),使用<code>//</code>,会将该行中符号以后的文本都视为注释:</p>
|
||||
<pre class="brush: js">function comment() {
|
||||
<pre><code class="language-javascript">function comment() {
|
||||
// 这是行注释
|
||||
console.log("Hello world!");
|
||||
}
|
||||
comment();
|
||||
</pre>
|
||||
</code></pre>
|
||||
<p>第二种是<strong>多行注释</strong> (multiple-line comment),使用<code>/* */</code> ,这种方式更加灵活:</p>
|
||||
<p>比如,可以使用多行注释来实现单行注释:</p>
|
||||
<pre class="brush: js">function comment() {
|
||||
<pre><code class="language-javascript">function comment() {
|
||||
/* 单行注释 */
|
||||
console.log("Hello world!");
|
||||
}
|
||||
comment();</pre>
|
||||
comment();</code></pre>
|
||||
<p>也可以用来实现多行注释:</p>
|
||||
<pre class="brush: js">function comment() {
|
||||
<pre><code class="language-javascript">function comment() {
|
||||
/* 多行注释,
|
||||
直到终止符号才结束 */
|
||||
console.log("Hello world!");
|
||||
}
|
||||
comment();</pre>
|
||||
comment();</code></pre>
|
||||
<p>多行注释也可以用于单行间注释,这样会造成代码可读性变差,所以要谨慎使用:</p>
|
||||
<pre class="brush: js">function comment(x) {
|
||||
<pre><code class="language-javascript">function comment(x) {
|
||||
console.log("Hello " + x /* 引入x的值 */ + " !");
|
||||
}
|
||||
comment("world");</pre>
|
||||
comment("world");</code></pre>
|
||||
<p>另外,块注释也可以用来屏蔽一段代码,只要将这段代码用块注释包裹起来就可以了:</p>
|
||||
<pre class="brush: js">function comment() {
|
||||
<pre><code class="language-javascript">function comment() {
|
||||
/* console.log("Hello world!"); */
|
||||
}
|
||||
comment();</pre>
|
||||
comment();</code></pre>
|
||||
<p>注释中的<code>console.log()</code>的调用始终无效。这种方式可以屏蔽任意多行的代码。</p>
|
||||
<h2 id="关键字">关键字</h2>
|
||||
<h3 id="ECMAScript_6中的保留关键字">ECMAScript 6中的保留关键字</h3>
|
||||
@@ -253,98 +253,98 @@ comment();</pre>
|
||||
<p>另外,直接量<code>null</code>、<code>true</code>和<code>false</code>同样不能被当成标识使用。</p>
|
||||
<h3 id="保留字的使用">保留字的使用</h3>
|
||||
<p>事实上保留字是仅针对标识符(Identifier)的文法定义而言的(而非标识符名(IdentifierName)的文法定义). 如 <a class="external" href="http://es5.github.com/#A.1" rel="noopener">es5.github.com/#A.1</a>中所描述的, 这些都是不排斥保留字的标识符名.</p>
|
||||
<pre class="brush: js">a.import
|
||||
<pre><code class="language-javascript">a.import
|
||||
a["import"]
|
||||
a = { import: "test" }.
|
||||
</pre>
|
||||
</code></pre>
|
||||
<p>另一方面,如下用法是不允许的。因为它是一个标识符,而标识符的文法定义是除保留字以外的标识符名。标识符用于函数声明式和函数表达式.</p>
|
||||
<pre class="brush: js">function import() {} // Illegal.</pre>
|
||||
<pre><code class="language-javascript">function import() {} // Illegal.</code></pre>
|
||||
<h2 id="直接量">直接量</h2>
|
||||
<h3 id="空直接量">空直接量</h3>
|
||||
<p><code>更多信息可以参考<a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/null">null</a></code></p>
|
||||
<pre class="brush: js">null</pre>
|
||||
<pre><code class="language-javascript">null</code></pre>
|
||||
<h3 id="布尔直接量">布尔直接量</h3>
|
||||
<p>更多信息可以参考<a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean"><code>Boolean</code></a></p>
|
||||
<pre class="brush: js">true
|
||||
false</pre>
|
||||
<pre><code class="language-javascript">true
|
||||
false</code></pre>
|
||||
<h3 id="数值直接量">数值直接量</h3>
|
||||
<h4 id="十进制">十进制</h4>
|
||||
<pre class="brush: js">1234567890
|
||||
<pre><code class="language-javascript">1234567890
|
||||
42
|
||||
|
||||
// 谨慎使用0开头的数值
|
||||
|
||||
0888 // 转换为十进制888
|
||||
0777 // 转换为八进制777,十进制511
|
||||
</pre>
|
||||
</code></pre>
|
||||
<p>请注意,十进制数值直接量可以以0开头,但是如果0以后的最高位比8小,数值将会被认为是八进制而不会报错。更多信息可以参考<a class="external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=957513" rel="noopener" title="`DecimalIntegerLiteral` can never be `0` directly followed by `8` or `9`">bug 957513</a>和<a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt#Octal_interpretations_with_no_radix"><code>parseInt()</code></a>。</p>
|
||||
<h4 id="二进制">二进制</h4>
|
||||
<p>二进制表示为开头是0后接大写或小写的B(<code>0b</code>或者<code>0B</code>)。这是ECMAScript 6中的新语法,可以参考下面的浏览器兼容性表格。如果<code>0b</code>之后有除了0或1以外的数字,将会抛出<code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError">SyntaxError</a></code>:“Missing binary digits after 0b”。</p>
|
||||
<pre class="brush: js">var FLT_SIGNBIT = 0b10000000000000000000000000000000; // 2147483648
|
||||
<pre><code class="language-javascript">var FLT_SIGNBIT = 0b10000000000000000000000000000000; // 2147483648
|
||||
var FLT_EXPONENT = 0b01111111100000000000000000000000; // 2139095040
|
||||
var FLT_MANTISSA = 0B00000000011111111111111111111111; // 8388607</pre>
|
||||
var FLT_MANTISSA = 0B00000000011111111111111111111111; // 8388607</code></pre>
|
||||
<h4 id="八进制">八进制</h4>
|
||||
<p>八进制表示为开头是0后接大写或小写的O(<code>0o</code>或<code>0O</code>)。这是ECMAScript 6中的新语法,可以参考下面的浏览器兼容性表格。如果有不在(01234567)中的数字,将会抛出<code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError">SyntaxError</a></code>:“Missing octal digits after 0o”。</p>
|
||||
<pre class="brush: js">var n = 0O755; // 493
|
||||
<pre><code class="language-javascript">var n = 0O755; // 493
|
||||
var m = 0o644; // 420
|
||||
|
||||
// 用0开头也可以实现(请查看上方十进制有关部分)
|
||||
0755
|
||||
0644
|
||||
</pre>
|
||||
</code></pre>
|
||||
<h4 id="十六进制">十六进制</h4>
|
||||
<p>十六进制表示为开头是0后接大写或小写的X(<code>0x</code>或<code>0X</code>)。如果有不在(0123456789ABCDEF)中的数字,将会抛出<code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError">SyntaxError</a></code>:“Identifier starts immediately after numeric literal”。</p>
|
||||
<pre class="brush: js">0xFFFFFFFFFFFFFFFFF // 295147905179352830000
|
||||
<pre><code class="language-javascript">0xFFFFFFFFFFFFFFFFF // 295147905179352830000
|
||||
0x123456789ABCDEF // 81985529216486900
|
||||
0XA // 10
|
||||
</pre>
|
||||
</code></pre>
|
||||
<h3 id="对象直接量">对象直接量</h3>
|
||||
<p>更多信息可以参考<a href="Reference/Global_Objects/Object" title="Object 构造函数创建一个对象包装器。"><code>Object</code></a>和<a href="/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer">对象初始化器</a>。</p>
|
||||
<pre class="brush: js">var o = { a: "foo", b: "bar", c: 42 };
|
||||
<pre><code class="language-javascript">var o = { a: "foo", b: "bar", c: 42 };
|
||||
|
||||
// ES6中的简略表示方法
|
||||
var a = "foo", b = "bar", c = 42;
|
||||
var o = {a, b, c};
|
||||
// 不需要这样
|
||||
var o = { a: a, b: b, c: c };
|
||||
</pre>
|
||||
</code></pre>
|
||||
<h3 id="数组直接量">数组直接量</h3>
|
||||
<p>更多信息可以参考<a href="Reference/Array" title="REDIRECT Array"><code>Array</code></a>。</p>
|
||||
<pre class="brush: js">[1954, 1974, 1990, 2014]</pre>
|
||||
<pre><code class="language-javascript">[1954, 1974, 1990, 2014]</code></pre>
|
||||
<h3 id="字符串直接量">字符串直接量</h3>
|
||||
<pre class="brush: js">'foo'
|
||||
"bar"</pre>
|
||||
<pre><code class="language-javascript">'foo'
|
||||
"bar"</code></pre>
|
||||
<h4 id="十六进制转义序列">十六进制转义序列</h4>
|
||||
<pre class="brush: js">'\xA9' // "©"
|
||||
</pre>
|
||||
<pre><code class="language-javascript">'\xA9' // "©"
|
||||
</code></pre>
|
||||
<h4 id="Unicode转义序列">Unicode转义序列</h4>
|
||||
<p>Unicode转义序列要求在<code>\u</code>之后至少有四个字符。</p>
|
||||
<pre class="brush: js">'\u00A9' // "©"</pre>
|
||||
<pre><code class="language-javascript">'\u00A9' // "©"</code></pre>
|
||||
<h4 id="Unicode编码转义">Unicode编码转义</h4>
|
||||
<p>ECMAScript 6新增特性。使用Unicode编码转义,任何字符都可以被转义为十六进制编码。最高可以用到<code>0x10FFFF</code>。使用单纯的Unicode转义通常需要写成分开的两半以达到相同的效果。</p>
|
||||
<p>可以参考<a href="Reference/Global_Objects/String/fromCodePoint" title="String.fromCodePoint() 静态方法返回使用指定的代码点序列创建的字符串。"><code>String.fromCodePoint()</code></a>和<a href="Reference/Global_Objects/String/codePointAt" title="codePointAt() 方法返回 一个 Unicode 编码点值的非负整数。"><code>String.prototype.codePointAt()</code></a>。</p>
|
||||
<pre class="brush: js">'\u{2F804}'
|
||||
<pre><code class="language-javascript">'\u{2F804}'
|
||||
|
||||
// 使用单纯Unicode转义
|
||||
'\uD87E\uDC04'</pre>
|
||||
'\uD87E\uDC04'</code></pre>
|
||||
<h3 id="正则表达式直接量">正则表达式直接量</h3>
|
||||
<p>更多信息可以参考<a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp"><code>RegExp</code></a>。</p>
|
||||
<pre class="brush: js">/ab+c/g
|
||||
<pre><code class="language-javascript">/ab+c/g
|
||||
|
||||
// 一个空的正则表达式直接量
|
||||
// 必须有一个空的非捕获分组
|
||||
// 以避免被当成是行注释符号
|
||||
/(?:)/</pre>
|
||||
/(?:)/</code></pre>
|
||||
<h3 id="模板直接量">模板直接量</h3>
|
||||
<p>更多信息可以参考<a href="/en-US/docs/Web/JavaScript/Reference/template_strings">template strings</a>。</p>
|
||||
<pre class="brush: js">`string text`
|
||||
<pre><code class="language-javascript">`string text`
|
||||
|
||||
`string text line 1
|
||||
string text line 2`
|
||||
|
||||
`string text ${expression} string text`
|
||||
|
||||
tag `string text ${expression} string text`</pre>
|
||||
tag `string text ${expression} string text`</code></pre>
|
||||
<h2 id="自动分号补全">自动分号补全</h2>
|
||||
<p>一些<a href="/en-US/docs/Web/JavaScript/Reference/Statements">JavaScript语句</a>必须用分号结束,所以会被自动分号补全 (ASI)影响:</p>
|
||||
<ul>
|
||||
@@ -358,21 +358,21 @@ tag `string text ${expression} string text`</pre>
|
||||
</ul>
|
||||
<p>ECMAScript规格提到<a class="external" href="http://people.mozilla.org/~jorendorff/es6-draft.html#sec-rules-of-automatic-semicolon-insertion" rel="noopener">自动分号补全的三个规则</a>。</p>
|
||||
<p>1. 当出现一个不允许的<a href="#Line_terminators">行终止符</a>或“}”时,会在其之前插入一个分号。</p>
|
||||
<pre class="brush: js">{ 1 2 } 3
|
||||
<pre><code class="language-javascript">{ 1 2 } 3
|
||||
|
||||
// 将会被ASI转换为
|
||||
|
||||
{ 1 2 ;} 3;</pre>
|
||||
{ 1 2 ;} 3;</code></pre>
|
||||
<p>2. 当捕获到标识符输入流的结尾,并且无法将单个输入流转换为一个完整的程序时,将在结尾插入一个分号。</p>
|
||||
<p>在下面这段中,由于在<code>b</code>和<code>++</code>之间出现了一个行终止符,所以<code>++</code>未被当成变量<code>b</code>的<a href="/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Increment">后置运算符</a>。</p>
|
||||
<pre class="brush: js">a = b
|
||||
<pre><code class="language-javascript">a = b
|
||||
++c
|
||||
|
||||
// 将被ASI转换为
|
||||
|
||||
a = b;
|
||||
++c;
|
||||
</pre>
|
||||
</code></pre>
|
||||
<p>3. 当语句中包含语法中的限制产品后跟一个行终止符的时候,将会在结尾插入一个分号。带“这里没有行终止符”规则的语句有:</p>
|
||||
<ul>
|
||||
<li>后置运算符(<code>++</code>和<code>--)</code></li>
|
||||
@@ -382,14 +382,14 @@ a = b;
|
||||
<li><code>yield</code>, <code>yield*</code></li>
|
||||
<li><code>module</code></li>
|
||||
</ul>
|
||||
<pre class="brush: js">return
|
||||
<pre><code class="language-javascript">return
|
||||
a + b
|
||||
|
||||
// 将被ASI转换为
|
||||
|
||||
return;
|
||||
a + b;
|
||||
</pre>
|
||||
</code></pre>
|
||||
<h2 id="规格">规格</h2>
|
||||
<table class="standard-table">
|
||||
<tbody>
|
||||
|
||||
Reference in New Issue
Block a user