我是靠谱客的博主 慈祥秋天,最近开发中收集的这篇文章主要介绍变量提升和函数提升哪个优先问题解释:肯定是函数声明优先,但最后的结果要看谁最后赋值参考文章:函数声明 和 var声明的优先级,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
问题
首先:普遍认为函数声明提升优于变量提升
但为什么下面的结果是这样的呢(第一个输出我们好理解,因为是先编译后赋值,编译的时候先声明了var 和 function,之后再进行赋值)预编译看这篇
它们都会进行预解析,函数声明提前于变量声明,但是最终会被变量覆盖!
console.log(typeof a); // function
var a = 1;
function a(){}
console.log(typeof a); // number
解释:肯定是函数声明优先,但最后的结果要看谁最后赋值
函数声明先赋值,变量声明执行到赋值语句才赋值
因为两种声明方式共同操作一块栈空间,所以,主要看是谁最后赋值的,我们再看一个例子:
console.log(typeof a); // function
var a = 1;
function a(){}
console.log(typeof a); // number
这就看的出来了,通过上边的这个demo, 明显可以看出来,应该 函数声明先赋值的,它是在执行上下文的执行阶段一开始的时候就已经进行了赋值操作,所以 最开始 typeof a 可以得到 function;而,变量声明 是要执行到赋值语句的时候才进行的赋值,所以 最后 typeof a 得到是 number;
参考文章:函数声明 和 var声明的优先级
最后
以上就是慈祥秋天为你收集整理的变量提升和函数提升哪个优先问题解释:肯定是函数声明优先,但最后的结果要看谁最后赋值参考文章:函数声明 和 var声明的优先级的全部内容,希望文章能够帮你解决变量提升和函数提升哪个优先问题解释:肯定是函数声明优先,但最后的结果要看谁最后赋值参考文章:函数声明 和 var声明的优先级所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复