js語法與java類似,每個語句會以 ; 結尾,語句塊用{}
但是,js並不強制要求在每個語句末尾加上;瀏覽器中執行js的引擎會在每個語句的末尾自動補上;
var x = 1; js的註釋一行內可用// 多行可用/* ... */ 來進行註釋。
js中的判斷相等。
請注意 js把null.undefined 0 NaN和空字符串 ''視爲false,其他值一概視爲true.
第一種是 == 比較 它會自動轉換數據類型再進行比較。很多時候,會得到非常詭異的結果
第二種是 === 比較 它不會自動轉換數據類型,如果數據類型不一致,則會返回false,如果一致,再進行比較。
另一個例外是NaN這個特殊的Number,與其他值都不相同,包括自己。
NaN == NaN //false
唯一判斷NaN的方法便是通過jsNaN函數
isNaN(NaN) //true
浮點數進行比較。
1 / 3 == (1 - 2 / 3) //false
這不是JavaScript的設計缺陷。浮點數在運算過程中會產生誤差,因爲計算機無法精確表示無限循環小數。要比較兩個浮點數是否相等,只能計算它們之差的絕對值,看是否小於某個閾值:
Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true
null 和 undefined
null表示一個空的值,它和0 還有空字符串‘’ 不同,0代表一個數值,‘’表示一個長度爲0的字符串,而null表示空,即沒有分配空間。
但是,在JavaScript中,還有一個和null
類似的undefined
,它表示“未定義”。
js設計者希望用null表示一個空的值,而undefined表示值沒有定義。
大多數情況下,我們都應該用null
。undefined
僅僅在判斷函數參數是否傳遞的情況下有用。
數組:
[1, 2, 3.14, 'Hello', null, true];
變量在JavaScript中就是用一個變量名錶示,變量名是大小寫英文、數字、$
和_
的組合,且不能用數字開頭。變量名也不能是JavaScript的關鍵字,如if
、while
等。申明一個變量用var
語句,比如:
var a = 1;
同一個變量可以反覆賦值,而且可以是不同的變量。
var a = 123;
a = '123';
這種變量本身類型不固定的語言稱之爲動態語言,與之對應的是靜態語言,靜態語言在定義變量的時候必須指定其變量類型,而動態類型語言則不需要。