猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
js声明前置时候,是变量声明先前置还是函数声明先前置?
js声明前置时候,是变量声明先前置还是函数声明先前置?怎么证明
拉丁的传说
浏览 440
回答 1
1回答
桃花长相依
这真是个刁钻的问题,讲真这个很难讲清到底谁会先声明,个人理解js的变量和函数声明分成三个阶段:申明,初始化,赋值。申明表示代码解析的时候表明我现在这个作用域里有这个变量了,这个过程在es5里表现不明显,但是es6里的let变量的表现就表明。初始化就是对变量和函数附上初始值,最后就是赋值将用户的值附给对应的变量和函数。正常我们说的声明提前是对于var变量指的是 申明+初始化(let不一样,他有临时性死区其实际上应该也算有提前,申明这个过程提前了),而函数的声明提前指的是 申明+初始化+赋值,最重要的是解析器是将当前作用域内声明的所有变量和函数都会放到作用域的开始处,所以谁先谁后不重要,可能是先变量后函数,也可能是谁在前谁先来不按种类分,具体的可能就得看解析器到底是怎么做的了。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
JavaScript
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续