javascript 中的函数声明和函数表达式区别

函数声明格式:

1 function add(a, b) {
2             alert(a+b);
3         }

函数表达式格式:

1 var add = function (a, b) {
2             alert(a+b);
3         }

解析器在向环境中加载数据时,对函数表达式和函数声明就像一个男人对原配和对小三.当然是先满足原配,在去照顾小三.解析器会通过"函数声明提升过程",读取并将函数声明添加到执行环境中.

所以声明函数的代码在调用他的代码的后面,也能正常执行.但是函数表达式就没有这个待遇了.当一个男人先满足小三,再去满足自己的老婆,肯定是要出问题的啦

1  //可以正确执行
2         add(1, 3);
3         function add(a, b) {
4             alert(a+b);
5         }
1  //不可以正确执行,报错: add is not a function;
2         add(1, 3);
3         var add = function (a, b) {
4             alert(a+b);
5         }

 函数声明在火狐,苹果,谷歌和欧鹏下还有一个非标准的name属性,通过这个属性可以访问到给函数指定的名字.

1 function add() { }
2 alert(add.name);//add

 

你可能感兴趣的:(JavaScript)