码迷,mamicode.com
首页 > Web开发 > 详细

js中的变量提升

时间:2019-10-03 13:04:30      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:ons   UNC   信息   引擎   efi   undefined   理解   解释   赋值   

在js中 变量声明与赋值被认为是两个不同的操作,引擎首先会对前者进行优先编译,这部分工作就是找到所有的声明(例如函数声明function b(注:非函数表达式),变量声明var a),既然是优先执行,那么在一些代码结构中,后声明的function,var 变量就会提前解释;

例如 var a=3;引擎会认为这是两个操作  var a(声明); a=3(赋值),简而言之就是 先有蛋 后有鸡,

  理解了这一点 这就很好解释如下的代码结构及其输出

a=2;
var a; //定义声明提升
console.log(a) //得到2

-------------------分割线-------------------

console.log( a );//得到undefined
var a = 2; //等效于var a;//定义声明置顶               a=2;

-------------------分割线-------------------

foo();  //得到666

function(){

console.log(666)

}

-------------------分割线-------------------

foo();  //报错 信息为 Uncaught TypeError: foo is not a function,因为此时 foo为undefined,而不是一个函数

var foo = function(){

console.log(6666)

}

js中的变量提升

标签:ons   UNC   信息   引擎   efi   undefined   理解   解释   赋值   

原文地址:https://www.cnblogs.com/tony-stark/p/11619254.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!