
Javascript語法借鑒于 Java,Awk,Perl,Python,并且是大小寫敏感的,使用Unicode字符集編碼。在Javascript中,指令叫做語句,語句用分號
;隔開,語句可以不加分號(不推薦)。
注釋
注釋的規(guī)則跟C++和其他語言類似,單行注釋用//,多行注釋通過/*注釋內(nèi)容*/:

聲明
** var **
聲明一個變量,在聲明變量的同時可以賦值(可選)
** let **
聲明一個塊級作用域局部變量,可以賦初始值(可選)
** const **
聲明一個只讀的命名常量
變量
變量作為引用值的一個標(biāo)識符(符號),標(biāo)識符遵循以下規(guī)則:
以字母、下劃線或者$符號開頭,可以使用Unicode字符集;標(biāo)識符大小寫敏感,即foo、Foo、fOo是不同的標(biāo)識符
聲明變量
你可以通過以下方式聲明變量:
- 使用關(guān)鍵字var, 例如:
var x = 42;這種方式用來聲明全局變量和局部變量; - 簡單地直接賦值,如:
x = 42;這種方式聲明了一個全局變量(不推薦使用); - 使用關(guān)鍵字let,如:
let y = 13,被用來聲明一個塊級作用域局部變量;
使用var或者let進(jìn)行變量聲明時沒有賦初始值,變量將會得到undefined值,獲取未定義變量的值將報(bào)錯(thrown ReferenceError
exception),如:
var a; console.log("The value of a is " + a); // logs "The value of a is undefined" console.log("The value of b is " + b); // throws ReferenceError exception
在數(shù)值計(jì)算中,undefined值參與運(yùn)算將被轉(zhuǎn)為NaN:
var a; a + 2; // Evaluates to NaN
在數(shù)值計(jì)算中,null值參與運(yùn)算將被轉(zhuǎn)為0:
var a = null; a + 2; // Evaluates to 2
變量作用域
在函數(shù)作用域外面定義變量,將得到全局變量,在函數(shù)內(nèi)定義變量將得到局部變量。在ES6以前Javascript沒有塊級作用域,使用let聲明變量將得到塊級作用域局部變量;
if (true) { let y = 5; } console.log(y); // ReferenceError: y is not defined
變量提升####
變量提升:引用其后的變量聲明不報(bào)錯,聲明的變量被提升到函數(shù)開頭或者作用域起始位置,被提升的變量會返回undefined值:

因?yàn)樽兞刻嵘衯ar聲明語句應(yīng)該盡可能放在函數(shù)定義的頂部
全局變量
事實(shí)上,全局變量是全局對象的屬性,在瀏覽器中,全局對象是window,所以你能通過window.variable調(diào)用。
常量
使用關(guān)鍵字const定義常量,定義常量必須初始化,其作用域跟let一樣,不能跟函數(shù)或者變量重名:

數(shù)據(jù)結(jié)構(gòu)和類型
數(shù)據(jù)類型
最新的ECMAScript標(biāo)準(zhǔn)定義了7種數(shù)據(jù)類型:
- 6種基本數(shù)據(jù)類型:
- Boolean. true和false;
- null.
- undefined.
- Number.
- String.
- Symbol.(ES6新類型)
- Object對象
數(shù)據(jù)類型比較
Javascript是動態(tài)類型語言,聲明變量時不用指定類型。
在數(shù)值計(jì)算中,+運(yùn)算符的問題在于它可能有兩種含義。如果把它用在數(shù)字上,它意味著把兩個數(shù)字相加,但是如果把它用在字符串上,它意味著把兩個字符串連接或者拼合在一起。Javascript處理字符串連接的優(yōu)先級高于數(shù)字求和。 Javascript從左至右遍歷+運(yùn)算符,并分別根據(jù)它們的含義決定是相加還是連接。
x = "The answer is " + 42 // "The answer is 42" y = 42 + " is the answer" // "42 is the answer" "37" - 7 // 30 "37" + 7 // "377"
字面量
Array 字面量###
var coffees = ["French Roast", "Colombian", "Kona"];
額外的逗號
Array字面量中最后的逗號會被忽略,其他空位上的分號會被解析成undefined,最好顯式聲明undefined:

本文翻譯整理自:
MDN **轉(zhuǎn)載請注明出處 **