Sublime相关
通过添加 Build System 的方式来使 Sublime Text 3 运行 JS、ES6:
参考文章:如何优雅地使用Sublime Text3
参考书目:《ES6标准入门》阮一峰
摘抄:
- 下载安装配置 NodeJS
- 在 Sublime 选择 Tools->Build System->New Build System...
- 编辑,命名(如 Node.sublime-build)并保存,位置默认
{ "cmd": [ "node", "--use-strict", "--harmony", "$file" ], "selector": "source.js" }
- 在 Sublime 中选择 Tools->Build System->Node,编写完JS文件后保存 Ctrl + B 即可。
- 遇到类似于 SyntaxError: Unexpected token import 的错误,可以使用阮一峰老师写的 ES-Checker 模块检查运行环境对ES6的支持情况,如:
C:\Users\Username>es-checker ECMAScript 6 Feature Detection (v1.3.0) Variables √ let and const √ TDZ error for too-early access of let or const declarations √ Redefinition of const declarations not allowed × destructuring assignments/declarations for arrays and objects × ... operator Data Types √ For...0f loop √ Map, Set, WeakMap, WeakSet √ Symbol √ Symbols cannot be implicitly coerced Number √ Octal (e.g. 0o1 ) and binary (e.g. 0b10 ) literal forms √ Old octal literal invalid now (e.g. 01 ) √ Static functions added to Math (e.g. Math.hypot(), Math.acosh(), Math.imul() ) √ Static functions added to Number (Number.isNaN(), Number.isInteger() ) String √ Methods added to String.prototype (String.prototype.includes(), String.prototype.repeat() ) √ Unicode code-point escape form in string literals (e.g. \u{20BB7} ) √ Unicode code-point escape form in identifier names (e.g. var \u{20BB7} = 42; ) × Unicode code-point escape form in regular expressions (e.g. var regexp = /\u{20BB7}/u; ) × y flag for sticky regular expressions (e.g. /b/y ) √ Template String Literals Function √ arrow function × default function parameter values × destructuring for function parameters × Inferences for function name property for anonymous functions × Tail-call optimization for function calls and recursion Array × Methods added to Array.prototype ([].fill(), [].find(), [].findIndex(), [].entries(), [].keys(), [].values() ) √ Static functions added to Array (Array.from(), Array.of() ) √ TypedArrays like Uint8Array, ArrayBuffer, Int8Array(), Int32Array(), Float64Array() √ Some Array methods (e.g. Int8Array.prototype.slice(), Int8Array.prototype.join(), Int8Array.prototype.forEach() ) added to the TypedArray prototypes × Some Array statics (e.g. Uint32Array.from(), Uint32Array.of() ) added to the TypedArray constructors Object √ __proto__ in object literal definition sets [[Prototype]] link × Static functions added to Object (Object.getOwnSymbolNames(), Object.assign() ) √ Object Literal Computed Property √ Object Literal Property Shorthands × Proxies × Reflect Generator and Promise √ Generator function √ Promises Class √ Class √ super allowed in object methods √ class ABC extends Array { .. } Module × Module export command × Module import command ========================================= Passes 27 feature Dectations Your runtime supports 64% of ECMAScript 6 =========================================