这是js高程上面的一个例子看到函数声明有一个代码说是这段代码无效语法,大多数浏览器会返回第二个声明,firefox会返回第一个声明,这是为什么?如果改成函数表达式形式的就可以了,这又是为什么?
1 回答
守候你守候我
TA贡献1802条经验 获得超10个赞
js是有声明提前的!!!function会在声明时直接提到作用域顶端。if中不存在作用域,所以两个function是一个作用域,第二个会替掉第一个。! 而你第二段代码,先声明了变量sayhi,在if判断后才对sayhi进行赋值,
添加回答
举报
0/150
提交
取消