3 回答

TA貢獻89條經(jīng)驗 獲得超53個贊
/*
try{}這段語句是拋出異常;catch(errMsg){}是捕獲異常。
如果,if語句中條件為真(即,變量ans為非數(shù)字或是小于0的數(shù)字時)時,就會執(zhí)行throw new Error("Not a valid number");拋出一個異常。此時if后面的語句alert("The square root of " + ans + " is " + Math.sqrt(ans));就不會被執(zhí)行。接著執(zhí)行catch (errMsg) {alert(errMsg.message)}捕獲到異常并彈出異常為:Not a valid number;
如果,if語句中條件為假(即,變量ans為大于或等于0的數(shù)字)時,就不會拋出異常,繼而執(zhí)行alert("The square root of " + ans + " is " + Math.sqrt(ans));,catch (errMsg) {alert(errMsg.message)}也不會被執(zhí)行!
綜上,else在這里就沒有必要了。
*/
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貢獻361條經(jīng)驗 獲得超191個贊
沒有else就是單純判斷,true就執(zhí)行語句1,然后無論true還是false都執(zhí)行語句2
if(){執(zhí)行語句1};
執(zhí)行語句2;
如果有else就判斷,true就執(zhí)行語句1,false就執(zhí)行語句2
if(){執(zhí)行語句1};
else{執(zhí)行語句2};
添加回答
舉報