变量提升
所谓变量提升,就是变量的声明在执行前会被提升到改作用域顶部。
a = 2;
console.log(a);
var a'
代码在执行前会被处理成如下形式:
var a; //变量声明被提升到该作用域顶部
a = 2;
console.log(a);
函数提升
参考变量提升
sayHello();
function sayHello () {
console.log('hello');
}
代码在执行前会被处理成如下形式:
function sayHello () {
console.log('hello');
}
sayHello();
变量声明与函数声明的比较
var a;
function a () {
console.log('函数a');
}
console.log(a);
function b () {
console.log('函数b');
}
var b;
console.log(b);
代码在执行前会被处理成如下形式:
function a () {
console.log('函数a');
}
function b () {
console.log('函数b');
}
console.log(a);
console.log(b);
这说明函数声明优先级高于变量声明优先级
函数声明和函数赋值给变量的区别
var a;
console.log(a);
a = function(){
console.log('函数a');
}
var b;
console.log(b);
function b(){
console.log('函数a');
}
代码在执行前会被处理成如下形式:
var a;
function b(){
console.log('函数a');
}
console.log(a);
a = function(){
console.log('函数a');
}
console.log(b);
网友评论