語法:JavaScript的語法格式類似於C語言以及Java、Perl的語法,如果有以上語言的背景,接收起來是很容易的,下面就具體羅列一下JavaScript的語法格式:
區分大小寫,變量、函數名和操作符都區分大小寫
下面的內容在以下方面介紹JavaScript的基礎概念:
標識符
格式如下:
第一個字符必須是一個字母、下劃線(_)或一個美元符號($);
其他字符可以是字母、下劃線、美元符號或數字
註釋
使用 C 風格的註釋,包括單行註釋和塊級註釋
// 單行註釋
/*
* 這是一個多行
* (塊級)註釋
*/
變量
JavaScript是弱類型語言,定義變量僅僅有一個var關鍵字,系統會自動的判別數據類型,且var關鍵字可以省略(不推薦),JavaScript的變量也會區分局部變量和全局變量,有一個特殊點是,若在方法中省略var關鍵字,定義的則是全局變量
var x = 10; //全局變量
function test(){
var y = "hi"; // 局部變量
z = 18.5;
}
test();
alert(x); //正確
alert(y); // 錯誤!
alert(z); //正確
數據類型
ECMAScript 中有 5 種簡單數據類型(也稱爲基本數據類型):Undefined、Null、Boolean、Number和 String。還有 1 種複雜數據類型——Object,Object 本質上是由一組無序的名值對組成的,不支持自定義類型。
typeof()可以判別數據類型,返回的是上述六種數據類型之一,具體如下:
"undefined" ——如果這個值未定義;
"boolean" ——如果這個值是布爾值;
"string" ——如果這個值是字符串;
"number" ——如果這個值是數值;
"object" ——如果這個值是對象或 null;
"function" ——如果這個值是函數。
下面的幾個typeof()實例是比較特殊的:
var car = null;
alert(typeof car); // "object"
alert(null == undefined); //true //因爲undefined 值是派生自 null 值
alert(NaN == NaN); //false
再介紹幾個函數:
idNAN() 判斷是不是非數字
Number() 數據類型轉換數值類型
parseInt() 轉換成整數
toString() 轉換成字符串
String() 轉換成字符串,可以轉換沒有toString()方法的變量
操作符
遞增和遞減操作符 ++ --
加和減操作符 + -
按位與或非異或 & | ~ ^
左移 有符號右移 無符號右移 << >> >>>
邏輯與或非 && || !
乘和除和求模 * / %
關係操作符(大於 小於 大於等於 小於等於) > < >= <=
比較操作符 (等於 不等於 全等 不全等) == != === !==
賦值運算符 =
條件運算符 ? :
語句
if語句
if(條件)){語句體}
if(條件){語句體}else{語句體}
if(v){語句體}else if(條件)){語句體}else{語句體}
do-while語句
do{語句體}while(條件);
while語句
while(條件){語句體}
for語句
for(迭代變量;迭代條件;迭代變化){語句體}
for-in(foreach)語句
for(迭代變量 in 迭代數據){語句體}
switch語句
switch(一句值){case 可能值: 語句體;default:語句體;}
下面是實例:
//if語句
if (i > 25)
alert("Greater than 25."); // 單行語句
else {
alert("Less than or equal to 25."); // 代碼塊中的語句
}
if (i > 25) {
alert("Greater than 25.");
} else if (i < 0) {
alert("Less than 0.");
} else {
alert("Between 0 and 25, inclusive.");
}
//do-while語句
var i = 0;
do {
i += 2;
} while (i < 10);
alert(i);
//while語句
var i = 0;
while (i < 10) {
i += 2;
}
//for語句
var count = 10;
for (var i = 0; i < count; i++){
alert(i);
}
//for-in語句
for (var propName in window) {
document.write(propName);
}
//switch語句
switch (expression) {
case value: statement
break;
case value: statement
break;
case value: statement
break;
case value: statement
break;
default: statement
}
函數
函數可以封裝任意多條語句,而且可以在任何地方、任何時候調用執行。ECMAScript 中的函數使用 function 關鍵字來聲明,後跟一組參數以及函數體。下面是格式:
function 函數名(參數列表) {
函數體
}
function sayHi(name, message) {
alert("Hello " + name + "," + message);
}
JavaScript中調用時的參數可以與定義時的個數不一致,且JavaScript的函數沒有重載的說法