js引擎会先对文件进行预编译,其中一部分工作边便是将函数和变量的声明提升到其对应作用域的顶部。全局变量提升到全局作用域顶部,函数内声明的变量提升到函数作用域的顶部。其中变量会被先定义为undifined。值得一提的是,ES6中新增的let和const变量不存在提升。
函数提升只会提升函数声明,不会提升函数表达式。
函数和变量提升
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 面试题 首先,让我们来看一题面试题; 作用域 作用域(scope)指的是变量存在的范围。Javascript只有两...
- 函数变量的提升 函数内部变量提升: 函数内部使用变量, 默认情况下, 函数会把下面变量它的声明提升到函数的最上边 ...