一、变量提升
在我们的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=(){}
记:第一个博文,嘿嘿