語(yǔ)法(Syntax)

2018-06-15 16:33 更新

這節(jié)介紹一些JavaScript的基本語(yǔ)法規(guī)則。

語(yǔ)句和表達(dá)式(Statements versus expressions)

了解JavaScript的語(yǔ)法,先來了解兩個(gè)主要的語(yǔ)法類型:語(yǔ)句和表達(dá)式。

  • 語(yǔ)句通?!?code>做某些事情”。程序是一組語(yǔ)句序列。舉個(gè)例子,下面聲明(創(chuàng)建)一個(gè)變量 foo: var foo;
  • 表達(dá)式產(chǎn)生值。他們通常位于賦值操作的右邊,函數(shù)參數(shù),等。舉個(gè)例子: 3 * 7

語(yǔ)句和表達(dá)式之間的區(qū)別最好通過實(shí)例說明,JavaScript(像Java)有兩種不同的方式實(shí)現(xiàn)if-then-else。一種是用語(yǔ)句:

var x;
if (y >= 0) {
    x = y;
} else {
    x = -y;
}

另一種是表達(dá)式:

var x = y >= 0 ? y : -y;

你可以將后者作為函數(shù)參數(shù)(但前者不行):

myFunction(y >= 0 ? y : -y)

最后,每當(dāng)JavaScript期待一個(gè)語(yǔ)句,你也可以用一個(gè)表達(dá)式代替。例如:

foo(bar(7, 1));

foo(...);是一個(gè)語(yǔ)句(也叫做表達(dá)式語(yǔ)句),bar(7, 1) 是一個(gè)表達(dá)式。他們都實(shí)現(xiàn)函數(shù)調(diào)用。

流程控制語(yǔ)句和語(yǔ)句塊(Control flow statements and blocks)

流程控制語(yǔ)句,其語(yǔ)句體可以是單條語(yǔ)句。舉兩個(gè)例子:

if (obj !== null) obj.foo();
while (x > 0) x--;

然而,任何語(yǔ)句總能被語(yǔ)句塊代替,花括號(hào)包含零或多條語(yǔ)句。因此,你也可以這樣寫:

if (obj !== null) {
    obj.foo();
}


while (x > 0) {
    x--;
}

在本文中,我們只使用后一種方式。

分號(hào)(Semicolons)

JavaScript中的分號(hào)是可選的。但省略(分號(hào))可能會(huì)帶來意想不到的結(jié)果,所以我建議你不要那樣做。 正如上面所看到的,分號(hào)作為語(yǔ)句的結(jié)尾,但語(yǔ)句塊不需要。僅有一種情況下你能看到語(yǔ)句塊后面有分號(hào)——函數(shù)表達(dá)式后面的函數(shù)體塊。表達(dá)式作為語(yǔ)句的結(jié)尾,后面是分號(hào):

var x = 3 * 7;
var f = function () { };

注釋(Comments)

JavaScript的注釋有兩種形式:?jiǎn)涡凶⑨尯投嘈凶⑨?。單行注釋?code>//開頭,以換行符結(jié)尾:

x++; // 單行(single-line)注釋

多行注釋用/**/包裹

/* 
 這是多行注釋
 多行哦
 */

深入閱讀

Expressions versus statements in JavaScript Automatic semicolon insertion in JavaScript

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)