【发布时间】:2012-09-04 01:58:59
【问题描述】:
我不知道为什么我在过去几年从未问过自己这个问题,但突然间我无法为自己或谷歌找到任何答案。
众所周知,Javascript 没有变量类型。真是一件好事。 但它必须以某种方式确定类型并使用它。
var a = 1;
var b = 2.0;
var c = 'c';
var d = "Hello World!";
所以我们有一个 Integer、Double/Float、Character、String(可以拆成 char*)
我知道 JS 与运行时解释器一起工作,但考虑到逻辑和“类型”必须以任何方式实现..
那么 Javascript 解释器如何识别并在内部处理变量? 在我的想象中,假设我会编写 C++,我会想到一种模板和容器,以及一些重载运算符的逻辑,并尝试检查它到底是什么。但这并没有考虑到最后。
请与我分享你的知识:-)
【问题讨论】:
-
嗯,变量没有类型,但值是。该规范仅描述了语言中的某些机制是如何工作的,它没有定义实现。通常你会发现像 "If Type(x) is String...". 这样的表达式
-
再次..我没有问如何在运行时确定js程序中的类型。
-
这不是一个真正的问题。如果您想了解内部结构,请查看源代码。
-
在这种情况下,我会将我的投票从重复修改为非建设性。解释器如何跟踪变量及其元数据是一个实现细节,并且在不同的实现之间肯定会有所不同。
标签: javascript types