條件語句
if 條件語句
語法: if ( condition ) statement1 else statement2
語法: if ( 條件 ) { 語句1 } else { 語句2 }
其中condition(條件)
可以是任意表達(dá)式,求值結(jié)果不一定是布爾值,ECMAScript會(huì)自動(dòng)調(diào)用Boolean()轉(zhuǎn)換函數(shù)將結(jié)果轉(zhuǎn)換為一個(gè)布爾值,如果結(jié)果是true
,執(zhí)行statement1;如果是false,
執(zhí)行statemen2,
兩個(gè)語句可以是代碼,也可以代碼塊(以一對(duì)花括號(hào)括起來的多行代碼),
demo1 :
if( i > 25 )
alert ( " Greater than 25 . "); //單行語句
else {
alert ( " Less than or equal to 25 ."); //代碼塊中的語句
}
demo2 :
var isMale = false;
if(isMale){
document.write('男');
} else {
document.write('女'); //上面是false,打印為女
}
不過if語句
也可以擴(kuò)展為嵌套if
if(condition) statement1 else if (condition2) statement2 else statement3
if( 條件 ) { 語句1 } else if (條件2) { 語句2 } else { 語句3 }
demo:
var score = 85;
if(score > 80){
document.write('A');
} else if(score > 60){
document.write('B');
} else {
document.write('C');
}
switch語句
switch語句
與if語句
關(guān)系密切
語法:switch (expression) { //表達(dá)式
case value : statement //值1:語句
break; //跳出
case value : statement
break;
case value : statement
break;
case value : statement
break;
default : statement
}
demo:
var degree = 'A';
switch(degree){
case 'A':
document.write('優(yōu)秀');
break;
case 'B':
document.write('良好');
break;
default:
document.write('合格');
}
switch
語句中每一個(gè)情形(case)
的含義:"如果表達(dá)式等于這個(gè)值(value),
則執(zhí)行后面的語句(statement)
".而break關(guān)鍵字
會(huì)導(dǎo)致代碼執(zhí)行流跳出switch語句
.如果省略break,會(huì)導(dǎo)致執(zhí)行完當(dāng)前case,繼續(xù)執(zhí)行下一個(gè)case.default關(guān)鍵字
用于在表達(dá)式不匹配前面任何一種情況時(shí)候,執(zhí)行機(jī)動(dòng)代碼.
循環(huán)語句
do-while 循環(huán)語句
do-while 語句
是一種后測(cè)試循環(huán)語句,即在對(duì)表達(dá)式求值之前,循環(huán)體內(nèi)的代碼至少會(huì)被執(zhí)行一次.
語法: do {
statement
} while ( expression )
var i = 11 ;
do {
document.write(i);
i++;
} while ( i <= 10 ) //11
while 循環(huán)語句
while語句
屬于前測(cè)試循環(huán)語句,在循環(huán)體內(nèi)的代碼被執(zhí)行之前,就會(huì)對(duì)出口條件求值,循環(huán)體內(nèi)的代碼可能永遠(yuǎn)不會(huì)被執(zhí)行.
語法: while ( expression ) statement
while( 表達(dá)式 ){ 語句 }
示例:
var i = 1 ;
while ( i <= 10 ) {
document.write(i);
i++;
} //12345678910
for循環(huán)語句
for語句
也是一種前測(cè)試循環(huán)語句,但它具有在執(zhí)行循環(huán)之前初始化變量和定義循環(huán)后要執(zhí)行的代碼
語法:for( initialization; expression; post-loop-expression)statement
for(初始化; 循環(huán)條件; 更新表達(dá)式){語句} //中文解釋
示例:
var count = 10 ;
for(var i = 0; i<count; i++){
alert(i);
}
另外,for語句
中的初始化表達(dá)式 控制表達(dá)式 循環(huán)后表達(dá)式都是可選的,
這三個(gè)表達(dá)式全部省略,就會(huì)創(chuàng)建一個(gè)無限循環(huán),
for( ; ;){ //無限循環(huán)
dosomething();
}
break和continue語句
break和continue語句用于循環(huán)中準(zhǔn)確控制代碼的執(zhí)行.其中,break語句會(huì)立即退出循環(huán),強(qiáng)制執(zhí)行循環(huán)后面的語句.而continue語句雖然也是立即退出循環(huán),但退出循環(huán)后會(huì)從循環(huán)的頂部繼續(xù)執(zhí)行.
var num = 0 ;
for(var i =0; i<10; i++){
if(i%5 == 0) {
break;
}
num++;
}
alert(num); //4
結(jié)果4是次數(shù),break語句的執(zhí)行,導(dǎo)致了循環(huán)在num再次遞增之前就退出了了.(跳出整個(gè)循環(huán)體)
var num = 0 ;
for(var i =0; i<10; i++){
if(i%5 == 0) {
continue;
}
num++;
}
alert(num); //8
結(jié)果為8,說明執(zhí)行了8次,當(dāng)變量i=5時(shí),循環(huán)會(huì)在num再次遞增之前退出,但接下來執(zhí)行下一次循環(huán),即i=6的循環(huán),于是,循環(huán)再次執(zhí)行了(跳出一次循環(huán)體)
for - in語句
for-in語句
是一種精準(zhǔn)的迭代語句,可以用來枚舉對(duì)象的屬性.
語法:for(property in expression) statement
for(屬性名 in 對(duì)象) {語句} //中文解釋
示例:
var cat = {
name:'kitty',
age:2,
mew : function () {
console.log("喵喵喵")
}
}
如果我們想把上面的對(duì)象的屬性名都打印出來,可以用for-in語句:
for(var p in cat){
document.write(p);
} //name age mew
如果表示要迭代的對(duì)象的變量值為null和undefined
,for-in
會(huì)拋出錯(cuò)誤,不過ECMAScript5更改了這一行為,不在拋出錯(cuò)誤,只是不執(zhí)行循環(huán)體,,所以建議使用for-in之前,確認(rèn)對(duì)象的值是不是null或undefined
with語句
with語句
的作用是將代碼的作用域設(shè)置到一個(gè)特定的對(duì)象中.
語法:with(expression) statement
with(表達(dá)式) {語句} //中文解釋
定義with語句的目的是為了簡(jiǎn)化多次編寫同一個(gè)對(duì)象的工作,嚴(yán)格模式下不允許使用with語句
由于大量使用with語句會(huì)導(dǎo)致性能下降,同時(shí)也會(huì)給調(diào)試代碼造成困難,因此開發(fā)大型應(yīng)用程序時(shí),不建議使用with語句
異常捕獲語句
try{
語句
} catch (exception){
語句
} finally{
語句
}
demo:
try{
document.write(notDefined);
}catch(error){
console.log(error);
alert(error);
}finally{
alert('finally');
} //notDefined變量未定義的,是錯(cuò)誤的,會(huì)執(zhí)行catch里面的語句.
如果try里語句
執(zhí)行出錯(cuò)的話,會(huì)到catch語句
中在語句中可以對(duì)錯(cuò)誤執(zhí)行一些操作,不管try語句是否出錯(cuò),都會(huì)執(zhí)行finally語句
.一般用于我們執(zhí)行的代碼不知道它是否出錯(cuò),把它放到try catch語句中
語句的學(xué)習(xí)很簡(jiǎn)單,難得是實(shí)際應(yīng)用,所以多練