先看下mdn给的优先级表
| 优先级 | 运算类型 | 关联性 | 运算符 |
| 19 | 圆括号 | 无 | (…) |
| 18 | 成员访问 | 从左到右 | … . … |
| 18 | 需要计算的成员访问 | 从左到右 | … [ … ] |
js引擎(把javascript转换为高效优化的代码,基本上都实现了某个版本的ECMAScript,随着ECMAScript的不断发展,javascript引擎也不断改进,之所以有这么多不同的引擎,是因为它们每个都被设计运行在不同的 web 浏览器、headless 浏览器、或者像 Node.js 那样的运行时环境中。
你也许熟悉 web 浏览器,那什么是 headless 浏览器呢?它是一个没有图形用户界面的 web 浏览器。它们在对 web 产品进行自动化测试时十分有用。一个很棒的例子就是 PhantomJS。那 Node.js 又和 JavaScript 引擎有什么关系?Node.js 是一个异步的、事件驱动的框架,让你在服务器端可以使用 JavaScript。既然他们是驱动 JavaScript 的工具,所以它们也是由 JavaScript 引擎驱动。
按照上述关于虚拟机的定义,把 JavaScript 引擎称作进程虚拟机就很好理解了,因为它的唯一的目的就是读取和编译 JavaScript 代码。这并不意味着它只是个简单的引擎。比如,JavaScriptCore 就有六个“构建模块”可以分析、解释、优化、垃圾回收 JavaScript 代码。
js解析过程
待补充…