问题标签 [ecma262]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4523 浏览

javascript - v8 何时实现 ECMAScript 5?

我注意到v8在 ECMAScript 第 5 版的问题上相当沉默。

V8 实现 ECMA-262 第 3 版中指定的 ECMAScript,并在使用 IA-32 或 ARM 处理器的 Windows XP 和 Vista、Mac OS X 10.5 (Leopard) 和 Linux 系统上运行。

即使是错误跟踪器似乎也很安静......

一个错误上,您可以找到一个提交者写这个:

V8 是 ECMAScript 的实现,而不是 JavaScript。后者是 Mozilla 制作的 ECMAScript 的非标准化扩展。V8 旨在与 JSC 插件兼容,JSC 是 WebKit/Safari 中的 ECMAScript 实现。因此,它实现了许多也在 JSC 中的 ECMAScript 的非标准扩展,其中大部分也是 Mozilla 的 JavaScript 语言。没有计划将 JSC 中没有的非标准特性添加到 V8。

有趣的是,他在 2010 年 10 月 8 日写道,当时 ECMAScript 5 于 2009 年 12 月发布,两个月前 Javascript 1.8.5——ECMAScript 5 的超集——发布。

所以问题仍然存在,谷歌什么时候会更新 v8 以在 ECMAScript 第 5 版上运行?是否有升级到 ECMAScript 最新标准化的计划?

0 投票
2 回答
490 浏览

javascript - 通过带有原型的对象的 ECMAScript 关联数组为空?

我看到很多人这样做

我的问题不是.hasOwnProperty每次您希望将 anObject用作哈希时都进行测试,为什么不直接在对象上设置.__proto__to呢?null†</p>

我注意到这__proto__是非标准的。但这仍然没有回答这个问题......

var foo = Object.create(null); Object.getPrototypeOf(foo);

这不可能是一个原始问题,但我找不到任何关于更改__proto__null以消除必须检查继承的缺点?这种方法有什么问题,似乎使代码更快(不必检查 的属性Object)和更清洁?

.prototype如果您打算将其作为未来的孩子,还有该财产。

0 投票
1 回答
590 浏览

javascript - JavaScript 对象属性查找 - 语法重要吗?

这是一个关于 JavaScript (ECMAScript) 语言的基本问题,所以如果它是重复的,我提前道歉(稍微搜索并没有揭示我的确切问题)。

在 ECMAScript 中,我们可以使用两种基本语法形式来获取/设置对象的属性,它们似乎具有完全相同的效果。由于我不太了解,我将它们称为“属性”和“关联数组”符号:

这两种符号之间有什么真正的区别吗?显然,关联数组表示法允许我们在对象上查找动态生成的键(并强制将其参数转换为字符串),而属性表示法使用文字,但这是唯一的区别吗?

0 投票
4 回答
8056 浏览

javascript - JavaScript 中的激活和变量对象?

术语“激活对象”只是“变量对象”的另一个名称,还是它们之间实际上有任何区别?我一直在阅读一些关于如何在执行上下文中形成变量范围的 JavaScript 文章,从我的角度来看,似乎在大多数文章中它们可以互换使用这两个术语。

0 投票
3 回答
2601 浏览

java - Java和ECMA-262(AS、JS)中正则表达式的区别

我需要将 Java 正则表达式转换为 Actionscript 正则表达式。

显然没有任何预制转换器,所以我正在尝试自己编写一个。有没有列出所有差异的资源?

我知道regular-expressions.info,但那里似乎没有一个全面的差异列表。

谢谢

0 投票
1 回答
466 浏览

heroku - Gemfile.lock 未签入 - Heroku × 45807

得到与(7)相同的问题,并尝试了所有可能的答案,但仍然没有取得任何进展。我希望你能有所帮助(请记住我是新手)。这里是问题的描述@hand: Counting objects: 7, done。Delta 压缩最多使用 4 个线程。压缩对象:100% (4/4),完成。写入对象:100% (4/4),403 字节,完成。总计 4(增量 3),重复使用 0(增量 0)

谢谢

0 投票
4 回答
4903 浏览

javascript - Javascript 中保留字的使用

在Javascript中有各种不能在里面使用的保留字Identifiers;其中一些实际上是为将来使用而保留的。为了澄清一点, anIdentifier是一个Identifier Name但不是保留字。标识符名称的确切语法在这里不相关。

但是,根据此处的最后一段,似乎在某些地方使用 any 是有效的Identifier Name,即使它是保留字。文章提到有效

虽然我很清楚第二种形式是合法的,但我一直认为第一种和第三种不合法。

事实上,这个资源表示

作为无效代码。

是否有一些地方保留字实际上是有效的?

作为一个动机,我正在编写一个 API,在其中传递表单的对象是有意义的

但我不想强迫用户在in.

