準(zhǔn)備工作
引用JavaScript
第一種
<head>
<script>...</script>
</head>
第二種
<body>
htmlcode
<script src="xx.js"></script>
</body>
注釋
//單行注釋
/*
多行注釋
*/
變量
建議聲明,逗號(hào)隔開(kāi),下劃線或駝峰
var age_a = 3
,aName = "mark";
數(shù)據(jù)類型
字符串
用引號(hào)
var a = "nihao"
,b = "3"
數(shù)值
var a = 3
布爾值
var a = true
,b = false;
數(shù)組
var a = Array();
a[0] = 1;
a[1] = "name";
或
var b = Array ( 1 , "name");
或
var c = [ 1, "name" ];
數(shù)組可以是變量、可以是其他數(shù)組
var a = []; //定義一個(gè)空數(shù)組
,name = "mark"
,b = [ 2 , "nihao" ];
a[0] =name;
a[1] = b;
關(guān)聯(lián)數(shù)組
var a = [];
a["name"] = "mark";
a["age"] = 28;
對(duì)象
var a = Object();
或
var a = {};
a.name = "mark";
a.age = 28;
簡(jiǎn)潔寫法
var a = { name:"mark" , age:28 }; //建議用對(duì)象去代替關(guān)聯(lián)數(shù)組的表達(dá)方式
操作
+ - * /
+還可以作為字符串合二為一
var a = "name is" + "mark";
i++;//遞增加1
i--;//遞減1
a += b; 等于 a = a+b;
a -= b; 等于 a = a-b;
條件語(yǔ)句
if ( a > b ){
alert("nihao");
} else {
alert("hello");
}
比較操作符
< > >= <= == !=
=== //數(shù)據(jù)類型也必須相等
邏輯操作符
&&//邏輯與 , 兩邊都為true則為true
|| //邏輯或 , 兩邊有一邊為true則為true
switch 語(yǔ)句用于基于不同的條件來(lái)執(zhí)行不同的動(dòng)作。
var day=new Date().getDay();
switch (day)
{
case 6:
x="Today it's Saturday";
break;
case 0:
x="Today it's Sunday";
break;
default: //以上條件都不符合則用默認(rèn)值
x="Looking forward to the Weekend";
}
循環(huán)語(yǔ)句
JavaScript 支持不同類型的循環(huán):
for - 循環(huán)代碼塊一定的次數(shù)
for/in - 循環(huán)遍歷對(duì)象的屬性
while - 當(dāng)指定的條件為 true 時(shí)循環(huán)指定的代碼塊
do/while - 同樣當(dāng)指定的條件為 true 時(shí)循環(huán)指定的代碼塊
var a=1;
while (a<9) {
alert("nihao");
a++;
}
//do while 無(wú)論while條件是否為true都要執(zhí)行一次
var a=1;
do {
alert("nihao");
a++;
}while(a<9);
for循環(huán)
for ( var i =0 , i<9 , i++) {
alert("nihao");
}
使用for和數(shù)組的lenght屬性遍歷數(shù)組
var a = Array ("ni","hao");
for ( var i=0,i<a.length;i++){
alert ( a[i] );
}
函數(shù)
為了代碼多次使用
正真的價(jià)值在于可作為數(shù)據(jù)類型把函數(shù)調(diào)用結(jié)果賦給一個(gè)變量
function sayHi(){
var a = Array ("ni","hao");
for ( var i=0,i<a.length;i++){
alert ( a[i] );
}
}
return可以返回值,可以跳出函數(shù),
接收參數(shù)順序不能變,
開(kāi)發(fā)者定義的函數(shù)都可以接受任意個(gè)數(shù)的參數(shù)
(根據(jù) Netscape 的文檔,最多可接受 255 個(gè)),而不會(huì)引發(fā)任何錯(cuò)誤。
任何遺漏的參數(shù)都會(huì)以 undefined 傳遞給函數(shù),多余的函數(shù)將忽略。
模擬函數(shù)重載(以參數(shù)個(gè)數(shù)判斷,使用何種方法處理參數(shù))
//用 arguments 對(duì)象判斷傳遞給函數(shù)的參數(shù)個(gè)數(shù),即可模擬函數(shù)重載:
function doAdd() {
if(arguments.length == 1) {
alert(arguments[0] + 5);
} else if(arguments.length == 2) {
alert(arguments[0] + arguments[1]);
}
}
doAdd(10); //輸出 "15"
doAdd(40, 20); //輸出 "60"
變量的作用域
全局變量 globaal variable
局部變量 local variable
函數(shù)內(nèi)部 var 聲明變量為局部變量,如果未聲明則默認(rèn)為全局變量,若與已有全局變量重名則會(huì)改變已有全局變量的值,函數(shù)內(nèi)部變量一定要用var來(lái)聲明
對(duì)象object
Object.property 對(duì)象屬性
Object.method() 對(duì)象方法
var mark = new person; //new關(guān)鍵字實(shí)例化一個(gè)對(duì)象
內(nèi)建對(duì)象 native object //javascript提供對(duì)象
宿主對(duì)象 host object//瀏覽器預(yù)定義對(duì)象如Form Image Element
自定義對(duì)象 user-defined object