以下代码执行后, 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
以下代码执行后, 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