欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

函数声明提升与变量提升

程序员文章站 2023-12-21 19:55:16
...

1.当在函数的作用域里定义一个和外部变量一样的名称的变量时,变量声明会提升至第一句,但是赋值则不变

var test="hello world";
function(){
  alert(test);
  var test="hello world again";
}();

上面这段代码会弹出undefined,为什么?其实上面这段代码就相当于:

var test="hello world";
function(){
  var test;  //变量提升至第一句,赋值不变
  alert(test);
  test="hello world again";
}();

2.函数声明首先被提升,然后才是变量

console.log(test);
function test(){
    //...
}
var test="hello world";

上面代码打印输出的是function test(){//...}这个函数,其实就是相当于:

function test(){}   //函数声明先提升
var test;              //变量提升,但是赋值则不变
console.log(test);
test="hello world";

以上。
哪里不对还请大神指正,共同学习,一起进步。

上一篇:

下一篇: