【问题标题】:What's the syntax difference of JavaScript between node.js and browsers?node.js 和浏览器之间的 JavaScript 语法有什么区别?
【发布时间】:2011-09-13 17:09:47
【问题描述】:

浏览器支持 JavaScript,Node.js 也支持它。我想知道它们之间有没有语法上的区别?

【问题讨论】:

  • 严格来说,语法在技术上只是规则标记的形式,并且对于声称是 ECMAScript 的所有内容都应该相同。但是有些人(尤其是那些在编译器技术方面还不够成熟的人)还在“语法”中包含了主要 API 的典型用法(在更高级别上)。你说的是哪一个?

标签: javascript node.js


【解决方案1】:

Node 使用Google V8,实现了ECMAScript standard(链接到非官方注释副本)。

它与浏览器的区别取决于您所谈论的浏览器(和版本)。


例如,Mozilla 浏览器实现了 JavaScript(它是 ECMAScript 的实现和超集)。

JavaScript 包括:

  • for each - in 循环
  • 解构赋值
  • let 表达式
  • 数组推导

...在使用非 ECMAScript 标准语法的其他增强功能中。这些都是 JavaScript 的一部分,但不是 当前 ECMAScript 标准的一部分。

(在列出的 4 项中,最后 3 项是下一个 ECMAScript 版本的提案。)

【讨论】:

  • 更具体地说,它实现了 V8 版本
  • @Raynos:谢谢,我刚刚发现了这个问题。 :)
  • 如果他真的需要 Node.JS 中的 DOM 功能,他可以使用 github.com/tmpvar/jsdom(GH 遇到问题 atm)。
  • 更具体地说,节点 0.4.9-0.4.11 使用 V8 3.1.8.25
  • @patrick_dw 这个区别值得说明,我只是建议提一下 JavaScript 是 mozillas 实现,而不是 ECMAScript 的替代词。
【解决方案2】:

没有。语法完全相同。但是,api 存在差异。标准浏览器 dom 在 node 中不可用,但它在 nodejs.org 有额外的 api。任何语法差异都是由于浏览器的怪癖造成的。

【讨论】:

    【解决方案3】:

    没有。语法完全一样,但是您正在使用它提供的不同环境 - 例如,您没有 DOM 并且有用于文件系统访问和套接字的 API。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-18
      • 2018-04-28
      相关资源
      最近更新 更多