3 回答

TA貢獻(xiàn)89條經(jīng)驗(yàn) 獲得超53個(gè)贊
/*
try{}這段語(yǔ)句是拋出異常;catch(errMsg){}是捕獲異常。
如果,if語(yǔ)句中條件為真(即,變量ans為非數(shù)字或是小于0的數(shù)字時(shí))時(shí),就會(huì)執(zhí)行throw new Error("Not a valid number");拋出一個(gè)異常。此時(shí)if后面的語(yǔ)句alert("The square root of " + ans + " is " + Math.sqrt(ans));就不會(huì)被執(zhí)行。接著執(zhí)行catch (errMsg) {alert(errMsg.message)}捕獲到異常并彈出異常為:Not a valid number;
如果,if語(yǔ)句中條件為假(即,變量ans為大于或等于0的數(shù)字)時(shí),就不會(huì)拋出異常,繼而執(zhí)行alert("The square root of " + ans + " is " + Math.sqrt(ans));,catch (errMsg) {alert(errMsg.message)}也不會(huì)被執(zhí)行!
綜上,else在這里就沒(méi)有必要了。
*/
try {
if (!ans || isNaN(ans) || ans<0) {
throw new Error("Not a valid number");
}
alert("The square root of " + ans + " is " + Math.sqrt(ans));
}
catch (errMsg) {
alert(errMsg.message);
}
}

TA貢獻(xiàn)361條經(jīng)驗(yàn) 獲得超191個(gè)贊
沒(méi)有else就是單純判斷,true就執(zhí)行語(yǔ)句1,然后無(wú)論true還是false都執(zhí)行語(yǔ)句2
if(){執(zhí)行語(yǔ)句1};
執(zhí)行語(yǔ)句2;
如果有else就判斷,true就執(zhí)行語(yǔ)句1,false就執(zhí)行語(yǔ)句2
if(){執(zhí)行語(yǔ)句1};
else{執(zhí)行語(yǔ)句2};
添加回答
舉報(bào)