今天看书看到一段平常没太注意的小细节。
一个函数的创建,会有两种方式:声明与表达式。
直接上代码:
var a = declareFun(1,2);
console.log(a);
var b = conveyFun(3,4);
console.log(b);
function declareFun(num1,num2){
return num1+num2;
}
var conveyFun = function(num3,num4){
return num3+num4;
}
平常,我们可能都会不太在意declareFun和conveyFun这两种创建一个函数的方式。
没错。他们的调用是一模一样的。
都是函数名+括号+参数就可以调用了。
但是,表达式方式创建的函数,或者说,一个匿名函数赋值给一个变量的时候,是会产生先后顺序的。
如上面代码所示,
最终输出的结果是:
3
testgetset.html:12 Uncaught TypeError: conveyFun is not a function
函数conveyFun是没法调用的。因为在变量b调用它的时候,它还没声明。
这文章可能比较显浅,而且一般人也不容易错。
但是,姑且也当是我的一个读书笔记吧。
最终我们只要记住一点就可以了:始终在使用函数之前定义它们,你就可以随意的使用函数声明或表达式了。