首页 > 试题广场 >

写出如下代码弹出的结果

[单选题]
写出如下代码弹出的结果:
var m= 1, j = k = 0; 
function add(n) { 
    return n = n+1; 
} 
y = add(m); 
function add(n) { 
    return n = n + 3; 
} 
z = add(m); 
console.log(y + "," + z);
y和z的最终结果为:
  • 2,4
  • 4,4
  • 2,2
  • 报异常
y = add(m)
z = add(m)
y和z的值为add之后的值,m的值没有发生变化,因此y, z 都是4
发表于 2019-12-04 10:24:16 回复(0)
1.js允许函数重名,之后的函数覆盖之前的函数,与参数无关。 2.函数、变量的声明提前到顶部 第二个add覆盖第一个add,m又是全局变量
发表于 2018-04-26 16:43:46 回复(0)
js中没有函数覆盖
js变量顶部提升
add函数声明被提升到顶部
m是全局变量
所以y和z的结果都是4
发表于 2017-11-29 17:02:58 回复(2)