问题标签 [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 - EcmaScript 5 浏览器实现
所以 Safari 和 Chrome 已经开始在他们的测试版中实现一些 ES5 的东西。例如 Object.create 就在其中。
你们中有人知道是否有一个网站可以显示浏览器的进度吗?ATM 我需要使用 Object.freeze,并且想看看哪些浏览器(如果有的话)支持它。
javascript - 为什么 ECMAScript 第 4 版被彻底废弃?
我一直在寻找有关废弃的 ECMAScript 4th Edition 的一些信息,但没有取得多大成功,即使在 SO 上也是如此。我知道 Mozilla 的 JavaScript 1.7 实现了第 4 版中提供的许多(全部?)新功能,我想我记得 John Resig 的一篇不错的帖子,但我现在似乎无法在他的博客上找到它。
特别是,我想知道为什么它被完全废弃,取而代之的是 ECMA-262 第 5 版,以及为什么它没有得到改进。其中一些功能非常酷,例如生成器、迭代器、let、新赋值运算符和(我特别喜欢的)解构赋值。
我知道所有这些特定功能只会在具有过时 ECMAScript 实现的浏览器中引发错误,但是为什么不包括它们,因为有一天这些实现会少之又少?还有其他原因吗?我们是否可能会看到一些废弃的功能在未来的版本中重新出现,或者供应商是否害怕破坏兼容性,以至于我们可能永远不会看到对标准的这种改进?
顺便说一句,很高兴了解有关此事的一些意见,您是否对看到从第 5 版中删除的某些功能感到恼火,或者您认为这样更好?是否值得玩转 ECMAScript 4 的实现?
javascript - 在 ECMAScript5 中,“use strict”的范围是什么?
ECMAScript5 中的严格模式编译指示有什么范围?
我想这样做(主要是因为 JSLint 不会抱怨):
但我不确定这是否会破坏其他代码。我知道我可以做到这一点,这会将编译指示作用于函数......
但是 JSLint 抱怨它(当启用“严格”JSLint 选项时),因为它认为您在启用“使用严格”之前正在执行代码。
这是我的问题。如果我有 fileA.js:
和fileB.js:
然后以相同的顺序将它们包含在我的 html 页面中,编译指示是否会被限定为文件,或者编译指示是否会溢出到 fileB 中,从而阻止 eval 执行?
javascript - 为什么命名空间从 ECMAScript 考虑中移除?
命名空间曾经是 ECMAScript(旧的 ECMAScript 4)的考虑因素,但后来被取消了。正如 Brendan Eich 在此消息中所说:
ES4 中命名空间的用例之一是早期绑定(使用内部命名空间),无论是为了性能还是为了程序员的理解——运行时名称绑定不可能与任何早期绑定不一致。但是在任何动态代码加载场景(如 Web)中的早期绑定都需要优先级或保留机制,以避免早期与晚期绑定冲突。
另外,正如一些 JS 实现者所关注的那样,多个开放
的命名空间会增加运行时成本,除非实现工作
更加困难。出于这些原因,命名空间和早期绑定(如之前的包
,今年四月)必须取消。
但我不确定我是否理解所有这些。究竟什么是优先级或保留机制,为什么需要其中任何一个?此外,早期绑定和命名空间必须齐头并进吗?出于某种原因,我无法解决所涉及的问题。任何人都可以尝试更充实的解释吗?
另外,为什么命名空间会带来运行时成本?在我看来,我不禁看到命名空间和使用闭包的函数在概念上几乎没有区别。例如,Yahoo 和 Google 都有 YAHOO 和 google 对象,它们“行为类似于”命名空间,因为它们在单个访问点中包含所有公共和私有变量、函数和对象。那么,为什么命名空间在实现上会有如此显着的不同呢?也许我只是对命名空间的确切含义有一个误解。
为了赏金,我想知道两件事:
- 命名空间是否需要早期绑定?
- 命名空间实现与具有私有成员的对象有何不同?
javascript - JavaScript 类型
根据http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf,JavaScript 有 6 种类型:undefined
、null
、boolean
、string
和.number
object
问题一:
为什么类型是 nullobject
而不是null
?
问题2:
函数呢?
变量f
的类型为function
. 为什么规范中没有将其指定为单独的类型?
谢谢,
java - 将 Ecmascript (Java,javascript,Actionscript) 知识翻译成 Objective C
Objective C 的新手,并试图将我所知道的概念和语法从基于 ecmascript 的语言翻译成 Objective C。
将 ObjectiveC 中的 .h 头文件视为 Actionscript 中的接口是否合适?
让我们在 Objective C 中使用以下代码示例,它调用包含 2 个参数的方法
在 Actionscript(或 javascript)中,这与在“myTextObject”上调用 2 个访问器方法相同吗?IE
javascript - 与 ECMAScript 语言规范函数调用部分混淆
我正在阅读 ECMAScript 语言规范函数调用部分
有人可以为我改写或详细解释以下句子吗?
产生式 CallExpression : MemberExpression Arguments 的评估如下:
- 评估成员表达式。
让我们以这段代码为例。
以上面的代码为例,产生式CallExpression是什么意思?在这种情况下,什么是 MemberExpression,john.greet?
谢谢!
c# - 为什么 C# 和 ECMAScript 规范之间的可读性存在很大差异?
我一直在研究 ECMAScript 规范,发现它非常难以阅读和理解。我经常不得不回溯以将概念留在脑海中。在阅读 C# 规范时,我能够研究语言的组成部分,而无需不断地在文档中移动。
javascript - 从 ObjectiveC 到 ECMAscript
阅读关于 Objective C 的优秀 Apress 书籍。为了帮助我理解,我尝试在 Java/Action-script 中重新编码任何 Ojective C 代码示例。ObjC 中方法调用的一种常见结构让我有点困惑。
(在 ECMAscript 中)这是否与 1 个具有多个参数的方法调用或 2 个方法调用最相似,每个方法调用只有一个参数?
c# - 我需要帮助翻译这部分 ECMAScript 语法吗?
很长一段时间以来,我一直致力于自己的 ECMAScript 实现。我基本上都是手工完成的,以帮助深入了解该过程。反复尝试分析和理解这部分语法都失败了,所以我一直在研究项目的其他部分,但现在我要研究对象文字了,所以我真的需要完善我的句法分析器。任何人都可以用语言解析器新手可以理解的术语来表达吗?
我最大的困惑来源如下:
新成员表达式参数
这应该是一个成员表达式,但这似乎与以下内容冲突:
新表达式是成员表达式还是左侧表达式?老实说,我在为具体语法布置正确的 C# 类时遇到了麻烦。
这是我一直在使用的课程设计,但随着我继续研究规范,我的疑虑不会消失。
根据安迪的回答,我想出了一个有意义的新设计。