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);