JavaScript中的函数提升
提升是一种JavaScript技术,可在代码执行开始之前将变量和函数声明移至其作用域的顶部。在范围内,无论在何处声明函数或变量,它们都将移至其范围的顶部。
请注意,提升仅在声明保留在原处时移动声明。
示例
console.log(functionBelow("Hello")); function functionBelow(greet) { return `${greet} world`; } console.log(functionBelow("Hi"));
输出结果
Hello world Hi world
请注意,函数声明是在调用之后但仍然被调用的。由于功能提升,这是可能的。
还要注意,当您分配诸如变量之类的函数时,它不起作用。
console.log(functionBelow("Hello")); var functionBelow = function(greet) { return `${greet} world`; } console.log(functionBelow("Hi"));
这将失败并显示错误:functionBelow不是函数
如果删除var,它将失败并显示以下错误:functionBelow未定义
请注意,使用var声明时,它已作为上下文中的变量吊起。但是它仍然不确定。这称为可变提升。由于此属性,JavaScript中永远不会悬挂匿名和箭头功能。