《JavaScript高級程序設計》 讀書筆記(四)

因爲 ECMAScript 中不存在塊級做用域,所以在循環內部定義的變量也能夠在外部訪問到 express

//例如:
var count = 10;
for (var i = 0; i < count; i++){
alert(i);
}
alert(i); //10

 

for-in語句
for-in 語句是一種精準的迭代語句,能夠用來枚舉對象的屬性。如下是 for-in 語句的語法:
for (property in expression) statement
下面是一個示例:
for (var propName in window) {
document.write(propName);
}
在這個例子中,咱們使用 for-in 循環來顯示了 BOM window 對象的全部屬性。每次執行循環
時,都會將 window 對象中存在的一個屬性名賦值給變量 propName。這個過程會一直持續到對象中的
全部屬性都被枚舉一遍爲止。與 for 語句相似,這裏控制語句中的 var 操做符也不是必需的。可是,
爲了保證使用局部變量,咱們推薦上面例子中的這種作法。
ECMAScript 對象的屬性沒有順序。所以,經過 for-in 循環輸出的屬性名的順序是不可預測的。
具體來說,全部屬性都會被返回一次,但返回的前後次序可能會因瀏覽器而異。
可是,若是表示要迭代的對象的變量值爲 null undefinedfor-in 語句會拋出錯誤。
ECMAScript 5 更正了這一行爲;對這種狀況再也不拋出錯誤,而只是不執行循環體。
瀏覽器

爲了保證最大限度的兼容性,建議在使用 for-in 循環以前,先檢測確認該對象的值不是 null undefined。 spa

 

label語句
使用 label 語句能夠在代碼中添加標籤,以便未來使用。如下是 label 語句的語法:
label: statement
下面是一個示例:
start: for (var i=0; i < count; i++) {
alert(i);
}
這個例子中定義的 start 標籤能夠在未來由 break continue 語句引用。
code

加標籤的語句通常都要與 for 語句等循環語句配合使用。

對象

breakcontinue語句
break continue 語句用於在循環中精確地控制代碼的執行。其中,break 語句會當即退出循環,
強制繼續執行循環後面的語句。而 continue 語句雖然也是當即退出循環,但退出循環後會從循環的頂
部繼續執行。
blog

 

switch語句
ip

switch 語句中的每一種情形(case)的含義是:「若是表達式等於這個值(value),則執行後面的
語句(statement)」。而 break 關鍵字會致使代碼執行流跳出 switch 語句。若是省略 break 關鍵字,
就會致使執行完當前 case 後,繼續執行下一個 case。最後的 default 關鍵字則用於在表達式不匹配前
面任何一種情形的時候,執行機動代碼(所以,也至關於一個 else 語句)。
從根本上講, switch 語句就是爲了讓開發人員免於編寫像下面這樣的代碼:
if (i == 25){
alert("25");
} else if (i == 35) {
alert("35");
} else if (i == 45) {
alert("45");
} else {
alert("Other");
}
而與此等價的 switch 語句以下所示:
switch (i) {
case 25:
alert("25");
break;
case 35:
alert("35");
break;
case 45:
alert("45");
break;
default:
alert("Other");
}
作用域

相關文章
相關標籤/搜索