1.重要概念
块作用域,函数作用域(若变量声明时没有var,则又为全局),全局作用域。
声明提升:函数的声明与变量的声明会提升到最前执行,其中函数高于变量,如下代码
console.log(a); //输出function a(){}
function a() {};
var a=3;
可看成下面代码
var a;
function a() {};
console.log(a); //输出function a(){}
a=3;
function a() {};
var a=3;
console.log(a);//输出3 这时候不会影响a的赋值
可看成以下代码
var a;
function a() {};
a=3;
console.log(a); //输出3
2.javascript引擎对于变量的处理。
var storage = {
localStorage:window.localStorage,
init: function() {
$('#setting').on('tap', function() {
storage.setStorage();
});
$('#show').on('tap', function() {
storage.showStorage();
});
$('#getByKey').on('tap', function() {
this.gwtByKey();
});
$('#clear').on('tap', function() {
this.clear();
});
},
setStorage:function(){
this.localStorage.setItem('id','1');
},
showStorage:function(){
console.log(this.localStorage.getItem('id'));
},
getByKey:function(key){
},
clear:function(){
}
};
storage.init();
代码中加粗storage变量会一步步向上寻找,最终在全局变量中找到