javascript - js声明前置时候,是变量声明先前置还是函数声明先前置?

查看:94
本文介绍了javascript - js声明前置时候,是变量声明先前置还是函数声明先前置?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

js声明前置时候,是变量声明先前置还是函数声明先前置?怎么证明

解决方案

这真是个刁钻的问题,讲真这个很难讲清到底谁会先声明,个人理解js的变量和函数声明分成三个阶段:申明,初始化,赋值。申明表示代码解析的时候表明我现在这个作用域里有这个变量了,这个过程在es5里表现不明显,但是es6里的let变量的表现就表明。初始化就是对变量和函数附上初始值,最后就是赋值将用户的值附给对应的变量和函数。正常我们说的声明提前是对于var变量指的是 申明+初始化(let不一样,他有临时性死区其实际上应该也算有提前,申明这个过程提前了),而函数的声明提前指的是 申明+初始化+赋值,最重要的是解析器是将当前作用域内声明的所有变量和函数都会放到作用域的开始处,所以谁先谁后不重要,可能是先变量后函数,也可能是谁在前谁先来不按种类分,具体的可能就得看解析器到底是怎么做的了。

这篇关于javascript - js声明前置时候,是变量声明先前置还是函数声明先前置?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