條件語(yǔ)句(簡(jiǎn)單點(diǎn)看妻顶,記住下面的就行了):
if(條件){
//執(zhí)行代碼塊
}
if(條件){
//執(zhí)行代碼塊 }
else{
//執(zhí)行代碼塊
}
if(條件){
//執(zhí)行代碼塊
}
else if(條件){
//執(zhí)行代碼塊}
else{
//執(zhí)行代碼塊
}
switch(n){
case 1://滿足n===1
//執(zhí)行代碼塊1
break;
case 2:滿足n===2
//執(zhí)行代碼塊2
break;
default://都不滿足
//執(zhí)行代碼塊3
break;
}
循環(huán)語(yǔ)句:
while:
var count = 0;
while(count<10){
csonsole.log(count);
count++
}//輸出0~9
do/while://先執(zhí)行,再判斷幔嗦。至少執(zhí)行一次
function printArrary(a){
var len =a.length,i=0;
if(len == 0)
console.log("empty arrary");
else {
do {
console.log(a[i]);
}while(++i<len);
}
}
for://簡(jiǎn)單的循環(huán)
for(var count=0,count++,count<10){
consloe.log(count);
}//輸出0~9
for/in://用于遍歷邀泉,但一般不建議用
for(變量 in 對(duì)象){
//執(zhí)行代碼
}
ECMAScript規(guī)范并沒(méi)有指定for/in循環(huán)按照何種順序來(lái)枚舉對(duì)象屬性。但實(shí)際上汇恤,主流瀏覽器廠商的JavaScript實(shí)現(xiàn)是按照屬性定義的先后順序來(lái)枚舉簡(jiǎn)單對(duì)象的屬性寞埠,先定義的屬性先枚舉。如果使用對(duì)象直接量的形式創(chuàng)建對(duì)象蓝角,則將按照直接量中屬性的出現(xiàn)順序枚舉。有一些網(wǎng)站和Javascript庫(kù)是依賴于這種枚舉順序的使鹅,瀏覽器廠商不大可能會(huì)修改這個(gè)順序。
Javascript解釋器枚舉“簡(jiǎn)單”對(duì)象一種交互的屬性枚舉順序鲁僚。在下列情況下裁厅,枚舉的順序取決于具體的實(shí)現(xiàn)(并且是非交互的):
對(duì)象繼承了可枚舉屬性;
對(duì)象具有整數(shù)數(shù)組索引的屬性执虹;
使用delete刪除了對(duì)象已有的屬性;
使用object.definePropery()或者類似的方法改變了對(duì)象的屬性袋励。
除了所有非繼承的“自有”屬性以外的繼承屬性都往往是可枚舉的茬故,而且可以按照它們定義的順序進(jìn)行枚舉。
如果對(duì)象屬性繼承自多個(gè)“原型”磺芭,也就是說(shuō)它的原型鏈上有多個(gè)對(duì)象,那么鏈上面的每一個(gè)原型對(duì)象的屬性的遍歷也是依照特定順序執(zhí)行的甘邀。
Javascript的一些實(shí)現(xiàn)依照數(shù)字順序來(lái)枚舉數(shù)組屬性垮庐,而不是某種特定的順序。但當(dāng)數(shù)組元素的索引是非數(shù)字或數(shù)組是稀疏數(shù)組(數(shù)組索引是不連續(xù)的)時(shí)它們則按照特定順序枚舉逗抑。
跳轉(zhuǎn)(js的執(zhí)行從一個(gè)位置跳轉(zhuǎn)到另一個(gè)位置):
標(biāo)簽語(yǔ)句:
通過(guò)給一個(gè)語(yǔ)句加標(biāo)簽寒亥,就可以給這個(gè)語(yǔ)句起一個(gè)名字,這樣在程序的任何地方都可以使用這個(gè)名字來(lái)引用它褂傀,可以標(biāo)記任何語(yǔ)句加勤,
但是被標(biāo)記的語(yǔ)句通常是那些循環(huán)語(yǔ)句同波,即while未檩、do/while粟焊、for和for/in語(yǔ)句,通常給循環(huán)命名项棠,就可以使用break語(yǔ)句和continue語(yǔ)句來(lái)
退出循環(huán)或者循環(huán)的某一次迭代香追。
如:
<script type="text/javascript">
outerloop:
for (var i = 0; i < 10; i++)
{
innerloop:
for (var j = 0; j < 10; j++)
{
if (j > 3)
{
break;
}
if (i == 2)
{
break innerloop;
}
if (i == 4)
{
break outerloop;
}
document.write("i=" + i + " j=" + j + "<br>");
}
}
</script>
break:立即退出最內(nèi)層循環(huán)或switch語(yǔ)句
continue:結(jié)束此次循環(huán),轉(zhuǎn)而執(zhí)行園藝場(chǎng)循環(huán)
return:指函數(shù)調(diào)用后返回的值,執(zhí)行到return時(shí)掷匠,函數(shù)終止執(zhí)行岖圈,并將值返回給程序,通常return語(yǔ)句只在函數(shù)內(nèi)體現(xiàn)蜂科。通常return后加語(yǔ)句,也不是一定的
throw語(yǔ)句:
拋出異常才菠,就是有錯(cuò)誤了贡定,就用它把錯(cuò)誤拋出來(lái)
function factorial(x){
//如果輸入?yún)?shù)不符合判斷,就拋出異常
if (x<0) throw new Error(“x不能是負(fù)值”)蚓耽;
//否則旋炒,計(jì)算出一個(gè)值,并正常返回它
for (var f=1;x>1;f*=x,x--)/*empty*/
return f;
}
try
{
//在此運(yùn)行代碼
}
catch(err)
{
//在此處理錯(cuò)誤
}
try{ //正常執(zhí)行 }
catch(e/你感覺(jué)會(huì)出錯(cuò)的 錯(cuò)誤類型/)
{
// 可能出現(xiàn)的意外 eg:用戶自己操作失誤 或者 函數(shù)少條件 不影響下面的函數(shù)執(zhí)行
// 有時(shí)也會(huì)用在 比如 focus() 但可惡的ie有可能會(huì)第一次沒(méi)有focus事件 再讓他執(zhí)行一次
// 有時(shí)一些不是bug的bug 在ie上 他要求必須加上 catch 哪怕就一個(gè)空catch
}
with語(yǔ)句:是用來(lái)給對(duì)象添加多個(gè)屬性的瘫镇,語(yǔ)法如下
with(objInstance)
{
var str = 屬性1;
.....
} 去除了多次寫對(duì)象名的麻煩答姥。
3)舉例
<script language="javascript">
<!--
function Lakers() {
this.name = "kobe bryant";
this.age = "28";
this.gender = "boy";
}
var people=new Lakers();
with(people)
{
var str = "姓名: " + name + "<br>";
str += "年齡:" + age + "<br>";
str += "性別:" + gender;
document.write(str);
}
//-->
</script>
代碼執(zhí)行效果如下:
姓名: kobe bryant
年齡:28
性別:boy
在嚴(yán)格模式中禁止使用with接奈,所以盡量別用。