问题标签 [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.

0 投票
4 回答
1491 浏览

javascript - Ecma-262 (EcmaScript 5) 将如何帮助您?

EcmaScript 第五版或Ecma-262已发布,其中包含对语言的一些更改。新版本中的哪些功能将帮助您编写更好的代码?

0 投票
2 回答
1056 浏览

javascript - 哪种 JavaScript OOP 设计模式最能利用(新的)ECMAScript 5 特性?

ECMAScript 5 现在处于最终草案中,包括与对象和原型相关的新功能。在围绕 SO 和 Google 寻找 OOP 设计模式时,我发现在 JavaScript 中有很多不同的“做 OOP”的方式(但是你可以定义 OOP,从尝试模拟经典 OOP 到简单地尝试减少命名空间污染) .

与 ECMAScript 5 引领 JavaScript 世界的方向相比,哪种设计模式最具前瞻性?它的主要优势是什么?其中哪些是不可能实现的或以前无法实现的?

0 投票
4 回答
7411 浏览

javascript - 哪些 (javascript) 环境支持 ECMAscript 5 严格模式?(又名“使用严格”)

在我撰写本文时, ECMAScript 5处于最终草案中;这是由于包含一个严格模式,它将阻止您分配给全局对象、使用 eval 和其他限制。(John Resig 的文章是一个很好的介绍。)

这种神奇的理智保存模式是通过在文件(或函数)的顶部包含字符串“use strict”来触发的。但是,在旧环境中,“use strict”是无操作的。如果您添加“使用严格”并且不在严格的环境中对其进行测试,您可能会留下一个不严格的代码的定时炸弹,当它真正遇到严格的环境时会中断。

哪些环境实际上尊重“使用严格”?

0 投票
19 回答
321936 浏览

javascript - var 关键字的用途是什么,我应该什么时候使用它(或省略它)?

注意:这个问题是从 ECMAScript 版本 3 或 5 的角度提出的。随着 ECMAScript 6 版本中新功能的引入,答案可能会变得过时。

JavaScript中关键字的作用到底是var什么,两者有什么区别

?

你什么时候会使用其中任何一个,为什么/它做什么?

0 投票
4 回答
1423 浏览

javascript - 是否有为旧版本实现新的 Javascript/Ecmascript 5 方法的库?

尽管Ecmascript 5引入了一些全新的特性,但它还添加了一些新方法(绑定、修剪、映射等),这些方法在当前版本中应该完全可以实现(尽管速度较慢)。是否存在实现这些向后兼容功能的库(仅此而已,不包括 Prototype 等)

0 投票
1 回答
242 浏览

javascript - ECMAScript 5 规范中可能存在拼写错误?

有谁知道为什么在ECMA-262 第 5 版规范的第 7.6 节末尾,非终结符UnicodeLetterUnicodeCombiningMarkUnicodeDigitUnicodeconnectorPunctuationUnicodeEscapeSequence后面没有两个冒号?

从第 5.1.6 节开始:

非终结符以斜体显示。非终结符的定义是通过定义的非终结符的名称后跟一个或多个冒号来引入的。(冒号数表示产生式属于哪个语法。)

由于词汇产生的区别在于有两个冒号,并且这是在“词汇约定”下,我假设它们的意思是把冒号放进去。这听起来对吗?

只要确保这些确实是非终结符并且它们确实是词汇语法的一部分。

编辑

我注意到有人投票结束了这个。只是为了说明为什么这是与编程相关的,它与任何想要实现 ECMAScript 解释器的人相关。

0 投票
2 回答
893 浏览

javascript - 为什么 EcmaScript 5 严格模式会如此费力地限制标识符 `eval`

根据规范(附件 C),严格模式代码几乎不能做任何可能为任何标识符分配 name 的事情 eval。我可以理解有人可能想要限制使用实际eval功能,但我看不出限制使用名称的目的是什么?

0 投票
1 回答
11430 浏览

javascript - EcmaScript 5 浏览器实现

所以 Safari 和 Chrome 已经开始在他们的测试版中实现一些 ES5 的东西。例如 Object.create 就在其中。

你们中有人知道是否有一个网站可以显示浏览器的进度吗?ATM 我需要使用 Object.freeze,并且想看看哪些浏览器(如果有的话)支持它。

0 投票
4 回答
8353 浏览

javascript - 在 ECMAScript5 中,“use strict”的范围是什么?

ECMAScript5 中的严格模式编译指示有什么范围?

我想这样做(主要是因为 JSLint 不会抱怨):

但我不确定这是否会破坏其他代码。我知道我可以做到这一点,这会将编译指示作用于函数......

但是 JSLint 抱怨它(当启用“严格”JSLint 选项时),因为它认为您在启用“使用严格”之前正在执行代码。

这是我的问题。如果我有 fileA.js:

和fileB.js:

然后以相同的顺序将它们包含在我的 html 页面中,编译指示是否会被限定为文件,或者编译指示是否会溢出到 fileB 中,从而阻止 eval 执行?

0 投票
3 回答
3486 浏览

javascript - 改进简单的 JavaScript 继承

John Resig(以 jQuery 闻名)提供了Simple JavaScript Inheritance的简洁实现。他的方法激发了我进一步改进事物的尝试。我重写了 Resig 的原始Class.extend函数,使其具有以下优点:

  • 性能——类定义、对象构造和基类方法调用期间的开销更少

  • 灵活性——针对较新的兼容 ECMAScript 5 的浏览器(例如 Chrome)进行了优化,但为较旧的浏览器(例如 IE6)提供了等效的“shim”

  • 兼容性——在严格模式下验证并提供更好的工具兼容性(例如 VSDoc/JSDoc 注释、Visual Studio IntelliSense 等)

  • 简单——你不必成为“忍者”也能理解源代码(如果你失去了 ECMAScript 5 的特性,那就更简单了)

  • 鲁棒性——通过更多“极端情况”单元测试(例如在 IE 中覆盖 toString)

因为它看起来好得令人难以置信,所以我想确保我的逻辑没有任何基本缺陷或错误,并看看是否有人可以提出改进建议或反驳代码。有了这个,我介绍了这个classify功能:

constructor除了构造函数名称( vs. init)和基类方法调用的语法外,用法几乎与 Resig 相同。

这是我所有通过的 QUnit 测试:

有人认为我的方法与 John Resig 的原始方法有什么问题吗?欢迎提出建议和反馈!

注意:自从我最初发布此问题以来,上述代码已进行了重大修改。以上代表最新版本。要了解它是如何演变的,请查看修订历史。