js变量声明位置及编译执行顺序(提升)

JavaScript 会将函数声明和变量声明提升到当前作用域的顶部。

变量赋值不会提升。

在脚本的顶部声明函数和变量,这样语法和行为就会相互保持一致。

sayHi("Julia");

function sayHi(name) {
  console.log(greeting + " " + name);
  var greeting = "Hello";
}
//输出 "undefined Julia"
//实际编译时

sayHi("Julia");

function sayHi(name) {
  var greeting;
  console.log(greeting + " " + name);
  greeting = "Hello";
}

//输出 "undefined Julia"

 

posted on 2017-10-18 10:31  yunjie_miao  阅读(184)  评论(0编辑  收藏  举报