什么's var函数和javascript中的函数之间的区别
what's the difference between var function and function in javascript?
可能重复:
JavaScript:var functionName=function(){}vs function functionName(){}
函数声明-函数表达式-作用域
我已经了解了var a = 1
,它定义了一个局部变量,但谈到函数,我认为它只在当前范围内可用,因为var变量的行为,下面两个代码片段有什么区别?
function aPrint() {
console.log('a');
}
var a = function aPrent() {
console.log('a');
}
您的第一个示例是"函数声明"。它声明了一个函数,该函数将在声明它的范围内的任何位置可用(因此您可以在它出现在源代码中之前调用它)。这有时被称为"吊装"(如中,它被吊装到其范围的顶部)。
第二个示例是"命名函数表达式"。变量声明被提升到定义它的作用域的顶部(就像函数声明一样),但赋值仍然发生在您期望的地方,所以在将函数赋值给变量之后才能调用函数。
还有第三个选项,它只是一个"函数表达式",其中函数没有名称(它是一个匿名函数):
var a = function() {
console.log('a');
}
您可能会发现,您很少使用命名函数表达式(尽管在调试时它可能很有用),因此通常最好使用匿名函数。在命名函数表达式中,名称只在函数本身的作用域中,因此通常不能按名称引用函数。
这里有一篇可能对您有所帮助的最佳文章。
参考http://www.dustindiaz.com/javascript-function-declaration-ambiguity/
-
函数aPrint(){}声明一个函数(但不执行它)。它通常在花括号之间有一些代码。
-
var a=aPrint()声明一个变量,调用一个函数(aPrint),并将aPrint的值设置为函数的返回值。
-
var a=新aPrint()基于aPrint函数创建对象的新实例。因此,变量现在是一个Object,而不仅仅是一个字符串或数字。
对象可以包含索引字符串、数字甚至函数,并且您可以向它们添加更多内容,它们非常棒。面向对象编程(OOP)的整个概念就是基于此的。
- Jquery在函数之间传递表行
- d3中堆栈函数和嵌套函数之间的差异
- 如何在函数之间切换
- JavaScript/jQuery-添加添加和删除类与下一个函数之间的延迟
- Javascript-defineProperty和直接在对象上定义函数之间的区别
- 在函数之间传递javascript变量
- 两个函数之间的角度承诺
- Javascript创建函数,以便在其他函数之间共享变量
- 直接绑定和使用每个函数之间的区别
- 节点模块对象范围:在所有函数之间共享一个对象
- js 函数之间使用参数的区别
- angularjs+ui.router:指令控制器和链接函数之间的不同行为
- 如何在onchange事件中的两个函数之间进行选择
- 在使用ajax调用的函数之间调用相同的函数
- 在JavaScript函数之间传递JSON值
- 试图理解JavaScript中原型和构造函数之间的区别
- 什么'新函数和函数之间的区别
- javascript函数之间的OR运算符
- 以下jquery和requireJS函数之间的区别
- 在Javascript中的函数之间共享变量