关于javascript:javascript函数声明和函数表达式重载

2次阅读

共计 542 个字符,预计需要花费 2 分钟才能阅读完成。

函数申明中,个别类型变量跟函数重名状况

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 函数 

论断:

  • 如果变量申明给与赋值,变量优先于函数申明晋升
  • 如果变量申明未赋值,函数申明优先于变量晋升
  • 如果变量申明给与赋值,变量依照先后顺序失效,前面笼罩后面
  • 如果变量申明未赋值,函数表达式失效
正文完
 0