首页 > Web开发 > 详细

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

时间:2021-06-06 21:14:19      阅读:15      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 

 

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

技术分享图片

 

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

fn();

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

fu();

 

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

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

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

技术分享图片

 

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

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

 

技术分享图片

 

 

例题:

 技术分享图片

 

 例题:

技术分享图片

 

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

原文:https://www.cnblogs.com/zhoujingye/p/14855831.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!