以下代码执行后, num 的值是?
var foo=function(x,y){
return x-y;
}
function foo(x,y){
return x+y;
}
var num=foo(1,2);
答案:
-1
解析:
JS中变量声明、函数声明都会被提升到作用域顶处;
当出现相同名称时,优先级为:变量声明< 函数声明 < 变量赋值;
这里的第一个foo是变量赋值,第二个foo是函数声明,在JS的解析过程中,会优先处理第一个foo
本文探讨了JavaScript中变量声明、函数声明的作用域提升机制,以及在遇到同名声明时的优先级问题。通过具体代码示例,展示了当变量与函数同名时,JS引擎如何解析并执行代码。
以下代码执行后, num 的值是?
var foo=function(x,y){
return x-y;
}
function foo(x,y){
return x+y;
}
var num=foo(1,2);
答案:
-1
解析:
JS中变量声明、函数声明都会被提升到作用域顶处;
当出现相同名称时,优先级为:变量声明< 函数声明 < 变量赋值;
这里的第一个foo是变量赋值,第二个foo是函数声明,在JS的解析过程中,会优先处理第一个foo

被折叠的 条评论
为什么被折叠?