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);
相关文章
相关标签/搜索