switch 語句
switch
語句來選擇多個需被執行的代碼塊之一,匹配是嚴格匹配 ===
default
關鍵詞規定不存在 case 匹配時所運行的代碼
getDay() 方法返回 0 至 6 之間的周名數字(weekday number)
(Sunday=0, Monday=1, Tuesday=2 ..)
本例使用周名數字來計算周的名稱:
switch (new Date().getDay()) {
case 0:
day = "星期天";
break;
case 1:
day = "星期一";
break;
case 2:
day = "星期二";
break;
case 3:
day = "星期三";
break;
case 4:
day = "星期四";
break;
case 5:
day = "星期五";
break;
case 6:
day = "星期六";
}
JS 標籤
如需標記 JavaScript 語句,請將標籤名和冒號置於語句之前:
label:
statements
break
和 continue
語句是僅有的可“跳出”代碼塊的 JavaScript 語句
break labelname;
continue labelname;
continue
語句(不論有無標籤引用)只能用於跳過一個迭代
break
語句,如果沒有標籤引用,只能用於跳出一個循環或一個 switch
如果有標籤引用,則 break
語句可用於跳出任意代碼塊
constructor 屬性
constructor
屬性返回所有 JavaScript 變量的構造器函數
"Bill".constructor // 返回 "function String() { [native code] }"
而 typeof
卻不可以去判斷 JavaScript 對象是否是數組(或日期)
類型轉換
把數值轉換爲字符串
-
全局方法
String()
能夠把數值轉換爲字符串
String(x)
-
數字方法
toString()
同理
x.toString()
-
Boolean()
轉換布爾值爲字符串
toExponential()
返回字符串,對數字進行舍入,並使用指數計數法來寫
toFixed()
返回字符串,對數字進行舍入,並使用指定位數的小數來寫
toPrecision()
返回字符串,把數字寫爲指定的長度
把字符串轉換爲數值
-
全局方法
Number()
可把字符串轉換爲數字 -
一元的
+
運算符可用於把變量轉換爲數字
var y = "5"; // y 是字符串
var x = + y; // x 是數字
包含數字的字符串(比如 “3.14”)轉換爲數字(比如 3.14)
空的字符串轉換爲 0
其他字符串將轉換爲 NaN
可以轉換布爾值
parseFloat()
解析字符串並返回浮點數
parseInt()
解析字符串並返回整數
位運算
test()
通過模式來搜索字符串,然後根據結果返回 true 或 false
var patt = /e/;
patt.test("The best things in life are free!");
或
/e/.test("The best things in life are free!");
exec()
通過指定的模式(pattern)搜索字符串,並返回已找到的文本
try 和 catch
try
語句允許定義一個代碼塊,以便在執行時檢測錯誤
catch
語句允許定義一個要執行的代碼塊,如果 try
代碼塊中發生錯誤
throw
語句允許創建自定義錯誤
throw "Too big"; // 拋出文本
throw 500; //拋出數字
try
和catch
成對出現:
try {
供測試的代碼塊
}
catch(err) {
處理錯誤的代碼塊
}
- 如果把
throw
與try
和catch
一同使用,就可以控制程序流並生成自定義錯誤消息
本例會檢查輸入。如果值是錯誤的,將拋出異常(err)
該異常(err)被 catch 語句捕獲並顯示一條自定義的錯誤消息
<!DOCTYPE html>
<html>
<body>
<p>請輸入 5 - 10 之間的數字:</p>
<input id="demo" type="text">
<button type="button" onclick="myFunction()">測試輸入</button>
<p id="message"></p>
<script>
function myFunction() {
var message, x;
message = document.getElementById("message");
message.innerHTML = "";
x = document.getElementById("demo").value;
try {
if(x == "") throw "空的";
if(isNaN(x)) throw "不是數字";
x = Number(x);
if(x < 5) throw "太小";
if(x > 10) throw "太大";
}
catch(err) {
message.innerHTML = "輸入是 " + err;
}
}
</script>
</body>
</html>
finally
語句允許您在 try
和 catch
之後執行代碼,無論結果
try {
供測試的代碼塊
}
catch(err) {
處理錯誤的代碼塊
}
finally {
無論 try / catch 結果如何都執行的代碼塊
}
Error 對象
JavaScript 擁有當錯誤發生時提供錯誤信息的內置 error 對象。
error 對象提供兩個有用的屬性:name
和 message
name
設置或返回錯誤名message
設置或返回錯誤消息(一條字符串)
- 更新版本的 JS 不會拋出任何 EvalError,使用 SyntaxError 代替
- RangeError 會在使用了合法值的範圍之外的數字時拋出
- 假如使用(引用)了尚未聲明的變量,則 ReferenceError 會被拋出
- 假如計算帶語法錯誤的代碼,會 SyntaxError 被拋出
- 假如使用的值不在期望值的範圍之內,則 TypeError 被拋出
- 假如在 URI 函數中使用非法字符,則 URIError 被拋出