读《JavaScript高级程序设计》个人总结1

延迟脚本

1.将脚本文件放在/body标签之前
2.添加到window.load里

3.

<script src="url" defer="defer"></script>

这样可以在文档加载完成后加载脚本

undefined值是派生自null的

number类型中NaN(not a number)表示本来返回数字结果返回的不是数字

Object类型

construtor构造函数,用来保存当前对象的函数

arguments存放该函数的所有参数

sum(1,2)//3
sum(3,4,5)//12

function sum(){
    var n=0;
    for(var i=0;i<arguments.length;i++){
        n+=arguments[i];
    }
    return n;
}

检查传入参数中参数的类型和数量并做出不同的反应,可以模仿方法的重载(使用typeof操作符)

复制变量的值可以互不影响,复制对象他们都指向相同

js没有块级作用域:

for(var i=0;i<10;i++){
  //do something...
}
alert(i);//10

在for语句结束后不会被销毁

Array对象

Array栈方法
push()添加到数组末尾,返回增加后的长度
pop()移除最后一项,返回移除的项
队列方法
shift()移除第一项,并返回它
与push()配合可以实现队列方法

sort()通过字符串排序,让sort()接受一个比较函数即可实现数字类型的排序

function compare(a,b){
    if(a<b){        return -1;
    }else if(a<b){       return 1;
    }else{     return 0;
    }
}var value=[12,3,6,1];
value.sort(compare);
alert(value);//1,3,6,12

this属性

this引用的是函数执行时的环境对象,在全局作用域中调用时的this引用的是window

arguments保存该函数的所有参数
arguments.callee是一个指针,指向拥有这个arguments对象的函数

函数调用

​window.name = "Ye";var o = {
    name = "Chation";
}function name(){
    alert(this.name);
}
name.call(this)//Yename.call(o);//Chation

call用来扩展函数作用域

欢迎分享本文,转载请保留出处:前端ABC » 读《JavaScript高级程序设计》个人总结1

分享到:更多 ()

发表评论 0