1.多重條件判斷語句
if語句
語法三:
if(條件表達(dá)式){
語句...
}else if(條件表達(dá)式){
語句...
}else if(條件表達(dá)式){
語句...
}else{
語句...
}
if...else if...else
當(dāng)該語句執(zhí)行時(shí)敷燎,會(huì)從上到下依次對(duì)條件表達(dá)式進(jìn)行求值判斷
如果值為true竿屹,則執(zhí)行當(dāng)前語句毕贼。
如果值為false秘血,則繼續(xù)向下判斷返十。
如果所有的條件都不滿足搬泥,則執(zhí)行最后一個(gè)else后的語句
該語句中涩哟,只會(huì)有一個(gè)代碼塊被執(zhí)行埋虹,一旦代碼塊執(zhí)行了赡麦,則直接結(jié)束語句
*/
/*
條件分支語句也叫switch語句
語法:
switch(條件表達(dá)式){
case 表達(dá)式:
語句...
break;
case 表達(dá)式:
語句...
break;
default:
語句...
break;
}
執(zhí)行流程:
switch...case..語句
在執(zhí)行時(shí)會(huì)依次將case后的表達(dá)式的值和switch后的條件表達(dá)式的值進(jìn)行全等比較朴皆,
如果比較結(jié)果為true,則從當(dāng)前case處開始執(zhí)行代碼泛粹。
當(dāng)前case后的所有的代碼都會(huì)執(zhí)行遂铡,我們可以在case的后邊跟著一個(gè)break關(guān)鍵字,
這樣可以確保只會(huì)執(zhí)行當(dāng)前case后的語句晶姊,而不會(huì)執(zhí)行其他的case
如果比較結(jié)果為false扒接,則繼續(xù)向下比較
如果所有的比較結(jié)果都為false,則只執(zhí)行default后的語句
switch語句和if語句的功能實(shí)際上有重復(fù)的们衙,使用switch可以實(shí)現(xiàn)if的功能钾怔,同樣使用if也可以實(shí)現(xiàn)switch的功能,所以我們使用時(shí)蒙挑,可以根據(jù)自己的習(xí)慣選擇蒂教。
2.數(shù)組
//面向?qū)ο蟮姆绞絼?chuàng)建
var aRr01 = new Array(1,2,3,'abc');
//直接創(chuàng)建
var aRr02 = [1,2,3,'def'];//推薦使用,性能更高
//獲取數(shù)組的成員數(shù)量(長(zhǎng)度)
// alert(aRr02.length);//彈出4
// alert(aRr02[3]);//彈出cdf
var aRr03 = [[1,2,3],['a','b','c','d'],[true,false]];
// alert(aRr03.length);//彈出3
// alert(aRr03[1].length);//彈出3
alert(aRr03[1][2]);//彈出c
3.
var aRr = [1,2,3,4];
//用-連接數(shù)組元素并轉(zhuǎn)為字符串
//var sTr = aRr.join("-");//用-連接數(shù)組元素并轉(zhuǎn)為字符串脆荷,彈出1-2-3-4
// var sTr = aRr.join('');//用空串連接
// alert(sTr);//彈出1234
//向數(shù)組最后追加元素
// aRr.push(5);
// alert(aRr);//1,2,3,4,5
//刪除末尾元素
// aRr.pop();
// alert(aRr);//1,2,3
//向最前面插入元素0
// aRr.unshift(0);
// alert(aRr);//0,1,2,3,4
//刪除第一個(gè)(索引為0的)元素
// aRr.shift();
// alert(aRr);//2,3,4
//反轉(zhuǎn)
// aRr.reverse();
// alert(aRr);//4,3,2,1
//查找字母'b'第一次出現(xiàn)的索引
var aRr2 = ['a','b','c','d','a','b','c','d'];
var num = aRr2.indexOf('b');
// alert(num);//1
//從第2索引元素開始凝垛,刪除1個(gè)元素
// aRr2.splice(2,1);//刪除c
// alert(aRr2);//a,b,d,a,b,c,d
//從第2索引元素開始懊悯,刪除1個(gè)元素,再插入e
// aRr2.splice(2,1,'e');//把c替換成e
// alert(aRr2);//a,b,e,d,a,b,c,d
//刪除后面的abcd梦皮,改為fghi
aRr2.splice(4,4,'f','g','h','i');
alert(aRr2);//a,b,c,d,f,g,h,i
4.通過標(biāo)簽獲取元素
window.onload = function(){
// //獲取頁面上所有的li
// var aLi = document.getElementsByTagName('li');
//獲取id為list01的ul
var oList = document.getElementById('list01');
//再獲取這個(gè)ul下的所有l(wèi)i
var aLi = oList.getElementsByTagName('li');
alert(aLi.length);//8
// aLi.pop();//錯(cuò)誤用法炭分,aLi是一個(gè)類似數(shù)組的選擇集,沒有數(shù)組通用的一些方法
aLi[0].style.backgroundColor = 'gold';
aLi[1].style.backgroundColor = 'gold';
}
5.循環(huán)語句
/*
循環(huán)語句:
通過循環(huán)語句可以反復(fù)的執(zhí)行一段代碼多次
while循環(huán)
- 語法:
while(條件表達(dá)式){
語句...
}
- while語句在執(zhí)行時(shí)剑肯,
先對(duì)條件表達(dá)式進(jìn)行求值判斷捧毛,
如果值為true,則執(zhí)行循環(huán)體让网,
循環(huán)體執(zhí)行完畢以后呀忧,繼續(xù)對(duì)表達(dá)式進(jìn)行判斷
如果為true,則繼續(xù)執(zhí)行循環(huán)體溃睹,以此類推
如果值為false而账,則終止循環(huán)
do...while循環(huán)
- 語法:
do{
語句...
}while(條件表達(dá)式)
- 執(zhí)行流程:
do...while語句在執(zhí)行時(shí),會(huì)先執(zhí)行循環(huán)體因篇,
循環(huán)體執(zhí)行完畢以后泞辐,在對(duì)while后的條件表達(dá)式進(jìn)行判斷,
如果結(jié)果為true竞滓,則繼續(xù)執(zhí)行循環(huán)體咐吼,執(zhí)行完畢繼續(xù)判斷以此類推
如果結(jié)果為false,則終止循環(huán)
實(shí)際上這兩個(gè)語句功能類似商佑,不同的是while是先判斷后執(zhí)行锯茄,
而do...while會(huì)先執(zhí)行后判斷,
do...while可以保證循環(huán)體至少執(zhí)行一次茶没,
而while不能
for語句撇吞,也是一個(gè)循環(huán)語句,也稱為for循環(huán)
在for循環(huán)中礁叔,為我們提供了專門的位置用來放三個(gè)表達(dá)式:
1.初始化表達(dá)式
2.條件表達(dá)式
3.更新表達(dá)式
for循環(huán)的語法:
for(①初始化表達(dá)式;②條件表達(dá)式;④更新表達(dá)式){
③語句...
}
for循環(huán)的執(zhí)行流程:
①執(zhí)行初始化表達(dá)式牍颈,初始化變量(初始化表達(dá)式只會(huì)執(zhí)行一次)
②執(zhí)行條件表達(dá)式,判斷是否執(zhí)行循環(huán)琅关。
如果為true煮岁,則執(zhí)行循環(huán)③
如果為false,終止循環(huán)
④執(zhí)行更新表達(dá)式涣易,更新表達(dá)式執(zhí)行完畢繼續(xù)重復(fù)②
任意一種循環(huán)都可以互相嵌套
*/
window.onload = function(){
var oList = document.getElementById('list01');
var aLi = oList.getElementsByTagName('li');
/*for (var i = 0; i < aLi.length; i++) {
if(i % 2 == 0){
aLi[i].style.background = 'gold';
}
}*/
/*for(var j in aLi){
aLi[j].style.background = 'red';
}*/
//創(chuàng)建一個(gè)循環(huán)画机,往往需要三個(gè)步驟
//1.創(chuàng)初始化一個(gè)變量
var j = 0;
//2.在循環(huán)中設(shè)置一個(gè)條件表達(dá)式
/*while(j < aLi.length){
aLi[j].style.background = 'gold';
//3.定義一個(gè)更新表達(dá)式,每次更新初始化變量
j++;
}*/
do{
aLi[j].style.background = 'gold';
j++;
}while(j < 0)
/*
以下是死循環(huán)的寫法
像這種將條件表達(dá)式寫死為true的循環(huán)新症,叫做死循環(huán)
該循環(huán)不會(huì)停止步氏,除非瀏覽器關(guān)閉,死循環(huán)在開發(fā)中慎用
可以使用break徒爹,來終止循環(huán)
*/
/*
while(true){
if(j>10){
break;//退出整個(gè)循環(huán)
}
j++;
}
//for循環(huán)的死循環(huán)寫法
for(;;){
}
*/
/*
break關(guān)鍵字可以用來退出switch或循環(huán)語句
不能在if語句中使用break和continue
break關(guān)鍵字荚醒,會(huì)立即終止離他最近的那個(gè)循環(huán)語句
continue關(guān)鍵字可以用來跳過當(dāng)次循環(huán)
同樣continue也是默認(rèn)只會(huì)對(duì)離他最近的循環(huán)循環(huán)起作用
*/
/*
可以為循環(huán)語句創(chuàng)建一個(gè)label芋类,來標(biāo)識(shí)當(dāng)前的循環(huán)
label:循環(huán)語句
使用break語句時(shí),可以在break后跟著一個(gè)label界阁,
這樣break將會(huì)結(jié)束指定的循環(huán)侯繁,而不是最近的
*/
outer:
for(var i=0 ; i<5 ; i++){
console.log("@外層循環(huán)"+i);
for(var j=0 ; j<5; j++){
console.log("內(nèi)層循環(huán):"+j);
break outer;
}
}
}