问题标签 [function-expression]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 使用函数表达式而不是函数声明的好情况是什么?
我更喜欢一直使用函数声明,因为我可以将函数放在源文件的任何位置。如果我使用函数表达式,函数必须放在源文件的顶部。
有没有使用函数表达式而不是函数声明的好情况?
javascript - 吊装功能表达式
据我所知,只有函数表达式的声明部分被提升而不是初始化。例如:
所以“var myFunction;” 被提升,但“function myFunction()...”没有。
现在我的问题是,我玩了一下 google auth 功能:
在第 10 行“window.setTimeout(checkAuth...”) 上,我调用了在此函数调用下方声明的 checkAuth 函数。我的假设是我收到错误消息,说“...checkAuth 不是函数/未定义等。.. .",但它确实有效。有人可以向我解释一下吗?
javascript - 在 JS 中声明函数:Named 和 Unnamed 表达式
最近,我开始研究 JS 库Typeahead
作为预测搜索框的解决方案。然而,在查看实现它的代码后,我开始更深入地研究事物,并导致我在javascript
.
我知道有 3 种主要方法可以实现这一目标:
- 函数声明
- 函数表达式
- 函数构造
仔细观察function expressions
它然后引导我anonymous functions
。我对这些的理解是,它们实际上是function expression
没有名字的?
我的问题是关于命名函数表达式和匿名函数之间的区别,我为什么要选择使用匿名函数?匿名函数有什么好处(如果有的话)?
如果您在下面看到(我知道这是一个非常简单的示例),它们似乎在做完全相同的事情?我似乎无法区分它们。
顺便说一句,这是导致我写这个的问题:Typeahead.js substringMatcher 函数的解释
在代码中作者使用了一个匿名函数。无论如何,如果有人能为我解决这个问题,我将不胜感激。同样在你问我之前,我确实已经用谷歌搜索了这个并被带到了各种不同的网站,概述了这些差异,但我更愿意在这里问社区。
javascript - 为什么节点 js 中函数表达式的位置不重要?
在 JavaScript 中,当使用函数表达式(例如var myFunc = function() {...}
)时,就像任何其他变量声明一样,您必须在使用之前定义变量。例如,以下示例将不起作用(将导致Uncaught TypeError: myFunc is not a function
):
但是,在我的 node js 项目的 routes/index.js 文件中,我有以下代码(明显缩写):
myFunc
变量是在使用后声明的,所以这不应该抛出错误吗?
javascript - 在 JavaScript 中,为什么函数表达式需要放在括号中才能调用函数
我试着打电话
但是警告出来了
当我用名字打电话时
什么都没发生
但是当我用括号打电话时,
两者都在屏幕上显示警报。为什么这一切会发生?
javascript - 函数表达式中的默认参数
javscript 函数声明中的默认参数可以通过一个简单的赋值来实现,如下所示:
但是我怎样才能为函数表达式设置默认参数,因为以下内容在 chrome v47 中不起作用:
任何指针都会有所帮助。
javascript - 函数表达式的词法范围
如果我们将 javascript 引擎的操作分为编译阶段(设置整个词法范围图)与运行阶段(在编译阶段使用词法范围设置执行代码),函数表达式的范围何时设置?是在编译阶段还是运行/解释阶段?
此外,每当设置函数表达式的范围时,父范围将始终是全局范围,对吗?(我看过这个发生的代码,只是想确认一下)。
javascript - JavaScript 混淆中的函数表达式
我试图从另一位开发人员那里理解这段代码,但我缺乏 JavaScript 知识。此功能应该采用站点的标题菜单并将其转换为移动样式菜单。
我理解为什么 jQuery 被传递为$
. 我不明白变量CPCU
是如何被传回自身的,或者为什么它被传回为CPCU || {}
. 有人可以帮助我了解CPCU
变量在这种情况下是如何工作的吗?
javascript - 如何防止 JS 缩小删除命名函数表达式的名称?
我在一个需要跟踪的对象上有这个函数,以及调用的父调用者和传递给调用者的参数。
这很好,直到缩小:
缩小摆脱了这些名称,我的输出变为:
我真的不想去创建函数声明和赋值,因为我有很多它们(我用 7,564 继承了这段代码......我可以轻松地运行一些正则表达式子来命名函数表达式。)
我能做些什么来防止缩小器摆脱我的这些函数名?
javascript - Sinon 窥探函数表达式
是否可以让 sinon 监视函数表达式?例如看这个代码。
即使我打电话myMethod()
并且我有间谍,one - two - three
我仍然会误报one.called
(与two
and相同three
)
我在这里想念什么?
谢谢!