Javascript 可选类型提示

标签 javascript performance variables ecmascript-harmony ecmascript-4

当编程语言是静态类型时,编译器可以更精确地分配内存,因此通常性能更高(在所有其他条件相同的情况下)。

我相信 ES4 引入了可选的类型提示(据我了解,由于 actionscript,Adobe 在为其规范做出了巨大贡献)。结果是 javascript 正式支持类型提示吗? ES6 会支持原生变量的可选类型提示吗?

如果 Javascript 确实支持类型提示,是否有任何基准可以显示它在性能方面的返回?我还没有看到一个开源项目使用它。

最佳答案

我的理解是,通过在各个站点上聆听许多 Javascript 演讲,类型提示不会像人们认为的那样提供帮助。

简而言之,如果您愿意的话,大多数 Javascript 对象往往具有相同的“形状”。也就是说,它们将具有以相同顺序创建的相同属性。这个“形状”可以被认为是对象的“类型”。 一个例子:

function Point(x, y) {
  this.x = x;
  this.y = y;
}

所有由“点”制成的对象都将具有相同的“形状”,并且更新的内部 Javascript 引擎可以做一些花哨的游戏来获得更快的查找。

在 Chrome(也许其他)中,他们使用高位标志来指示数字的其余部分是整数还是指针。

所有这些花哨的事情都在进行,剩下的就是为人类编码员打字了。一方面,我真的喜欢不必担心类型,也不会使用该功能。

不过,你只对了一半。类型提示是 ActionScript 3 的一部分,ActionScript 3ECMAScript 的派生物——但提示从未成为标准。 AFAIK,除了一厢情愿之外,还没有讨论过。

该视频更详细地描述了一些事情: http://www.youtube.com/watch?v=FrufJFBSoQY

关于Javascript 可选类型提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12379191/

相关文章:

javascript - 不建议在 ES6 中使用 "use strict"?

python - 有没有办法有效地比较 python 中的两个字典列表?

javascript - 更改 Jquery 中变量选择器的属性?

php - 根据用户是否使用 ios 显示/隐藏下载按钮

javascript - 使用 jquery 更改文本和类

javascript - 是否存在不暂停脚本的 JavaScript 警报?

html - 模块化 CSS 技术

Python heapq 与排序的复杂性和性能

c++为什么变量 "file"在我声明时未声明?

python - 迭代在函数中如何工作