JavaScript模式之函数总结

JavaScript模式之函数总结

1.函数声明和命名函数表达式的区别:提升行为。

对于所有的变量,无乱在函数体的何处声明,变量声明都会在后台被提升到函数顶部,变量定义不会提升。

而这对于函数同样适用,因为函数也是分配给变量的对象。与变量声明提升区别:函数定义也被提升,而不仅仅是函数声明被提升。

//反模式

//仅用于演示

//全局函数

function foo() {

console.log('global foo');

}

function bar() {

console.log('global foo');

}

function hoistMe() {

console.log(typeof foo);// 输出'function'

console.log(typeof bar);// 输出'undefined'

foo();// 输出'local foo'

bar();// 输出TypeError: bar is not a function

//函数声明

//变量'foo'以及其实现者被提升

function foo() {

console.log('local foo');

}

//函数表达式

//仅变量'bar'被提升

//函数实现并未被提升

var bar = function () {

console.log('local bar');

};

}

hoistMe();

2.回调函数可以是一个已有的函数,或者也可以是一个匿名函数,可以在调用主函数时创建它。

findNodes(function (node) {

node.style.display='block';

});

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: