gpt4 book ai didi

Javascript/Node : (() => 0) === (() => 0)

转载 作者:搜寻专家 更新时间:2023-10-31 23:35:19 25 4
gpt4 key购买 nike

我正在阅读 Javascript Allongé ,在其中我看到了应该返回 false 的代码:

(() => 0) === (() => 0)

当我使用 Nodejs 在命令行 (Ubuntu 14.04) 上运行它时,我得到三个点:...,之后我使用 CTRL-C 取消。

我使用以下命令启动 node.js:nodejs,而不是 node。使用 --harmony 没有任何区别。

Node.js 版本:v0.10.25

为什么我没有返回结果?我考虑过使用 Nodejs 作为命令行测试实用程序,但这也许不是一个好主意?

最佳答案

关于为什么返回 false 的简单答案是因为即使函数做相同的事情并且看起来相同,它们在两个不同的内存位置被初始化(对于像函数这样的对象,普通对象和数组,严格相等运算符 === 检查该对象的内存位置。)

另外,如果你打算使用 Node.js,你必须确保它把它解释为 ECMAScript6(否则,() => 0 不是有效的 ES5,这是默认的用于 Node.js)。

您可以使用 --harmony 标志:

node --harmony app.js

查看此 question about "What does node --harmony do?"有关在 Node.js 中使用 ES6 的更多信息。摘自最佳答案的简短引述:

it seems harmony enables new ECMA features in the language. The reason your file won't run without harmony is because app.js is probably using non-backward compatible features from the new ECMA standard (like block scoping, proxies, sets, maps, etc.)

要解释您可能会看到三个点的原因,请参阅 this question :

So basically, you opened node in an interactive terminal, and then typed node example.js, so it is trying to run that as if it were JavaScript. It shows the three dots because that is not valid JavaScript code, and it is waiting for you to type more code that might make it valid.

output

以上是我的输出。这是我在终端中运行的(使用 0.12.21):

> $ node --harmony
> (() => 0) === (() => 0)
> false

关于Javascript/Node : (() => 0) === (() => 0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30919732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com