W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
我們將要學(xué)習(xí)的第一個內(nèi)容就是構(gòu)建代碼塊。
語句是執(zhí)行行為(action)的語法結(jié)構(gòu)和命令。
我們已經(jīng)見過了 ?alert('Hello, world!')
? 這樣可以用來顯示消息的語句。
我們可以在代碼中編寫任意數(shù)量的語句。語句之間可以使用分號進(jìn)行分割。
例如,我們將 “Hello World” 這條信息一分為二:
alert('Hello'); alert('World');
通常,每條語句獨(dú)占一行,以提高代碼的可讀性:
alert('Hello');
alert('World');
當(dāng)存在換行符(line break)時,在大多數(shù)情況下可以省略分號。
下面的代碼也是可以運(yùn)行的:
alert('Hello')
alert('World')
在這,JavaScript 將換行符理解成“隱式”的分號。這也被稱為 自動分號插入。
在大多數(shù)情況下,換行意味著一個分號。但是“大多數(shù)情況”并不意味著“總是”!
有很多換行并不是分號的例子,例如:
alert(3 +
1
+ 2);
代碼輸出 ?6
?,因為 JavaScript 并沒有在這里插入分號。顯而易見的是,如果一行以加號 ?"+"
? 結(jié)尾,那么這是一個“不完整的表達(dá)式”,不需要分號。所以,這個例子得到了預(yù)期的結(jié)果。
但存在 JavaScript 無法確定是否真的需要自動插入分號的情況。
這種情況下發(fā)生的錯誤是很難被找到和解決的。
一個錯誤的例子
如果你好奇地想知道一個這種錯誤的具體例子,那你可以看看下面這段代碼:alert("Hello"); [1, 2].forEach(alert);
你不需要考慮方括號
[]
和forEach
的含義,現(xiàn)在它們并不重要,之后我們會學(xué)習(xí)它們。讓我們先記住這段代碼的運(yùn)行結(jié)果:先顯示Hello
,然后顯示1
,然后2
。
現(xiàn)在,讓我們刪除
alert
語句后的分號:
alert("Hello") [1, 2].forEach(alert);
與上面的代碼相比只有一個字符的區(qū)別:第一行末尾的分號不見了。
如果我們運(yùn)行這段代碼,只有第一個 ?
Hello
?會被顯示出來(并且有一個報錯,你可能需要打開控制臺才能看到它)。并且不會再有數(shù)字被顯示出來。這是因為,JavaScript 引擎并沒有假設(shè)在方括號 ?
[...]
? 前有一個分號。因此,最后一個示例中的代碼被視為了單個語句。對于引擎來說,它是這樣的:
alert("Hello")[1, 2].forEach(alert);
看起來很奇怪,對吧?在這種情況下,這樣將兩行代碼合并到一起是不對的。我們需要在
alert
后面加一個分號,代碼才能正常運(yùn)行。
這也可能發(fā)生在其他情況下。
即使語句被換行符分隔了,我們依然建議在它們之間加分號。這個規(guī)則被社區(qū)廣泛采用。我們再次強(qiáng)調(diào)一下 —— 大部分時候可以省略分號,但是最好不要省略分號,尤其對新手來說。
隨著時間推移,程序變得越來越復(fù)雜。為代碼添加 注釋 來描述它做了什么和為什么要這樣做,變得非常有必要了。
你可以在腳本的任何地方添加注釋,它們并不會影響代碼的執(zhí)行,因為引擎會直接忽略它們。
單行注釋以兩個正斜杠字符 //
開始。
這一行的剩余部分是注釋。它可能獨(dú)占一行或者跟隨在一條語句的后面。
就像這樣:
// 這行注釋獨(dú)占一行
alert('Hello');
alert('World'); // 這行注釋跟隨在語句后面
多行注釋以一個正斜杠和星號開始 “/*”
并以一個星號和正斜杠結(jié)束 “*/”
。
就像這樣:
/* 兩個消息的例子。
這是一個多行注釋。
*/
alert('Hello');
alert('World');
注釋的內(nèi)容被忽略了,所以如果我們在 /* … */
中放入代碼,并不會執(zhí)行。
有時候,可以很方便地臨時禁用代碼:
/* 注釋代碼
alert('Hello');
*/
alert('World');
使用快捷鍵!
在大多數(shù)的編輯器中,一行代碼可以使用 ?Ctrl+/
? 快捷鍵進(jìn)行單行注釋,諸如 ?Ctrl+Shift+/
? 的快捷鍵可以進(jìn)行多行注釋(選擇代碼,然后按下快捷鍵)。對于 Mac 電腦,應(yīng)使用 ?Cmd
?而不是 ?Ctrl
?,使用 ?Option
?而不是 ?Shift
?。
不支持注釋嵌套!
不要在 ?/*...*/
? 內(nèi)嵌套另一個 ?/*...*/
?。
下面這段代碼報錯而無法執(zhí)行:/* /* 嵌套注釋 ?!? */ */ alert( 'World' );
對你的代碼進(jìn)行注釋,這還有什么可猶豫的!
注釋會增加代碼總量,但這一點(diǎn)也不是什么問題。有很多工具可以幫你在把代碼部署到服務(wù)器之前縮減代碼。這些工具會移除注釋,這樣注釋就不會出現(xiàn)在發(fā)布的腳本中。所以,注釋對我們的生產(chǎn)沒有任何負(fù)面影響。
在后面的教程中,會有一章 代碼質(zhì)量 的內(nèi)容解釋如何更好地寫注釋。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: