JavaScript 權威指南學習記錄

2016.1.28數組

3.1.3JavaScript中的算術運算函數

    NaN(Not a Number)沒法經過x==NaN來判斷變量x是不是NaN,相反,應當使用x!=x來判斷,當且僅當x爲NaN的時候,表達式的結果纔是true。this

    isFinite(),在參數不是NaN、Infinity或-Infinity的時候返回true。spa

    負零值與正零值相等,除了做爲除數外。code

3.3布爾值對象

    下面這些值會被轉換成false:underfined、null、0、-0、NaN、""//空字符串索引

3.6包裝對象ip

    

        var s ="test";
        x.len=4;
        var t= x.len;
        console.log(t);//返回undefined

 

    第二行代碼建立一個臨時字符串對象,並給其len屬性賦值爲4,隨即銷燬這個對象。最後嘗試讀取len值,這個屬性值天然不存在。存取字符串、數字或布爾值的屬性時建立的臨時對象稱作包裝對象作用域

 

        var s ="test";
        var x =new String(s);
        x.len=4;
        var t= x.len;
        console.log(t);//返回undefined      字符串

        console.log(x==s);//返回true,若是===則返回false

3.7不可變得原始值和可變的對象引用

    對象的比較與值的比較是不相同的:即便兩個對象包含一樣的屬性及相同的值,它們也是不相等的。各個索引元素完成相等的兩個數組也不相等。

3.8對象轉換爲原始值

    對象到布爾值:全部的對象(包括數值和函數)都轉換爲true。

3.10.1函數做用域和聲明提早

    JavaScript中使用函數做用域,變量在聲明它們的函數體以及這個函數體嵌套的任意函數體內都是有定義的。

    JavaScript函數裏聲明的全部變量都被"提早"至函數體的頂部。

        var scope ="global";
        function f(){
            console.log(scope);//輸出"undefined"
            var scope="local";//變量在這個賦初始值,但變量自己在函數體內任何地方均是有定義的
            console.log(scope);//輸出"local"
        }

 

 全局變量和局部變量

    var i =0;//全局變量

     n=0;//全局變量

    function demo(){

        var a =0;//局部變量

        b=0;//全局變量

}

 2016/2/4

8.7函數屬性、方法和構造函數

8.7.1length屬性

在函數的體內,能夠用arguments.length來表示傳入函數的實參的個數,即實參的真實個數

而使用arguments.callee.lengh則表示指望的實參個數。

function ra(a,b){
    this.a=a;
    this.b=b;
    var h=arguments.callee.length;
    var i=arguments.length;
    console.log(h);//h的值爲2
    console.log(i);//i的值爲1
}
ra(1);
相關文章
相關標籤/搜索