js代码执行的预处理机制:变量提升

js代码执行的预处理机制:变量提升

 

 

 

console.log(a); //undefined

var a = 12;

console.log(b); 

let b = 12; //报错,Uncaught ReferenceError: b is not defined

 

例题:

console.log(fn);
function fn(){ console.log(1); }
console.log(fn);
var fn = 12;
console.log(fn);
function fn(){ console.log(2); }
console.log(fn);

js代码执行的预处理机制:变量提升

 

特点:因为变量提升极致,导致可以在创建函数的代码之前执行函数,导致代码逻辑松散

fn();

function fn() {console.log(1);}

fu();

 

真实项目中,推荐使用“函数表达式”:把一个函数作为值,赋值给一个变量;

const fn = function(){console.log(1)}

如果用var ,也会变量提升,在定义fn之前使用,输出undefined;

js代码执行的预处理机制:变量提升

 

 ‘a‘ in window :a这个属性名是不是window的属性

a in window: a是undefined,检测undefined是不是window的属性

 

js代码执行的预处理机制:变量提升

 

 

例题:

 js代码执行的预处理机制:变量提升

 

 例题:

js代码执行的预处理机制:变量提升

 

js代码执行的预处理机制:变量提升

上一篇:微信开发学习总结(一)——微信开发环境搭建(转)


下一篇:微信架构演变