码迷,mamicode.com
首页 > 其他好文 > 详细

声明提前例题

时间:2020-05-31 12:53:18      阅读:43      评论:0      收藏:0      [点我收藏+]

标签:一个   height   nbsp   覆盖   table   赋值   function   border   order   

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已经不是一个函数了,所以无法调用,调用了就会报错

 

声明提前例题

标签:一个   height   nbsp   覆盖   table   赋值   function   border   order   

原文地址:https://www.cnblogs.com/Dcode/p/12996915.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!