JS基本概念(三)
1. 一元操作符
++在前,是變數的值(++)在語句被求值以前改變。
var age = 29;
var anotherAge = --age + 2;
age---27 anotherAge---29
++在後,是包含該操作符的語句被求值後再執行++。
var num1 = 2;
var num2 = 20;
var num3 = num1-- + num2; //22
num1 = 1;
++ 和 -- 操作符對任何值都適用,即不僅適用於字串、布林值、浮點數值和物件。規則如下:
① 對於包含有效數字字元的字串時,先將其轉換為數字值,再執行。字串變數變成數值變數。
② 對於不包含有效數字字元的字串時,變數值變為NaN,字串變數變為數值變數。
③ false時,先將變數變為0在執行,布林值變為數值變數
④ 浮點數時,直接執行
⑤ 物件時,先呼叫物件的valueOf() 方法,得到一個可供操作的值,再執行。如果值為NaN,則呼叫toString() 方法後,在執行。物件變 量變成數值變數
2. 逗號操作符
可以用於宣告多個變數:var num1 = 1, num2 = 2, bum3 = 3;
可以用於賦值,返回表示式中的最後一項:var num = (5,1,4,8,0); //num = 0
3. for-in 語句
可以用來列舉物件的屬性,如:
for (var propName in Window) {
document.write(propName);
}
該迴圈用來顯示Window物件的所有屬性,每次執行迴圈時,都會將window物件中存在的一個屬性名賦值給變數propName。一直到物件中的所有屬性都被列舉一遍為止。
4. with 語句:作用是將程式碼的作用域設定到一個特定的物件中。在with語句中,所有定義的變數都為區域性變數,如果在這個區域性環境中,沒有某個變數的定義,就會去特定的物件中查詢同名的屬性。如:
with(location) { //這裡location是一個物件
var qs = search.sunstring(1); // 相當於location.search.substring(1)
var hostName = hostname; //相當於location.hostname
var url = href; //相當於location.href
}
5. 函式的引數
ECMAScript函式不介意傳遞進來多少個引數(即定義了一個引數,但傳進來兩個引數也可以),也不在乎傳遞進來的引數是什麼資料型別。
引數儲存在arguments物件內(類似於陣列),arguments[0] 代表第一個引數,依次類推。
arguments.length屬性可以獲知有多少個引數傳遞給了函式。
注意:沒有傳遞值的命名引數將自動賦值為undefined