问题标签 [ecmascript-5]
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 - 全方位的 JavaScript Date 对象?
我正在阅读有关各种实现中 JavaScript 日期对象的混合/最大值的信息。
Mozilla 文档说 JavaScript 支持 UNIX 时代的“ -100,000,000 天到 +100,000,000 天”。如果我的数学是正确的,这应该是两边的 8.64e15 毫秒。
微软 MSDN 说 JScript 支持 UNIX 时代的“大约 285,616 年”。
Google v8 的单元测试表明距纪元+/-1e8 天。
ECMAScript 5.1规定得更清楚一点:
自 1970 年 1 月 1 日 UTC 以来,时间在 ECMAScript 中以毫秒为单位进行测量。在时间值中,闰秒被忽略。假设每天正好有 86,400,000 毫秒。ECMAScript Number 值可以表示从 –9,007,199,254,740,992 到 9,007,199,254,740,992 的所有整数;该范围足以测量从 1970 年 1 月 1 日 UTC 起大约 285,616 年(向前或向后)内的任何时刻的毫秒精度。
ECMAScript Date 对象支持的实际时间范围略小:相对于 1970 年 1 月 1 日 UTC 开始时的午夜,精确地测量 –100,000,000 天到 100,000,000 天。这为 1970 年 1 月 1 日 UTC 的任一侧提供了 8,640,000,000,000,000 毫秒的范围
我很好奇,有没有人知道实际上不支持这个“距纪元 +/-1e8 天”范围的实现?
javascript - JavaScript 返回值
我正在学习 JavaScript 作为我的第一语言,就函数而言,我在这里得到了这个想法,但我不明白最后返回值的意义是什么。
它是干什么用的?
javascript - 是否有规范化 ECMAScript 5 的 JavaScript 项目
是否有 JavaScript 项目专注于普通浏览器中的原生规范化 ECMAScript 5?
作为参考,规范化这样的表:http: //kangax.github.com/es5-compat-table/
我知道添加一些 ES5 功能的包装器,如果它们存在,则回退到本机实现。但是我还没有看到一个只关注原生实现和规范化的项目。有什么想法吗?
javascript - Object.keys() 复杂性?
任何人都知道 ECMAScript5 的 Object.keys() 在常见实现中的时间复杂度吗?是O(n)
为了n
钥匙吗?假设哈希实现,时间是否与哈希表的大小成正比?
我正在寻找语言实现者的保证或一些现实世界的基准测试。
javascript - 生成 JSON 以转换为 ECMAScript 5 Ready Consumption
在我的客户端/服务器 Web 应用程序中,我正在生成大型 JSON 字符串(使用 C# Web 服务中的 JSON.NET JToken 类),我通过 AJAX Get 请求将其传递给客户端。
我希望能够以 ES5 样式定义某些属性:prop: { value: '1', enumerable: false, writable: true }
,但有一个障碍。
首先,JSON.parse() 简单地将“可枚举”和“可写”属性解释为通用 JavaScript 对象上的通用属性。这可能是预期的和可取的行为,但是对于新的 ES5 属性属性,“解析”JSON 的可比方法是什么?
其次, Object.create() 有效,但它有一些限制。例如,
当然,这里的问题是"true" !== true
,它指示Object.create()
返回与 相同的对象JSON.parse()
。此外,无论是因为对特定道具属性的真实评估,还是因为我试图创建特别大的对象,Object.create()
似乎都非常脆弱。
有没有更好的方法以尊重 ES5 prop 属性的方式“解析”这些对象?
javascript - Math.cos(Math.PI/2) 在 JavaScript & AS3 中返回 6.123031769111886e-17?
如果我理解正确,JavaScript 和 ActionScript 3 都适用于弧度。
因此,以下代码的预期输出将是:
这在 Firefox、Chrome、Safari 和 Flash Professional CS5.5 中的行为相同。我正在使用 Mac OS X 10.7.2。
测试:
javascript - 什么是 ECMAScript “本机对象”?
根据ECMA-262,原生对象
ECMAScript 实现中的对象,其语义完全由本规范定义,而不是由宿主环境定义
内置对象定义为
由 ECMAScript 实现提供的对象,独立于宿主环境,在 ECMAScript 程序执行开始时出现。
附注
本规范中定义了标准内置对象,ECMAScript 实现可以指定和定义其他对象。 每个内置对象都是原生对象。
如果原生对象完全由 ECMA-262 规范而不是宿主环境定义,并且 ECMAScript 实现可以指定和定义新的内置对象,那么这些新的内置对象怎么可能是原生对象而不是原生对象?完全由 ECMA-262 规范定义?
我错过了什么?
javascript - 对象和数组的 ECMAScript5 深拷贝
我希望找到一个示例代码来对 ECMAScript5 中的对象进行深度复制。
复制应该可以克隆
嵌套对象
嵌套数组
数组中的嵌套对象(单独克隆每个数组项)
注意:jQuery.extend() 似乎无法处理案例 3)。另外,我希望在干净的 ECMAScript 中做到这一点。快速谷歌搜索并没有带来任何有价值的实现。
javascript - 主要浏览器中缺少对 ECMAScript/JavaScript 支持的区域列表?
是否有人知道主要浏览器(我说的是 IE7+、Firefox、Chrome、Safari 和 Opera)中缺少对 ECMAScript/JavaScript 支持的明确列表。
显然,我们在代码中进行了特征检测,但我想要一个我们需要在理想情况下执行检测的特征列表。
javascript - 针对 ECMAScript5 新功能的 Polyfill 或变通方法?
我想用现在和将来都可以使用的新ECMAScript5 功能编写我的 JS 代码。
由于并非所有浏览器都支持所有功能(尤其是 IE),例如Object.create
、Array.isArray
或JSON
.
我知道一些解决方法,例如json2.js
用于归档JSON
支持。我想了解其他功能的更多 polyfill 或解决方法。