js函数与变量提示提升的问题

2019-07-01  本文已影响0人  好名字都让你们用了

1:作用域

函数时唯一一个可以创建作用域的对象

2:变量和函数的提升

js的执行过程:
预解析阶段:变量和函数的提升(声明提前);
变量和函数的提升
js代码时一个从上至下逐步解析的过程,这个过程之前会把所有的变量和函数提前声明.

console.log(a);   //undefined 而不是报错
    var a = 10;
    f1();   //f1而不是报错
    function f1(){
        console.log("f1");
    }
这段代码会先把var a与函数提前申明,如下所示:
var a; //变量a 提前声明,但是没有赋值
function f1(){//函数也会提前拿声明
console.log("f1");
}
console.log(a);//声明没有定义,结果就是undefined
a=10;
f1(); //结果为f1

**具体会出现的问题和集中情况:
①:变量和变量同名的情况,后面的变量会把前面的变量覆盖;

var n1= "n1";
console.log(n1);
function



上一篇下一篇

猜你喜欢

热点阅读