这可能是个问题,但我不明白为什么会这样:
<script type="text/javascript">
alert(foo);
function foo() { }
</script>
这会警告“function foo(){}”,但我希望在定义函数foo之前评估警报。有人可以解释一下我对解析/评估顺序不了解的内容,或者指向一个资源吗?
答案 0 :(得分:3)
JavaScript与PHP一样,在代码运行之前跟踪顶级function
声明。
但是,您可以使用分配来绕过自动功能:
var a = function a() { }
答案 1 :(得分:0)
必须阅读JavaScript中的函数定义类型。
答案 2 :(得分:0)
函数声明被提升到顶部,因此首先声明。
您可以通过将它们分配给类似的变量
来更改此行为var a = function() {
// do it
};
这会将变量a
指定给匿名函数。