函数声明提升,变量声明不提升吗
相关截图:
相关代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
//声明提升
// function a(){
// console.log(2);
// }
// function a() {
// console.log(4);
// }
console.log(a); //没有(),输出函数体
var a=1;
console.log(a); //1
function a(){ //被提升
console.log(2);
}
console.log(a); //1
var a=3;
console.log(a); //3
function a() { //被提升
console.log(4);
}
console.log(a); //3
a(); //Uncaught TypeError: a is not a function
</script>
</body>
</html>
27
收起
正在回答
1回答
同学你好,在预解析过程中,var声明的变量和function声明的函数都会被提升到当前作用域的顶部,而且函数声明会优先提升。如果存在同名函数,后提升的会覆盖先提升的;如果函数名与变量名相同,函数不会被同名变量覆盖,但是会被重新赋值,这段代码声明提升后的结果如下:
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星