函数申明中,个别类型变量跟函数重名状况
var fn = 1;
function fn() {
return 1;
}
console.log(fn); // 显示的是fn的值1
function fn() {
return 1;
}
var fn = 1;
console.log(fn); // 显示的是fn的值1,跟定义程序无关
var fn;
function fn() {
return 1;
}
console.log(fn); // 显示的是fn函数
函数表达式中,个别类型变量跟函数重名状况
var fn;
var fn = function() {
return 1;
}
console.log(fn); // 显示的是fn函数
var fn = 2;
var fn = function() {
return 1;
}
console.log(fn); // 显示的是fn函数
var fn = function() {
return 1;
}
var fn = 2;
console.log(fn); // 显示的是fn的值
var fn = function() {
return 1;
}
var fn;
console.log(fn); // 显示的是fn函数
论断:
- 如果变量申明给与赋值,变量优先于函数申明晋升
- 如果变量申明未赋值,函数申明优先于变量晋升
- 如果变量申明给与赋值,变量依照先后顺序失效,前面笼罩后面
- 如果变量申明未赋值,函数表达式失效
发表回复