javascript - Javascript中的反括号

标签 javascript node.js

是什么让我在这样的函数调用中使用反括号/反括号的 Javascript?我在 CLI 上的 Node 控制台中运行;特别是 Node 版本 0.10.25。

function a(){ return 42 }
a() // -> 42
a)( // -> 42.  WTF?

function b(t){ return t }
b(4) // -> 4
b)4( // No function evaluation; presumably dangling parentheses
b)(4 // -> 4.  WTF?

附录:这似乎不适用于 Chrome 33.0.1750.152、Safari 7.0.2 或 Firefox 27.01。这实际上是对 ECMAScript 的某种解释的某种“特性”,还是 Node 特性?如果 Node 使用 V8,它不应该与 Chrome 结果匹配吗?

最佳答案

控制台可能将所有内容都包含在 eval 语句中:实际上是什么 评估可能是 eval(a)()。在这种情况下,Chrome 也会返回 42。

关于javascript - Javascript中的反括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22540224/

相关文章:

javascript - NodeJS Promise,延迟返回值

javascript - 如何获取按钮点击事件的图像?

javascript - Facebook 照片库查看器

javascript - 模型属性更新时 UI 不更新,由 knockout ES5 跟踪

node.js - 嵌入在 Node.js 中的 Elasticsearch

javascript - 如何查看在 Zeit Docker/Node 容器中创建的文件

node.js - 使用 Superagent 和 Express 4 接收 POST 请求数据

javascript - 如何将显示所有卡片按钮添加到下面的 javascript 代码中?

javascript - 这些说明只是告诉我声明一个全局变量吗?

jquery - 如何在 Protractor 中发起 HTTP GET+POST 请求