js:函数与变量作用域的提升

时间:2022-12-12 15:03:34

一、要彻底理解JS的作用域和Hoisting,只要记住以下三点即可:
      1、所有申明都会被提升到作用域的最顶上
      2、同一个变量申明只进行一次,并且因此其他申明都会被忽略
      3、函数声明的优先级优于变量申明,且函数声明会连带定义一起被提升

二、作用域只有函数作用域和全局作用域

三、因为JavaScript中的函数是一等公民,函数声明的优先级最高,会被提升至当前作用域最顶端

四、变量的声明会被提升,赋值不会被提前。但是函数的声明与变量的声明是不一样的。函数的函数体也会被一起提升。

五、函数分为两种情况:

       函数声明和函数表达式(其实就是var变量的声明定义)

     1、函数声明

console.log(foo);//function foo(){};
function foo(){};
var f00 = 'i am text';

     2、函数表达式

console.log(foo);//undifined
var foo = function(){};
var foo = 'i am text';

 

 

www.jb51.net/article/96083.htm

https://www.cnblogs.com/liuhe688/p/5891273.html