使用 Cocos Creator 开发游戏,2.* 的版本支持 JavaScript 和 TypeScript,一般情况下,建议使用 TypeScript。
-
TypeScript 是 JavaScript 的超集,任何 JavaScript 文件,通过将
.js
后缀更改为.ts
后缀,再做一些修改,就可以在 Creator 中以 TypeScript 的方式使用了。 -
任何 TypeScript,都可以转为 JavaScript 的形式。
基于以上两个点,可以认为 TypeScript 和 JavaScript 是 等价的
。
Cocos Creator 中 JavaScript 标准支持
Creator 官方 2.4 的手册 是这样描述的:
Creator 使用的是标准的 JavaScript,JavaScript 目前常见的标准是几乎所有平台都支持的 ES5,如果你还想要使用更高版本的特性,需要先确认支持情况:
- 运行时部分需要考虑目标平台是否支持,幸福的是,Creator 集成了
babel
编译器,能够自动转译项目里除了插件以外的所有 JavaScript 脚本。这步操作会将一部分常用的 ES2015(ES6) 特性翻译为原生的 ES5,这样开发者就不用担心跨平台的兼容性。ES2015 入门教程及 Creator 支持的特性列表请参考 Learn ES2015(在这份列表中,标记为“Support via polyfill”的部分暂不支持)。转译是静态操作,不影响运行时效率,不影响源文件。
- 编辑器部分支持到常用的 ES2015。
具体支持程度取决于 Creator 采用的 Node.js 引擎,截至 Creator 1.1,支持到了 Node.js 5.1.1(详情)。
在 Creator 的控制台中输入 process.versions.node 可以显示当前的 Node.js 版本号。
看完描述后,我们分几个步骤来阐述:
1. 归纳
- Creator 完全支持 ES5;
- Creator 通过 babel 部分支持 ES2015(ES6) 特性,但不转译插件,转译过程是静态的;
- 不同版本的 Creator 支持的特性不同,取决于 Creator 使用的 Node.js 引擎;
2. 提出疑问
- 什么是 ES5 规范?
- 什么是 ES6 规范,它和 ES5 相比,有什么变化?
- ES2015 特性有哪些,它和 ES6 有什么关系?
- 什么是 babel 编译器?Support via polyfill 又是什么?
- “在 Creator 的控制台中输入 process.versions.node 可以显示当前的 Node.js 版本号”,具体是如何操作的?
- 不同版本 Node.js 支持的特性如何查看?
上述中的部分问题,通过文章的形式进行解答,将附上超链接。
其中☑️的内容,将在这篇文章中解惑。
3. 解惑
3.1 “在 Creator 的控制台中输入 process.versions.node 可以显示当前的 Node.js 版本号”,具体是如何操作的?
开始的时候,我以为所谓的 Creator 的控制台是 面板 > 控制台
。
实际上官方描述的不是这个控制台。而是 Creator 编辑器的控制台。
什么意思?我们都知道,浏览器有一个开发者模式,Mac 平台通过按 cmd + option + i
(windows 通过 F12
)的形式,能够调出开发者工具,里面有一个控制台(console)。同样的,Creator 编辑器本质也是个浏览器,也是以这样的方式调出控制台。
于是在 Creator 编辑器中,通过快捷键 cmd + option + i
调出控制台,输入 process.version
或 process.version.node
可以得到 2.4 版本支持的 Node.js 版本:12.0.0
。
3.2 不同版本 Node.js 支持的特性如何查看?
在 Node.js ES2015 Support 上,我们可以清晰的看到各个版本的 Node.js 支持的特性。
可以看到 12.0.0 版本的基本上是支持了所有的 ES2015 特性。
总结
我们只有了解了 Creator 引擎不同版本支持的 JavaScript 标准,才知道引擎支持哪些特性,才能够了解引擎的能力范围。