JavaScript 中,定义函数时用 var foo = function () {} 和 function foo() 有什么区别?

  • 方法一:foo在进入函数执行上下文开始执行代码的时候,foo是undefined的,知道执行完var foo = function () { }这句,foo才会得到赋值;
  • 方法二:在进入函数执行上下文开始执行代码的时候,foo已经是一个function了。
function hereOrThere() { //function statement return 'here'; } function hereOrThere() {//申明前置了,但因为这里的申明和赋值在一起,所以一起前置 return 'there'; } alert(hereOrThere()); // alerts 'there'

var hereOrThere = function() { // function expression return 'here'; }; alert(hereOrThere()); // alerts 'here' hereOrThere = function() { return 'there'; };



再三须慎意,第一莫欺心
原文地址:https://www.cnblogs.com/otsf/p/8565933.html