js 声明提升

时间:2022-05-23 21:54:02
  1. 声明提前
    变量在声明之前已经可以使用了
  2. js中的所有的变量声明都提升到函数体内的顶部 ,如下图
    js 声明提升

    实际运行的情况是如下

    function f1() {
    -- var scope ;

    console.log(scope) ;
    var scope = 'local' ;
    console.log(scope)
    }
    f1();

    备注:
    声明提前了,而赋值语句没有改变位置
    由于第一个变量scope在函数中第一次使用之前已经声明了,所以可以使用,
    但是由于没有赋值,所以打印出来的值为undefined

  3. 函数的两种创建方式
    函数声明语法

js中的函数声明提升到外部脚本,或外部作用域的顶部
js 声明提升

所以上面的代码类型于
function f1(name) {
  console.log(name );
}
f1('name') ;

备注
相当于将函数定义提前了

函数表达式创建法
如下图

js 声明提升
相当于

var f2 ;

f2('name') ;
f2 = function(name) {
  console.log('什么节能快要到了!') ;
}

    变量声明提前了,赋值语句没有变位置,因为函数没有定义,所以报错

2018-03-30 21:12:30