1. 程式人生 > >JS基本概念(三)

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