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';
});
- 我的微信
- 这是我的微信扫一扫
-
- 我的微信公众号
- 我的微信公众号扫一扫
-