常遇的‘函数提升’-----对号入座

2018-12-16  本文已影响7人  萘小蒽

曾经遇到过下面这两种情况:

console.log(global); // undefined
var global = 'global';
console.log(global); // global
 
function fn () {
  console.log(a); // undefined
  var a = 'aaa';
  console.log(a); // aaa
}
fn();

1,变量提升:

在ES6之前,JavaScript没有块级作用域的(一对花括号{}即为一个块级作用域),只有全局作用域和函数作用域。变量提升即将变量声明提升到它所在作用域的最开始的部分。



代码片段
console.log(f1); // function f1() {}   
console.log(f2); // undefined  
function f1() {}
var f2 = function() {}

2,函数提升:

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

上一篇下一篇

猜你喜欢

热点阅读