JS基础总结

延迟脚本 defer

立即下载,延迟执行

异步脚本 async

立即下载,不让页面等待脚本下载和执行,异步加载页面的其他内容。

不按脚本先后顺序执行,所以建议不要在加载其间操作DOM

Unicode

Unicode为每个字符都提供了唯一的数值,不管是什么平台、程序或语言。

开发unicode是为了给处理世界上存在的所有字符提供统一的编码。

for..in

for(var key in obj){
  console.log(key,obj[key]);
}

JS全局函数

JS中包含以下7个全局函数,用于完成一些常用的功能。

escape():

eval():

isFinite():

isNaN():

parseFloat():

parseInt():

unescape():

高阶函数

操作函数的函数,它接收一个或多个函数作为参数,并返回新函数。

私有变量和函数

function Box(){
  var color = "blue";  //私有变量
  var fn = function(){};  //私有函数
}

var obj = new Box();
console.log(obj.color);  //undefined
console.log(obj.fn);  //undefined

在函数Box外部无法访问color和fn函数,他们是私有的。

静态变量和函数

function Box(){}

Box.num = 12;  //静态变量
Box.fn = function(){};  //静态函数

console.log(Box.num);  //12
console.log(Box.fn);  //function(){}
console.log(typeof Box.fn);  //function

var t = new Box();
console.log(t.num);  //undefined
console.log(t.fn);  //undefined
console.log(typeof t.fn);//undefined

静态变量和静态函数是Box对象的属性和方法,不属于实例。

实例变量和函数

function Box(){
  this.a = [];  //实例变量
  this.fn = function(){};  //实例方法
}

console.log(Box.a);  //undefined
console.log(Box.fn);  //undefined
console.log(typeof Box.fn);  //undefined

var t = new Box();
var t2 = new Box();

console.log(t.a);  //[]
console.log(t2.a);  //[]
t.a.push(1);
console.log(t2.a);  //[1]

console.log(typeof t.fn);//function

每个实例都有一套实例属性和实例方法,互不影响。

原型上的属性和方法,是实例共用的。

function Base(){
  this.id = "base";
}
var obj = new Base();

new干了什么?

1.var obj = {};

2.obj.proto = Base.protptype;

3.Base.call(obj);

Table of Contents