声明提前例题

Posted dcode

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了声明提前例题相关的知识,希望对你有一定的参考价值。

function fun(){
    console.log(1);
}
fun();  //2
function fun(){
    console.log(2);
}
fun();  //2
var fun=100;
fun();  //报错,fun不是一个函数了

解析:

   程序在执行前,都会先找到var声明得到变量和function声明的函数,提前到当前作用域的顶部,但是赋值会留在原地。

 
function fun(){console.log(1);}
function fun(){console.log(2);}
遇到同名的,会覆盖第一个fun函数

var fun=100;=>var fun; fun=100;
声明 赋值
var fun 被提前,但是原来已经有了一个fun变量,所以这句不执行,
fun();
fun();
fun=100;
fun();

所以第一次调用和第二次调用fun都输出2;然后将100赋值给了fun,所以第三次调用时,变量fun已经不是一个函数了,所以无法调用,调用了就会报错

 

以上是关于声明提前例题的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——声明函数

VSCode自定义代码片段8——声明函数

JavaScript新手学习笔记4——我记不住的几个坑:短路逻辑按值传递声明提前

JavaScript 声明提前机制

声明提前js变量

如何使用sublime代码片段快速输入PHP头部版本声明