JavaScript 學(xué)習(xí)筆記之語句
一、條件分支語句:if
基本格式:
if (<表達(dá)式1>){
<語句組1>
}else if (<表達(dá)式2>){
<語句組2>
}else{
<語句組3>
}
執(zhí)行流程:
二、循環(huán)語句
2.1前測試循環(huán)語句:在循環(huán)體內(nèi)的代碼被執(zhí)行之前就對出口條件求值。
2.1.1while語句
基本格式:
do {
<語句組>
} while (<表達(dá)式>)
執(zhí)行流程:
2.1.2 for語句
基本格式:
for (<初始表達(dá)式>;<條件表達(dá)式>;<變動量表達(dá)式>){
<語句組>
}
執(zhí)行流程:
2.2后測試循環(huán)語句:在循環(huán)體中的代碼被執(zhí)行之后才會測試出口條件。
2.2.1、do-while語句
基本格式:
do {
<語句組>
} while (<表達(dá)式>) ;
執(zhí)行流程:
三、精準(zhǔn)的迭代語句:for-in
基本格式:
for ( 屬性 in 對象 ){
<語句組>
}
作用:重復(fù)執(zhí)行指定對象的所有屬性,可以用來枚舉對象的屬性。
例子:
<html>
<body>
<p>點擊下面的按鈕,循環(huán)遍歷對象 "person" 的屬性。</p>
<button onclick="myFunction()">點擊這里</button>
<p id="demo"></p>
<script>
function myFunction()
{
var x;
var txt="";
var person={fname:"Bill",lname:"Gates",age:56};
for (x in person)
{
txt=txt + person[x];
}
document.getElementById("demo").innerHTML=txt;
}
</script>
</body>
</html>
如果要表示的對象為null或者undefined,循環(huán)體將不再執(zhí)行,或者拋出錯誤,因此,在執(zhí)行for-in循環(huán)時,應(yīng)該先檢測改對象的屬性值是不是null或者undefined。
四、Lable語句
基本語法:
Label: <語句組>
如: begin: for (var i = 0; i < 10 ; i++ ){
alert(i);
}
舉例說明lable語句的作用:
未加lable:
var num = 0;
for (var i = 0 ; i < 10 ; i++){
for (var j = 0 ; j < 10 ; j++){
if( i == 5 && j == 5 ){
break;
}
num++;
}
}
alert(num);//95
加入lable:
var num = 0;
outPoint:
for (var i = 0 ; i < 10 ; i++){
for (var j = 0 ; j < 10 ; j++){
if( i == 5 && j == 5 ){
break outPoint;
}
num++;
}
}
alert(num); //55
第一個例子輸出95不難理解,第二個例子為什么輸出55呢,是因為執(zhí)行到break outpoint時,直接跳出到putpoint層,執(zhí)行alert語句。
如果把第二個例子改成下面這樣:
var num = 0;
for (var i = 0 ; i < 10 ; i++){
outPoint:
for (var j = 0 ; j < 10 ; j++){
if( i == 5 && j == 5 ){
break outPoint;
}
num++;
}
};
alert(num);//95
這個結(jié)果和第一個例子的結(jié)果是一致的。
五、break和continue語句
5.1break語句:
var num = 0;
for (var i = 1 ; i < 10 ; i++){
if(i%5==0){
break;
}
num++;
};
alert(num);//4
break語句執(zhí)行后跳到alert語句
5.2continue語句:
var num = 0;
for (var i = 1 ; i < 10 ; i++){
if(i%5==0){
continue;
}
num++;
};
alert(num);//8
continue語句執(zhí)行后跳到for()循環(huán),繼續(xù)執(zhí)行循環(huán),直到循環(huán)條件不成立。
六、with語句
基本語法:
with (object) {
statements
}
舉例說明:
不使用with的寫法:
var qs = location.search.substring(1);
var hostName = location.hostname;
var url = location.href;
alert(qs);
alert(hostName);
alert(url);
使用with的寫法:
with(location){
var qs = search.substring(1);
var hostName = hostname;
var url = href;
}
alert(qs);
alert(hostName);
alert(url);
從上面例子可以看出:with語句的作用是將代碼的作用域設(shè)置到一個特定的對象中、減少的重復(fù)輸入。
但是js的解釋器需要檢查with塊中的變量是否屬于with包含的對象,這將使with語句執(zhí)行速度大大下降,并且導(dǎo)致js語句很難被優(yōu)化。
因此并不建議大規(guī)模使用with語句。
七、swith語句
基本語法:
switch (<表達(dá)式>) {
case <數(shù)值1>:<語句組1>
break;
case <數(shù)值2>:<語句組2>
break;
...
default <語句組>
}
執(zhí)行流程:
switch語句可以是任何數(shù)據(jù)類型,每個case的值也不一定是常量,也可以是變量、表達(dá)式等,例如:
switch ("hello world") {
case "hello" + " world":
alert("Greeting was found.");
break;
case "goodbye":
alert("Closing was found.");
break;
default:
alert("Unexpected message was found.");
}
var num = 25;
switch (true) {
case num < 0:
alert("Less than 0.");
break;
case num >= 0 && num <= 10:
alert("Between 0 and 10.");
break;
case num > 10 && num <= 20:
alert("Between 10 and 20.");
break;
default:
alert("More than 20.");
}
switch語句在比較時使用的是全等操作符比較,因此不會發(fā)生類型轉(zhuǎn)換。
練習(xí):
<script type="text/javascript">
var count = 10;
for (var i=0; i < count; i++){
alert(i);
}
alert(i); //輸出什么?
</script>
for(;;){
alert("2");//輸出多少次2?
}
以上就是本文的全部內(nèi)容了,希望對小伙伴們能夠有所幫助。
相關(guān)文章
JavaScript中也使用$美元符號來代替document.getElementById
JavaScript可以定義$符號函數(shù),簡寫或書寫兼容性更好的代碼。2010-06-06javascript 數(shù)組學(xué)習(xí)資料收集
由于javascript 數(shù)組應(yīng)用比較廣泛,使用的朋友越來越多,腳本之家特為大家整理了一些js 數(shù)據(jù)方面的學(xué)習(xí)資料,大家看完了,基本上應(yīng)該對數(shù)組有個理解了。2010-04-04js nextSibling屬性和previousSibling屬性概述及使用注意
nextSibling屬性:該屬性表示當(dāng)前節(jié)點的下一個節(jié)點;如果其后沒有與其同級的節(jié)點,則返回null;previousSibling屬性:該屬性與nextSibling屬性的作用正好相反,接下來將詳細(xì)介紹下,感興趣的你不妨了解下哦,或許對你有所幫助2013-02-02