Javascript 事件侦听器将调用函数,但不会调用分配给函数的变量
问题-在调整浏览器大小时调用函数 不正确的解决方案: 正确的解决方案:Javascript 事件侦听器将调用函数,但不会调用分配给函数的变量,javascript,Javascript,问题-在调整浏览器大小时调用函数 不正确的解决方案: 正确的解决方案: 问题-为什么第一个示例不起作用?第一个示例按此顺序执行 var resize; // undefined window.addEventListener("resize", resize); resize = function() { console.log("message"); }; function resize() { console.log("message"); } window.addEv
问题-为什么第一个示例不起作用?第一个示例按此顺序执行
var resize; // undefined
window.addEventListener("resize", resize);
resize = function() {
console.log("message");
};
function resize() {
console.log("message");
}
window.addEventListener("resize", resize);
resize
的值在设置eventlistener时,undefined
变量变为,这意味着变量已声明,但没有赋值
第二个是按照这个顺序执行的
var resize; // undefined
window.addEventListener("resize", resize);
resize = function() {
console.log("message");
};
function resize() {
console.log("message");
}
window.addEventListener("resize", resize);
因为函数声明也被挂起。第一个是按此顺序执行的
var resize; // undefined
window.addEventListener("resize", resize);
resize = function() {
console.log("message");
};
function resize() {
console.log("message");
}
window.addEventListener("resize", resize);
resize
的值在设置eventlistener时,undefined
变量变为,这意味着变量已声明,但没有赋值
第二个是按照这个顺序执行的
var resize; // undefined
window.addEventListener("resize", resize);
resize = function() {
console.log("message");
};
function resize() {
console.log("message");
}
window.addEventListener("resize", resize);
因为函数声明也被挂起。函数声明被挂起 作业未挂起 因为
window.addEventListener(“resize”,resize)代码>出现在您=function…
之前,resize
的值仍然是未定义的
这将有助于:
var resize = function() {
console.log("message");
};
window.addEventListener("resize", resize);
功能声明已悬挂
作业未挂起
因为window.addEventListener(“resize”,resize)代码>出现在您=function…
之前,resize
的值仍然是未定义的
这将有助于:
var resize = function() {
console.log("message");
};
window.addEventListener("resize", resize);
因为在第二个示例中,功能提升
正在进行。这样的函数声明会提升函数的名称及其定义
function someFunction(){
//Some Code
}
通过这样做,JavaScript解释器允许您在源代码中声明函数之前使用该函数
因此,即使您的函数定义在后面,您仍然可以使用它,因为它被提升
但是,函数定义提升只发生在函数声明中,而不是函数表达式中。例如:
var definitionNotHoisted = function () {
console.log("Definition not hoisted!");
};
此函数只能在定义后使用。
这就是为什么在第一个示例中,函数不起作用
您可以在这里了解更多。因为在第二个示例中,函数正在执行。这样的函数声明会提升函数的名称及其定义
function someFunction(){
//Some Code
}
通过这样做,JavaScript解释器允许您在源代码中声明函数之前使用该函数
因此,即使您的函数定义在后面,您仍然可以使用它,因为它被提升
但是,函数定义提升只发生在函数声明中,而不是函数表达式中。例如:
var definitionNotHoisted = function () {
console.log("Definition not hoisted!");
};
此函数只能在定义后使用。
这就是为什么在第一个示例中,函数不起作用
您可以在此了解更多信息。在使用前初始化变量调整大小
,这也会起作用…在使用前初始化变量调整大小
,这也会起作用。。。