可能重复:
What is the difference between a function expression vs declaration in Javascript?
我是一名在HTML,ASP.NET方面具有丰富经验的Web开发人员。我知道很少的javascript,足以在网络编程中完成简单的任务。最近,在阅读Jquery和其他复杂的javascript文件时,我一直在观察大量的javascript代码,如下所示:
var increment = function(x){
return x + 1;
}
我想知道这在概念上是否与下面相同,我已经习惯了:
function increment(x){
return x + 1;
}
而且,如果相同,为什么我看到很多使用第一种符号而不是第二种?
答案 0 :(得分:2)
不同之处在于
var increment = function(x){
return x + 1;
}
在脚本块的分析时定义,而在运行时定义function increment(x){
return x + 1;
}
看到这个:
<script>
increment();
var increment = function()
{
}
</script>
这会给你错误.. .while
<script>
increment();
function increment()
{
}
</script>
不会给你错误。
答案 1 :(得分:-2)
两者都定义函数,但首先还将functionobject存储在变量中,因此可以将其作为参数传递给其他方法。这样的结构在各种环境中都非常有用,比如处理集合 - 你可以分开遍历 走路时收集和做某事,像这样(简化):
function doSomethingWhileIterating(collection, function) {
foreach(member in collection) {
function(member);
}
}
会在集合上的每个元素上调用函数来做有用的事情
答案 2 :(得分:-2)
基本上两者都是相同的,第一种语法的使用清楚地理解了什么是变量和什么是值,请记住,javascript函数是可以赋值给变量并传递给函数的值
请注意,第二种语法实际上创建了一个var名称增量,而不是一个名为increment的全局变量。