首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >控制台窗口如何在内部处理JavaScript算术赋值?返回值来自哪里?

控制台窗口如何在内部处理JavaScript算术赋值?返回值来自哪里?
EN

Stack Overflow用户
提问于 2016-05-20 12:20:48
回答 2查看 61关注 0票数 4

最近我更多地尝试使用JavaScript,这门课程不断强调从内部了解JavaScript的重要性。

所以我有一个奇怪的问题,主要是我试图理解JavaScript内部是如何工作的。

假设我在控制台中执行以下计算:

代码语言:javascript
复制
>> x = 1
<  1
>> x = x + 2
<  3

在那里返回的'3‘,它到底从哪里来的?

例如,它是否先计算'x + 2‘,然后返回3,并将内存中x的值设置为3?或者它会计算'x + 2',将其保存在x的内存空间中,然后从相同的内存空间返回x的值?

或者甚至只是在内存空间中改变x的值,而不移动它,然后返回x的值?

我也非常感谢任何关于我如何了解更多关于JavaScript内部工作原理的来源,以回答更多这样的问题。

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2016-05-20 12:44:16

如果你曾经在像Unix这样的基于终端的系统上工作过,你会更容易理解发生了什么。想想控制台,它是一种bash终端。如果您在命令行终端中键入命令并按Enter键,它将响应一个输出,有时甚至是一个错误。

类似的事情也发生在Chrome控制台上。每次打开Chrome控制台时,它都会保留一个会话,用于存储您的变量和函数。当你调用或使用相同的变量或函数时,它只是返回那个值。

顺便说一句,当你输入像这样的内容时

代码语言:javascript
复制
>> x = 1

在内部发生的情况是,在全局window对象中创建了一个名为x的新属性。所以x = 1window.x = 1是一样的。这就是控制台可以记住您的分配并在以后调用它时使用它的方式。

我希望我设法把您弄糊涂了,所以我就到此为止。

票数 0
EN

Stack Overflow用户

发布于 2016-05-20 17:12:06

您可以进一步查看示例的逻辑,如下所示

代码语言:javascript
复制
>> x = 1
<  1
>> y = x = x + 2
<  3
>> x == y
<  true

它基本上是行的输出。您在浏览器上看到的一些功能是在Javascript引擎之上实现的。以下是与该主题稍微相关的my favorite talk

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37337889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档