1. 程式人生 > >JavaScript的基本語法

JavaScript的基本語法

語句

JavaScript程式的執行單位為行,也就是一行一行地執行。一般情況下,每一行就是一個語句。

var a = 1 + 3;

表示式不需要分號結尾。一旦在表示式後面新增分號,則JavaScript引擎就將表示式視為語句,這樣會產生一些沒有意義的語句。

1 + 3;
"abc";

上面兩行語句只是單純的產生一個值,沒有任何實際的意義。

變數

變數是對值得具名引用。
注意:JavaScript的變數名區分大小寫,所以A和a是不同的變數。
如果只宣告變數沒有賦值,則該變數的值是undefinedundefined是一個特殊的值,表示無意義
變數賦值的時候,忘了寫var關鍵字,這條語句也是有效的。

var a = 1;
// 基本等同
a = 1;

但是不謝var的做法不利於表達意圖,而且容易不知不覺的建立全域性變數。
JavaScript是一種動態型別語言,也就是說,變數的型別沒有限制,變數可以隨時更改型別。

var a = 1;
a = "hello";

如果使用var重新宣告一個已經存在的變數,是無效的。

var x = 1;
var x;
x // 1

上面程式碼中,變數x聲明瞭兩次,第二次宣告是無效的。
但是,如果第二次宣告的時候還進行了賦值,則會覆蓋掉前面的值。只要知道宣告和賦值是分開的兩步操作,就可以很容易理解了。

var x = 1;
var x = 2;
x // 2
// 等同於
var x = 1;
var x;
x = 2;

變數提升

JavaScript引擎的工作方式是,先解析程式碼,獲取所有的被宣告的變數。然後再一行一行的執行。這造成的結果就是所有的變數宣告語句,都被提升到程式碼的頭部,這就叫做變數提升。

console.log(a);
var a = 1;

因為變數提升,真正執行如下:

var a;
console.log(a);
a = 1;
// 結果顯示 <font color=red>undefined</font>

識別符號

按照要求命名,最好使用駝峰。

註釋

單行註釋://
多行註釋:/* 和 */
相容HTML註釋方式:
需要注意的是,-->只有在行首才被當成單行註釋,否則當成正常的運算子。

function countDown(n) {
    while(n --> 0)
        console.log(n);
}
countDown(3);
// 2
// 1
// 0

上面程式碼中,n --> 0實際上被當成n-- > 0,注意先判斷在做--,再console.log(),所以輸出2,1,0。

區塊

JavaScript使用大括號,將多個相關語句組合在一起,稱為區塊(block)。
對於var關鍵字來說,JavaScript的區塊不構成單獨的作用域(scope)。

{
    var a = 1;
}
a // 1

上面程式碼在區塊內部,使用var關鍵字宣告並賦值了變數a,然後再區塊外部,變數a依然有效,區塊對於var命令不構成單獨的作用域。在JavaScript語言中,單獨使用區塊並不常見,區塊往往用來構成其他更復雜的語法結構,比如for、if、while、function等。

條件語句

if語句需要注意不要混淆賦值表示式(=)、相等運算子(==)和嚴格相等運算子(===)。

迴圈語句

和Java類似

break和continue

和Java類似,且可以使用break + label的方式跳出某個label塊。