变量提升和函数提升

一、变量提升

在我们的js中,代码的执行时分两步走的,1、解析 2、一步一步执行

在es6之前只有全局作用域和局部作用域。 变量提升即将变量声明提升到它所在作用域的最开始的部分。后面引用到这个变量才不会出现undefined。

var global; // 变量提升,全局作用域范围内,此时只是声明,并没有赋值
console.log(global); // undefined
global = 'test'// 此时才赋值
console.log(global); // 打印出test
 
function fn () {
  var a; // 变量提升,函数作用域范围内
  console.log(a); // undefined
  a = 'aaa';
  console.log(a); // aaa
}
fn();

 二、函数提升

js中创建函数有两种方式:函数声明式和函数字面量式。只有函数声明才存在函数提升!如:

console.log(f1); // function f1(){}

console.log(f2); // undefined

function f1(){} 

var f2=(){} 

 记:第一个博文,嘿嘿

原文地址:https://www.cnblogs.com/loya/p/9813064.html