js 里 function xxx() {}和 var xxx=function() {}有何区别?

2015-12-21 17:27:37 +08:00
 pseudo
7857 次点击
所在节点    JavaScript
7 条回复
Sivan
2015-12-21 17:33:39 +08:00
rokeyzki
2015-12-21 17:35:21 +08:00
第一个是函数声明、第二个是函数表达式
二者区别在于
前者可以后置,可以通过函数名访问,不可以匿名,不可以立即调用
后者相反,不可以后置,不可以通过函数名访问,可以匿名,可以立即调用
pseudo
2015-12-21 17:36:39 +08:00
@Sivan
@rokeyzki 受教了,十分感谢!
lwd369
2015-12-21 19:21:26 +08:00
最近正在学 js ,感觉坑还挺多,有些概念和传统的 oo 语言有些区别 看起来有点吃力 @ @
russj
2015-12-21 19:26:38 +08:00
前者可以被 hoist

再考你一下, 下面的 console 输出什么?

 ```
var x = 1;

(function () {
console.log(x);
var x = 2;
}());
```
tinyproxy
2015-12-22 12:54:41 +08:00
@russj 作用域坑死一堆新人😁😁😁
bramblex
2015-12-22 13:53:52 +08:00
函数式神教的教徒表示只用第二种 /w\

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/245135

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX