当编程语言是静态类型时,编译器可以更精确地分配内存,因此通常性能更高(在所有其他条件相同的情况下)。
我相信 ES4 引入了可选的类型提示(据我了解,由于 actionscript,Adobe 在为其规范做出了巨大贡献)。结果是 javascript 正式支持类型提示吗? ES6 会支持原生变量的可选类型提示吗?
如果 Javascript 确实支持类型提示,是否有任何基准可以显示它在性能方面的返回?我还没有看到一个开源项目使用它。
最佳答案
我的理解是,通过在各个站点上聆听许多 Javascript 演讲,类型提示不会像人们认为的那样提供帮助。
简而言之,如果您愿意的话,大多数 Javascript 对象往往具有相同的“形状”。也就是说,它们将具有以相同顺序创建的相同属性。这个“形状”可以被认为是对象的“类型”。 一个例子:
function Point(x, y) {
this.x = x;
this.y = y;
}
所有由“点”制成的对象都将具有相同的“形状”,并且更新的内部 Javascript 引擎可以做一些花哨的游戏来获得更快的查找。
在 Chrome(也许其他)中,他们使用高位标志来指示数字的其余部分是整数还是指针。
所有这些花哨的事情都在进行,剩下的就是为人类编码员打字了。一方面,我真的喜欢不必担心类型,也不会使用该功能。
不过,你只对了一半。类型提示是 ActionScript 3
的一部分,ActionScript 3
是 ECMAScript
的派生物——但提示从未成为标准。 AFAIK,除了一厢情愿之外,还没有讨论过。
该视频更详细地描述了一些事情: http://www.youtube.com/watch?v=FrufJFBSoQY
关于Javascript 可选类型提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12379191/