一、詞法結構
1.大小寫(xiě)敏感:區分大小寫(xiě)。
在使用過(guò)程中,必須保持變量名稱(chēng)、函數名稱(chēng)以及關(guān)鍵字等標識符前后大小寫(xiě)一致。
2.語(yǔ)句分隔符:使用分號;分隔語(yǔ)句
3.關(guān)鍵字(保留字)
是語(yǔ)言保留的,一般表示特定的含義,完成相應的功能。不能用作標識符。
4.標識符
指變量、函數、屬性的名字,或者函數的參數。5.格式規則
第一個(gè)字符必須是字母、下劃線(xiàn)或者一個(gè)美元符號$
其他字符可以是字母、下劃線(xiàn)、美元符號或數字
一般采用駝峰大小寫(xiě)格式,也就是第一個(gè)字母小寫(xiě),剩下的每個(gè)有意義的單詞的首字母大寫(xiě)。如firstSecond
6.數據類(lèi)型
數值型、字符型、布爾型(1)字符型
用單引號或雙引號封裝起來(lái)
轉義字符:\
轉義字符和其他字符混合使用成為轉義序列。
具有特殊含義的轉義序列,如下表所示
義序列
含義
轉義序列
含義
\b
退格符
\t
水平制表符
\f
換頁(yè)符
\’
單引號
\n
換行符
\”
雙引號
\r
回車(chē)符
\\
反斜線(xiàn)符
如果用字符串表示目錄,正確寫(xiě)法如下例:
Document.writeln(“C:\\ProgramFiles\\Microsoft Office”)
HTML標記字符串:將HTML標記作為字符串的一部分,放在恰當的位置即可。
document,writeln(“
Example:HTML String
”)(2)布爾型
布爾值只能是false或者true,不能用0和1來(lái)模擬但在數學(xué)運算中,可以轉換為其他數據類(lèi)型,例如,可以將值為true的布爾型數據轉變?yōu)檎龜?。
7.變量
(1)變量的聲明
聲明變量時(shí)不需要指定變量的數據類(lèi)型,統一使用關(guān)鍵字var聲明。
var stringExample;
var stringExample=“小郭”;
Var stringExample=“小郭”,numberExample=25;
(2)變量的使用
變量的通用性
var example=25;
example=“test”;
(3)變量的重復聲明
可以重復聲明一個(gè)變量而不會(huì )產(chǎn)生任何語(yǔ)法錯誤
如果重復聲明語(yǔ)句中不帶有初始化的數據,那么重復的聲明不會(huì )對以前的代碼產(chǎn)生任何改變
如果重復聲明語(yǔ)句中帶有初始化的數據,那么重復聲明等同于對這個(gè)變量的賦值語(yǔ)句
(4)局部變量和全局變量
局部變量是指只能在一段程序中發(fā)揮作用的變量
全局變量是指在整個(gè)JavaScript代碼中都可以發(fā)揮作用的變量
通常,在函數之內聲明的變量都是局部的。
局部變量和全局變量可以同名。但是在函數體內部,局部變量的優(yōu)先級高于全局變量,即在函數體內,同名的全局變量被忽略了。
8.函數
JavaScript中的函數是一段相對獨立的代碼,用以實(shí)現一定的功能,可以一次定義,多次使用。
同時(shí)函數在JavaScript中也是一種數據類(lèi)型,因此,函數可以被存儲變量、數組以及對象的屬性,甚至可以作為參數在其他函數之間傳遞。
(1)創(chuàng )建函數:關(guān)鍵字function
(2)函數名稱(chēng)
(3)參數列表:位于括號之間,用逗號隔開(kāi)的字符串稱(chēng)為函數的參數。函數可以無(wú)參、可以使用一個(gè)參數、也可以使用多個(gè)參數。
(4)函數主體:定義在大括號之間
(5)返回值:可以通過(guò)return語(yǔ)句返回一個(gè)特定類(lèi)型的值;也可以不使用return語(yǔ)句,而是只執行函數主體,將向調用者返回一個(gè)未定義的值。
9.對象
對象是一種復合的、復雜的數據類(lèi)型,是屬性和方法的集合。
對象的屬性可以是任何類(lèi)型的數據,包括數字、字符、布爾型、數組、函數、其他對象。
方法就是集成在對象中的函數,用于完成特定的功能。
(1)創(chuàng )建對象
使用new運算符以及特定的構造函數可以創(chuàng )建對象
var obExample=new Object();
var obTime=new Date();
使用直接量語(yǔ)法來(lái)創(chuàng )建對象
var student={
name:“張興華”,
age:“25”,
gender:“male”
}
(2)操作對象
要設置使用對象的屬性,需要運用運算符“.”。左邊是對象名,右邊是屬性名。
var student = new Object();
student.name =“張興華”;
student.age =“25”;
document.writeln(“學(xué)生姓名:”+student.name);
document.writeln(“學(xué)生年齡:”+student.age);
(3)操作對象的方法
對象的方法是繼承在對象中、像對象屬性一樣使用的函數。操作對象的方法:先創(chuàng )建一個(gè)JavaScript函數,然后創(chuàng )建一個(gè)對象,最后將函數賦給對象的屬性從而實(shí)現對象方法的定義。
示例
10.數組
與對象類(lèi)似,數組是一組數據的集合,但對象是通過(guò)屬性名稱(chēng)標記對象中的數據,而數組則是通過(guò)下標來(lái)標記數組中的數據。
下標是一個(gè)非負的正數,代表數組元素在數組中的位置。下標是從0開(kāi)始。
數組元素可以是任何類(lèi)型的數據,甚至是另一個(gè)數組。同一數組中的不同元素可以是不同的數據類(lèi)型。
(1)創(chuàng )建數組 使用new運算符和構造函數Array()創(chuàng )造數組
var arrayExample = new Array();
將創(chuàng )建一個(gè)沒(méi)有任何元素的空數組
var studentArray = new Array(“王興華”,“王小明”,“李大嘴”);
帶有一個(gè)參數列表,按順序指定了數組元素存儲的值,不同參數之間用逗號隔開(kāi)
var arrayExample = new Array(10);
指定了數組的長(cháng)度
var arrayExample = [“學(xué)生”,1,“王興華”];
(2)訪(fǎng)問(wèn)數組元素
JavaScript中的數組非常靈活,可以具有任意數量的數組元素,可以超出邊界。下標可以連續,可以離散。例如,定義一個(gè)空數組,可以為第一個(gè)元素賦值,然后為第10個(gè)元素賦值,而不需要考慮中間的元素
添加數組元素
studentArray[100]=“小白”;
(3)讀取數組元素studentArray[100]=“小白”;
document.writeln(studentArray[100]);
注意:[]中是要訪(fǎng)問(wèn)數組元素在數組中的下標,可以是數字,可以是表達式,甚至可以是另外一個(gè)數組元素,只要是一個(gè)非負的正數就可以。如果要訪(fǎng)問(wèn)的數組元素尚未被賦值,那么將顯示undefined.
(4)數組的屬性
最重要的屬性就是長(cháng)度,說(shuō)明了數組中包含數組元素的個(gè)數
讀取數組長(cháng)度使用“數組名.length”
document.writeln(arrayExample.length);
設置數組的長(cháng)度屬性將對數組產(chǎn)生實(shí)質(zhì)影響。如果小于當前值,長(cháng)度之外的元素將被拋棄
(5)數組的方法
join()方法:可以將數組中的所有元素轉換成字符串,然后將它們拼接起來(lái),并用指定的符號間隔開(kāi),默認的間隔符號是逗號。
toString()方法:將數組的每個(gè)元素都轉換成字符串,然后輸出這些字符串的列表,字符串之間用逗號隔開(kāi)。與無(wú)參數的join()方法執行效果是相同的。11.特殊的數據類(lèi)型
Null:表示無(wú)值
Undefined:變量不存在,或者使用的變量雖然聲明但沒(méi)有賦值,那么返回值就是undefined。
兩者不同之處:
Null值表示已經(jīng)對變量賦值,只不過(guò)賦的值是“無(wú)值”;而undefined表示變量還不存在或者存在但沒(méi)有賦值。
當采用typeof運算符時(shí)
對不存在的變量或者沒(méi)有賦值的變量進(jìn)行typeof運算是,將返回字符串undefined;
對null進(jìn)行typeof運算時(shí),將返回字符串object
(1)