变量提升和函数提升
一、变量提升
在我们的js中,代码的执行时分两步走的,1、解析 2、一步一步执行
在es6之前只有全局作用域和局部作用域。 变量提升即将变量声明提升到它所在作用域的最开始的部分。后面引用到这个变量才不会出现undefined。
var global; // 变量提升,全局作用域范围内,此时只是声明,并没有赋值console.log(global); // undefinedglobal = 'test'; // 此时才赋值console.log(global); // 打印出testfunction 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=(){}
记:第一个博文,嘿嘿

浙公网安备 33010602011771号