function fn(){
console.log(123);
}
fn();
注意:以这种方式定义的函数,在调用的时候既可以在函数之前调用,也可以在函数之后调用。
var fn = function(){
console.log(123);
};
fn();
注意:以这种方式定义的函数,在调用的时候只能在函数之后调用。
预解析:在预解析时,会提前将script标签里所有的函数定义和变量声明提前而变量的赋值不会提前,这样就可以先调用再执行方法一里定义的函数(先调用后定义)。而方法二里的变量也会提前,但是赋值不会提前。(不能先调用后定义) 方法二里定义的函数又叫函数表达式,后面需要加“;”。
执行:按照代码顺序从上到下执行(例外:setTimeout,setInterval,ajax里的回调函数,事件中的函数需要触发执行)
var cd = function(){
console.log(‘test‘);
};
function fn(callback){
callback();
}
fn(cd);
// 将一个函数作为另一个函数的参数
function fn1(){
var n =1;
var fn = function(){
n ++;
console.log(n);
};
return fn;
}
var fn2 = fn1();
fn2();
fn2();
fn2();
// 结果:123
// 闭包的使用,本应为222,闭包则使得fn里的空间成为私有空间,可以使用fn1里的变量
原文:http://www.cnblogs.com/happyzwt/p/6492941.html