问题标签 [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.
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 最新标准化的计划?
javascript - 通过带有原型的对象的 ECMAScript 关联数组为空?
我看到很多人这样做
我的问题不是.hasOwnProperty
每次您希望将 anObject
用作哈希时都进行测试,为什么不直接在对象上设置.__proto__
to呢?null
†</p>
我注意到这__proto__
是非标准的。但这仍然没有回答这个问题......
var foo = Object.create(null); Object.getPrototypeOf(foo);
这不可能是一个原始问题,但我找不到任何关于更改__proto__
为null
以消除必须检查继承的缺点?这种方法有什么问题,似乎使代码更快(不必检查 的属性Object
)和更清洁?
†.prototype
如果您打算将其作为未来的孩子,还有该财产。
javascript - JavaScript 对象属性查找 - 语法重要吗?
这是一个关于 JavaScript (ECMAScript) 语言的基本问题,所以如果它是重复的,我提前道歉(稍微搜索并没有揭示我的确切问题)。
在 ECMAScript 中,我们可以使用两种基本语法形式来获取/设置对象的属性,它们似乎具有完全相同的效果。由于我不太了解,我将它们称为“属性”和“关联数组”符号:
这两种符号之间有什么真正的区别吗?显然,关联数组表示法允许我们在对象上查找动态生成的键(并强制将其参数转换为字符串),而属性表示法使用文字,但这是唯一的区别吗?
javascript - JavaScript 中的激活和变量对象?
术语“激活对象”只是“变量对象”的另一个名称,还是它们之间实际上有任何区别?我一直在阅读一些关于如何在执行上下文中形成变量范围的 JavaScript 文章,从我的角度来看,似乎在大多数文章中它们可以互换使用这两个术语。
java - Java和ECMA-262(AS、JS)中正则表达式的区别
我需要将 Java 正则表达式转换为 Actionscript 正则表达式。
显然没有任何预制转换器,所以我正在尝试自己编写一个。有没有列出所有差异的资源?
我知道regular-expressions.info,但那里似乎没有一个全面的差异列表。
谢谢
heroku - Gemfile.lock 未签入 - Heroku × 45807
得到与(7)相同的问题,并尝试了所有可能的答案,但仍然没有取得任何进展。我希望你能有所帮助(请记住我是新手)。这里是问题的描述@hand: Counting objects: 7, done。Delta 压缩最多使用 4 个线程。压缩对象:100% (4/4),完成。写入对象:100% (4/4),403 字节,完成。总计 4(增量 3),重复使用 0(增量 0)
谢谢
javascript - Javascript 中保留字的使用
在Javascript中有各种不能在里面使用的保留字Identifiers
;其中一些实际上是为将来使用而保留的。为了澄清一点, anIdentifier
是一个Identifier Name
但不是保留字。标识符名称的确切语法在这里不相关。
但是,根据此处的最后一段,似乎在某些地方使用 any 是有效的Identifier Name
,即使它是保留字。文章提到有效
虽然我很清楚第二种形式是合法的,但我一直认为第一种和第三种不合法。
事实上,这个资源表示
作为无效代码。
是否有一些地方保留字实际上是有效的?
作为一个动机,我正在编写一个 API,在其中传递表单的对象是有意义的
但我不想强迫用户在in
.
javascript - 是否有与环境无关的方法来检测 Javascript 主机对象?
我正在编写一个 Javascript 堆栈跟踪库。库需要检测特定对象或函数是由程序员创建的,还是作为环境的一部分存在的(包括内置对象)。宿主对象由于其不可预测的行为而变得有点问题,所以我正在采用一种与环境无关的方法来确定 Javascript 中的特定对象是否是宿主对象(参见ECMAScript 3 - 4.3.8)。但是,区分宿主对象与本机对象和原始值对于其他项目中的程序员很有用,特别是在无浏览器环境中,所以我想关注这一点,而不是宿主对象在我的库中引起的问题或区分程序员- 创建的对象。
到目前为止,我只能提出依赖于运行 javascript 代码的环境的解决方案。例如:
我注意到 jQuery 自己的isPlainObject()方法也依赖于环境,而且逻辑相当复杂。
也许这是因为这就是拥有宿主对象的野兽的本质(因为它们的行为是由环境定义的),但我想进一步挖掘一下,看看这是否可能,并且想知道是否有人遇到过这个特殊问题之前并准备好解决方案。
所以。有人知道一个简单的独立于平台的解决方案来测试主机对象吗?如果它在 Node 或 Rhino 等无浏览器环境中运行,那就更好了。
可能的方法(可能不起作用):
- 考虑到它们的行为没有规范,测试宿主对象的特性似乎是一个失败的原因,但是测试对象是否是 ES3 规范的一部分可能是可能的。
- 考虑到它的定义非常明确,我尝试过使用
Object.prototype.toString()
,但结果尚无定论,因为某些环境(即 IE)选择为本机对象和主机对象返回相同的值。 - 可以
constructor
通过通过原型链检查对象的最终是否真的是instanceof Function
.
c++ - 具有自定义类的 QtScript instanceof 引发与原型相关的错误
我有一个 Qt 项目,它使用 QtScript 模块使我的应用程序的某些组件可编写脚本。
在多次尝试使现有类在 QtScript 中直接可用之后,我选择使用继承 QObject 和 QScriptable 的包装类(主要是因为我有一些非 qobject 派生类被其他继承 QObject 的类继承,它是因此我不可能统一对待我所有的课程)。
我现在正在尝试使用基于原型的继承。
我必须上课Drawable
并且MeshDrawable
有相应的包装器Wrapper_Drawable
和Wrapper_MeshDrawable
. MeshDrawable
继承Drawable
和Wrapper_MeshDrawable
继承Wrapper_Drawable
。
我让脚本引擎 ( m_scriptEngine
) 知道这两个类:
如果我没记错的话,文档说脚本引擎会将原型应用于Wrapper_Drawable
类型对象,Wrapper_MeshDrawable
因为它们在 C++ 中具有继承关系。
我有一个方法Wrapper_Drawable::drawables()
可以返回 a 的所有孩子Wrapper_Drawable
(实际上是包裹在 中的 Drawable 的孩子Wrapper_Drawable
)。作为Drawable
一个抽象类,所有的孩子实际上都是MeshDrawable
s。
因为我希望用户“相信”他使用Drawable
s 而不是Wrapper_Drawable
s,所以我声明:
上面声明了 wrapper_drawable_obj 。
我想测试引擎是否识别Wrapper_MeshDrawable
s,即使它们是在Wrapper_Drawable
s 数组中声明的。
可悲的是, 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