最近我更多地尝试使用JavaScript,这门课程不断强调从内部了解JavaScript的重要性。
所以我有一个奇怪的问题,主要是我试图理解JavaScript内部是如何工作的。
假设我在控制台中执行以下计算:
>> x = 1
< 1
>> x = x + 2
< 3在那里返回的'3‘,它到底从哪里来的?
例如,它是否先计算'x + 2‘,然后返回3,并将内存中x的值设置为3?或者它会计算'x + 2',将其保存在x的内存空间中,然后从相同的内存空间返回x的值?
或者甚至只是在内存空间中改变x的值,而不移动它,然后返回x的值?
我也非常感谢任何关于我如何了解更多关于JavaScript内部工作原理的来源,以回答更多这样的问题。
谢谢!
发布于 2016-05-20 12:44:16
如果你曾经在像Unix这样的基于终端的系统上工作过,你会更容易理解发生了什么。想想控制台,它是一种bash终端。如果您在命令行终端中键入命令并按Enter键,它将响应一个输出,有时甚至是一个错误。
类似的事情也发生在Chrome控制台上。每次打开Chrome控制台时,它都会保留一个会话,用于存储您的变量和函数。当你调用或使用相同的变量或函数时,它只是返回那个值。
顺便说一句,当你输入像这样的内容时
>> x = 1在内部发生的情况是,在全局window对象中创建了一个名为x的新属性。所以x = 1和window.x = 1是一样的。这就是控制台可以记住您的分配并在以后调用它时使用它的方式。
我希望我设法把您弄糊涂了,所以我就到此为止。
发布于 2016-05-20 17:12:06
您可以进一步查看示例的逻辑,如下所示
>> x = 1
< 1
>> y = x = x + 2
< 3
>> x == y
< true它基本上是行的输出。您在浏览器上看到的一些功能是在Javascript引擎之上实现的。以下是与该主题稍微相关的my favorite talk。
https://stackoverflow.com/questions/37337889
复制相似问题