boom();function boom(){ alert("good");}以上正常alertboom();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 回答
一只名叫tom的猫
TA贡献1906条经验 获得超3个赞
先说结论:
两种函数定义的方式不一样,导致函数提前的方式不同
1.第一种方式,我们称为函数声明,在这种情况下,整个函数都被提升了,包括函数体。即
boom();
function boom(){
alert("good");
}
等价于
function boom(){
alert("good");
}
boom()
2.第二种方式,我们称为函数表达式,在这种情况下定义的函数,仅做函数名称的提升,函数体会留在原来的位置,即
boom();
var boom = function(){
alert("good");
}
等价于
var boom = undefined;
boom();
boom = funciton() {
alert("good");
}
调用boom()时,boom为undefined,因此会报错,
Uncaught TypeError: boom is not a function
添加回答
举报
0/150
提交
取消