學習JavaScript基本語法
1.1 字元編碼
由於JavaScript使用Unicode字符集編寫,每個字元使用兩個位元組表示,那麼就可以用中文來命名變量了(習慣了英文命名,第一次嘗試寫中文變數感覺好彆扭=。=)。不過並不建議用漢字命名變數,ECMAScript 1,2版本只允許Unicode字元出現在註釋。
<script> var 人名 = "老張"; function 睡覺(誰) { alert(誰 + ":快睡覺!都半夜了!"); } 睡覺(人名); </script>
1.2 區分大小寫
JavaScript嚴格區分大小寫,使用率較高的大小寫方式有(畢竟寫的好看的程式碼真的令人舒暢):
(1)建構函式時,函式名首字母大寫(.js檔案中):
d = new Date(); //獲取當前日期和時間 alert(d.toString()); //顯示日期
(2)多個詞語連寫:
駱駝命名法(就是每個單詞的首字母大寫,讓人輕鬆判斷函式名的意思):
printEmployeePaychecks();
下劃線命名法(就是用下劃線分詞):
print_employee_paychecks();
1.3 識別符號
JavaScript識別符號主要包括:變數名,函式名,引數名,屬性名。命名規則與C語系基本相同。
ECMAScript 3中,可以用Unicode字符集命名,但不建議使用;另外也可以用Unicode轉義序列。例如:
var \u0061bc = "識別符號abc中a字元的Unicode轉義序列是\\u0061"; alert(\u0061bc);
轉義不方便,很少用。在JavaScript關鍵字,指令碼程式等特殊情況才使用轉義序列傳達或者顯示特殊字元。
1.4 直接量
就是在程式中直接顯示的值,如字串,數值,布林值,正則表示式,物件初始化,陣列初始化等。
"字串直接量" //字串直接量 123456 //數值直接量 true //布林值直接量 /^ab.*/g //正則表示式直接量 null //特殊值直接量 {a:1,b:2} //物件初始化直接量 [9,6,4] //陣列初始化
1.5 關鍵字和保留字
ECMAScript 關鍵字
ECMAScript 5保留關鍵字:class,const,enum,export,extends,import,super。
嚴格模式下的保留關鍵字:implements,let,private,public,yield,interface,package,protected,static。
嚴格模式下,嚴格限制 arguments, eval 作為變數名,函式名或者引數名。
ECMAScript 3將Java所有關鍵字都列為保留字,ECMAScript 5放寬了限制。
JavaScript預定義全域性變數和函式
1.6 分隔符
空格,製表符,換行符,換頁符等,在JavaScript中統稱分隔符。(雖然沒有實際意義,但是不能缺少)例如:
functiontoStr(a){returna. toString () ; } //錯誤寫法 function toStr (a) { return a. toString () ; } //正確寫法 JavaScript解析器一般採用最長行匹配原則(在一行內如果能進行解析,那麼就在一行內進行解析,否則會繼續讀取下一行程式碼,直到能正確解析為止),以下程式碼出錯
function toStr(a) { return a.toString(); //錯誤換行 } alert(toStr("abc"));
由於return可以被解析器正常解析,則解析器會在正常解析的情況下為其補加一個分號,因此實際解析為:
function toStr(a) { return; a.toString(); } alert(toStr("abc"));
這段程式碼的正確寫法應該是:
function toStr(a) { return a.toString(); } alert(toStr("abc"));
並且不能在識別符號關鍵字等名稱中新增分隔符:
function toStr(a) { return a.to String(); //分隔符錯誤 } alert(toStr("abc"));
在字串和正則表示式中的分隔符會被認為是具有意義的zifu並進行解析:
var a = "空格,製表符和換行符"; var b = "空格 , 製表符和換行符"; alert((a==b).toString()); //返回false
1.7 註釋
註釋不會被解析。
//程式碼段前註釋,概述程式碼段功能 function toStr(a) { //語句間註釋,介紹函式 //程式碼段中註釋,區域程式碼功能描述 return a.toString(); //語句結束後註釋,語句作用描述 }
/* 多行註釋 多行註釋 */