0 投票
3 回答
295 浏览

javascript - 我应该使用哪个 ECMA-262 (ECMAScript/JavaScript) 参考?

我阅读 JavaScript Q&A 的次数越多,对 ECMA-262 的引用就越多安眠药参考。除了官方的pdf之外,我还看到了一些HTML

我想链接到 HTML 参考,但我很犹豫,因为我没有时间验证它们的真实性、准确性或一致性。

除了受信任的 PDF之外,是否有特定的 ECMAScript 参考,或者 Stack Overflow 社区普遍认可?

0 投票
5 回答
1052 浏览

javascript - 是否有与环境无关的方法来检测 Javascript 主机对象?

我正在编写一个 Javascript 堆栈跟踪库。库需要检测特定对象或函数是由程序员创建的,还是作为环境的一部分存在的(包括内置对象)。宿主对象由于其不可预测的行为而变得有点问题,所以我正在采用一种与环境无关的方法来确定 Javascript 中的特定对象是否是宿主对象(参见ECMAScript 3 - 4.3.8)。但是,区分宿主对象与本机对象和原始值对于其他项目中的程序员很有用,特别是在无浏览器环境中,所以我想关注这一点,而不是宿主对象在我的库中引起的问题或区分程序员- 创建的对象。

到目前为止,我只能提出依赖于运行 javascript 代码的环境的解决方案。例如:

我注意到 jQuery 自己的isPlainObject()方法也依赖于环境,而且逻辑相当复杂。

也许这是因为这就是拥有宿主对象的野兽的本质(因为它们的行为是由环境定义的),但我想进一步挖掘一下,看看这是否可能,并且想知道是否有人遇到过这个特殊问题之前并准备好解决方案。

所以。有人知道一个简单的独立于平台的解决方案来测试主机对象吗?如果它在 Node 或 Rhino 等无浏览器环境中运行,那就更好了。

可能的方法(可能不起作用):

  • 考虑到它们的行为没有规范,测试宿主对象的特性似乎是一个失败的原因,但是测试对象是否是 ES3 规范的一部分可能是可能的。
  • 考虑到它的定义非常明确,我尝试过使用Object.prototype.toString(),但结果尚无定论,因为某些环境(即 IE)选择为本机对象和主机对象返回相同的值。
  • 可以constructor通过通过原型链检查对象的最终是否真的是instanceof Function.
0 投票
1 回答
1392 浏览

c++ - 具有自定义类的 QtScript instanceof 引发与原型相关的错误

我有一个 Qt 项目,它使用 QtScript 模块使我的应用程序的某些组件可编写脚本。

在多次尝试使现有类在 QtScript 中直接可用之后,我选择使用继承 QObject 和 QScriptable 的包装类(主要是因为我有一些非 qobject 派生类被其他继承 QObject 的类继承,它是因此我不可能统一对待我所有的课程)。

我现在正在尝试使用基于原型的继承。

我必须上课Drawable并且MeshDrawable有相应的包装器Wrapper_DrawableWrapper_MeshDrawable. MeshDrawable继承DrawableWrapper_MeshDrawable继承Wrapper_Drawable

我让脚本引擎 ( m_scriptEngine) 知道这两个类:

如果我没记错的话,文档说脚本引擎会将原型应用于Wrapper_Drawable类型对象,Wrapper_MeshDrawable因为它们在 C++ 中具有继承关系。

我有一个方法Wrapper_Drawable::drawables()可以返回 a 的所有孩子Wrapper_Drawable(实际上是包裹在 中的 Drawable 的孩子Wrapper_Drawable)。作为Drawable一个抽象类,所有的孩子实际上都是MeshDrawables。

因为我希望用户“相信”他使用Drawables 而不是Wrapper_Drawables,所以我声明:

上面声明了 wrapper_drawable_obj 。


我想测试引擎是否识别Wrapper_MeshDrawables,即使它们是在Wrapper_Drawables 数组中声明的。

可悲的是, instanceof 抛出此错误:

如果我尝试这样做curChildren instanceof Number,它会返回 false,所以我猜这个问题与 Wrapper_Drawable 有关,但我无法弄清楚它到底是什么。

预先感谢您的帮助。

编辑 >我添加了 ScriptManager(处理脚本引擎并声明各种类型)、Wrapper_Drawable(只有一些方法,否则我无法发布此消息)和 Wrapper_MeshDrawable 的代码。

我还仔细检查instanceof了 Wrapper_Drawable 对象,用 Number 返回 false,用 Object 返回 true,并用 Drawable 引发上述错误(与名称不同,这是 Wrapper_Drawable 对象)。

所以,有 Wrapper_Drawable 类的代码:

共产党:

MeshDrawable:

共产党:

最后是 ScriptManager(我在其中向脚本引擎声明各种类型):

CPP