【问题标题】:What has changed since "Javascript The Good Parts"? [closed]自“Javascript The Good Parts”以来发生了什么变化? [关闭]
【发布时间】:2014-04-13 06:19:12
【问题描述】:

我终于读完了上面的书,发现它是 08 年出版的。有很多关于“这应该从语言中删除”之类的声明,我想知道从那时起是否遵循了任何建议。在过去的 6 年中,Ecmascript/Javascript 设计者/实施者是否正式驳回了书中的任何观点或采取了行动? JS 的新发展使本书的哪些部分变得无关紧要或更重要?

【问题讨论】:

  • 你能引用这些“应该从语言中删除”的陈述吗?并非我们所有人都有这本书,它会使您的问题不那么广泛。
  • 我认为这是一个很好的问题。我希望它不会因为过于宽泛或基于意见而被关闭。
  • strict 模式从那时起就出现了,它试图清理 Javascript 的一些不好的方面。
  • @NPE 这是一个很好的问题,我通常喜欢这类问题,但我认为它属于“过于宽泛或基于意见”。我觉得 SO 更多的是:“为什么这不起作用”或“为什么这段代码被破坏”......也许他们应该为这样的问题打开一个新的 StackExchange 站点?

标签: javascript language-features


【解决方案1】:

这将是一个巨大的答案。

但他们在这里:

  1. 引入"use strict"Strict Mode

  2. getset 运算符现在允许标识符为数字或字符串

  3. Function.apply() 可以接受任何类似数组的对象作为参数列表,而不仅仅是真正的数组

  4. JSON.parse 中不再接受尾随逗号

  5. 全局对象 NaNInfinityundefined 作为 ECMA5 规范的一部分设为只读

  6. Date 中的 ISO 8601 格式支持

  7. Object 对象添加了 12 个新函数。

  8. Date.toJSON 已添加。

  9. Array.isArray 已添加。

  10. Function.prototype.bind 已添加。

  11. Array.toString() 现在甚至可以在非数组上工作,方法是返回调用其join() 方法(如果可用)或调用其toString() 方法的结果。

  12. Array.reduceArray.reduceRight 在 Javascript 1.8 中引入

  13. 添加Object.getPrototypeOf(),返回指定对象的原型。

  14. 引入了Proxy 对象,它支持创建支持 JavaScript 元编程的对象和函数代理。

  15. String 现在有 trim()trimLeft()trimRight()startsWith() 方法。

除此之外,还发生了一些语法变化。

更新:

.startsWith()Proxy 将在 ES6 中引入,但它们现在只是原型,不应用于生产代码。感谢@OneKitten 的提示!


阅读更多MDN

【讨论】:

  • 你提到的一些内容只会在 ES6 中引入,例如 String.prototype.startsWith 和代理(尽管它们已经在 Firefox 中进行了实验性实现)。同样,无括号函数似乎是一个 Spidermonkey 扩展,而不是由其他浏览器实现的(在 ES6 中我们将获得箭头函数)。
  • @OneKitten,我已经更新了我的答案。谢谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-10
  • 2011-04-27
  • 1970-01-01
  • 1970-01-01
  • 2011-05-23
  • 2013-07-27
  • 1970-01-01
相关资源
最近更新 更多