boom();
function boom(){
alert("good");
}
以上正常alert
boom();
var boom = function(){
alert("good");
}
这上面的代码无法alert出内容,求大牛告知。
以下为html结构
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>abc</title>
</head>
<body>
<p>TEST</p>
<script src="js/test.js"></script>
</body>
</html>
先说结论:
两种函数定义的方式不一样,导致函数提前的方式不同
1.第一种方式,我们称为函数声明,在这种情况下,整个函数都被提升了,包括函数体。即
等价于
2.第二种方式,我们称为函数表达式,在这种情况下定义的函数,仅做函数名称的提升,函数体会留在原来的位置,即
等价于
调用boom()时,boom为undefined,因此会报错,