问题标签 [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 回答
74 浏览

java - 在 Java 中模拟 ActionScript 3.0 / JavaScript DateTime

我希望将一些 DateTime 功能从 ActionScript 3.0 移植到 Java/Android。我目前正在看乔达。在使用此选项之前,我想知道是否实际上有任何符合 ECMA-262 第 3 版合规性的 DateTime 对象的实现?还是有更好的选择(更小/更轻)的解决方案来实现这一目标?

0 投票
1 回答
163 浏览

javascript - ECMA-262 和 ECMA-357 之间有什么语法差异吗?

我正在编写一个基于ECMA-262的 JavaScript 解析器。我很想知道我需要进行多少更改才能使其与ECMA-357兼容。

有任何语法差异吗?

0 投票
3 回答
21132 浏览

javascript - 为什么 JSON 只允许字符串作为键?

为什么 JSON 只允许 astring成为一对的键?为什么不是其他类型,例如null, number, bool, object, array?考虑到 JSON 与 JavaScript 密切相关,我可以从 JavaScript 规范 (ECMA-262) 中得出原因吗?我完全是 JavaScript 的新手,你能帮我指出来吗?

0 投票
4 回答
6859 浏览

javascript - 在严格模式下获取对未知环境中全局对象的引用

在未知主机环境中以 ES5 严格模式获取全局对象的句柄的推荐方法是什么?

ECMAScript 没有提供一种内置方式来引用我所知道的全局对象。如果是这样,这就是我正在寻找的答案。

已知环境中,全局对象通常具有自引用属性。由于全局对象是全局作用域的VO,全局对象的属性是全局变量,所以我们可以使用它们从任何地方获取全局对象的句柄:

  • 在网络浏览器中,我们可以使用windowself

  • 在 node.js 中,我们可以使用global.

但是,并非所有主机环境都如此。据我所知,Windows Script Host 没有提供任何访问全局对象的方法。在 WSH 中获取全局对象的推荐方法似乎是this在不解析为对象的上下文中使用关键字。例如:

这种技术适用于任何主机环境,但不适用于严格模式,因为 undefined不会在严格模式下this引用全局对象:

如果 this 在严格模式代码中进行评估,则 this 值不会被强制转换为对象。null 或 undefined 的 this 值不会转换为全局对象,原始值也不会转换为包装器对象。通过函数调用(包括使用 Function.prototype.apply 和 Function.prototype.call 进行的调用)传递的 this 值不会将传递的 this 值强制传递给对象(10.4.3、11.1.1、15.3.4.3、15.3. 4.4)。

正如预期的那样,以下代码导致undefined


那么,无论严格模式如何,在任何环境中获取全局对象句柄的正确方法是什么?

顺便说一句,我目前的方法是嗅探引用全局对象的全局变量,如下所示:

...然后只需使用global. 我认为这是一个糟糕的解决方案,原因有很多,其中大部分是相当明显的,它并没有解决 WSH 问题。

0 投票
7 回答
18322 浏览

javascript - 有什么方法可以检查是否强制执行严格模式?

无论如何要检查是否强制执行严格模式“使用严格”,我们想为严格模式执行不同的代码,为非严格模式执行其他代码。寻找类似的功能isStrictMode();//boolean

0 投票
1 回答
761 浏览

javascript - Javascript赋值运算符不起作用

log.original_fields 始终为空。为什么?

0 投票
6 回答
361 浏览

javascript - 使用原型而不是在对象本身上声明属性有什么好处吗?

原型用于声明一类对象的属性和方法。使用原型的一个优点是它节省了内存,因为类的所有实例都指向原型的属性和方法,这节省了内存并有效地允许类的所有实例将属性视为静态。

原型用于通过原型链进行继承。

我的问题很简单。当你能做到的时候,为什么还要使用原型:

那正确吗?所以原型的主要目的有三个:

  1. 节省内存
  2. 提供静态属性
  3. 是引用类型从超类继承的唯一方法
0 投票
3 回答
153 浏览

javascript - 编写符合 ECMAScript5 的代码(第 2 部分)

我目前正在学习高级 JavaScript,目的是构建一个符合标准(HTML5、CSS3、ESv5)的库。一路走来,我已经问了几个相关的问题,试图弄清楚从哪里开始,做什么,不做什么,避免什么等。我已经开始阅读 ECMA-262(ECMAScript 版本 5)文档,并且在我开始开发工作之前已经运行了一些测试。

以前的问题:

编写符合 ECMAScript5 的代码

JavaScript、JScript 和 ECMAScript 有什么区别?

在我的研究中,我发现不同的浏览器以不同的方式实现标准,在这方面,它们实现了不同的对象。例如,IE 实现了一个名为 ActiveXObject 的对象,但在 FireFox 中并非如此。所以我写了一个小测试工具来确定浏览器中是否定义了某些东西。

考虑以下测试一些已知对象(包括 jQuery,因为它不是内置的)。

浏览器功能测试工具

同样,我已经到了需要帮助的地步:

问题:

  1. 给定上面的例子,对象和函数有什么区别?

  2. 我是否在 ES/JS 中编写函数或对象?

  3. 为什么 Object 是函数而不是对象?

  4. 是否有内置对象/函数的层次结构?

  5. 可以将内置对象/函数重新定义为完全不同的东西吗?

  6. 可以未定义内置对象/函数吗?

  7. 如果内置对象/函数本身不支持它们,是否可以为其分配新特性?

  8. 如果一个对象是在一个浏览器中定义的,而不是在另一个浏览器中定义的,我该如何弥补这一点?

PS 我不想要与特定实现(JavaScript/JScript)相关的答案,而是与标准(ECMAScript v5)相关的答案。提前致谢!

0 投票
2 回答
1656 浏览

javascript - javascript中的时间切片是如何发生的?

或 ecmascript 但我想知道它实际上是如何发生的更多地取决于确切的实施。

javascript 在技术上是单线程的。

但如果我做类似的事情

如果我这样做有什么不同吗

一种。

或 B。

因为在第二个中,动画将与 cpu 繁重的功能争夺处理时间,因此动画的外观会受到影响,对吗?

那么 Javascript 是在同步代码块的末尾停止执行,还是在任何随机点切断一个块以允许处理另一个异步运行的块?

0 投票
1 回答
80 浏览

javascript - 可以将新关键字添加到 Javascript 中吗?

据我了解,答案是“是的”。但假设这是真的,那怎么可能呢?

它不会违反 WHATWG 的设计原则 #2.1吗?我的意思是,让我们假设关键字foo是作为关键字添加到 ECMA-262 中的。几年前编写和部署的代码不会foo完全破坏吗?

也许我错了,答案是否定的。也就是说,我真的别无选择,只能在这里问,因为谷歌搜索“新的 javascript 关键字”或查询的任何变体不出所料会产生大量关于newjavascript 关键字的废话。