1、ECMAScript和JavaScript的关系
答:ECMAScript是JavaScript的标准,JavaScript是ECMAScript的具体实现
2、ECMAScript标准为什么不取名JavaScript?
答:一个是因为JavaScript已经被Netspace公司用作了商标,二是为了体现这个语言的制定者是ECMA组织而非Netspace, 便于保持语言的开放性和中立性。
3、ES6和ECMAScript2015有什么关系?
答:ES6是ECMAScript5.1版本的下一个版本;ES6是一个泛指,包含了ES2015 ES2016 ES2017等等; ES2015是2015年6月发布的ECMAScript6.0版本;ES2016是2016年6月发布的ECMAScript6.1版本;ES2017 ES2018等依次类推。
4、ECMAScript的历史
答:1.0版本-》1997年 发布 2.0版本-》1998年 发布 3.0版本-》1999年 发布 4.0版本-》2007年草案,2008年中止 5.0版本-》2009年 发布 5.1版本-》2011年 发布 6.0版本-》2005年 发布
5、如何查看本机对ES6的支持程度
答:安装:npm install -g es-checker 使用命令:es-checker
6、Babel转码器作用?
答:是一个比较广泛使用的ES6的转码器,可以将ES6转为ES5代码,从而可以使得代码能在老版本的浏览器中执行。
7、Babel的配置文件是什么?
答:.babelrc文件,存在于项目的根目录中,使用Babel的第一步就是配置这个文件(转码规则和插件) 最新转码规则:npm install --save-dev @babel/@preset-env react转码规则:npm install --save-dev @babel/preset-react .babelrc 文件 { “presets”: [“@babel/env”, “@babel/react”], “plugins”: [] }
8、Babel的命令行转码 @babel/cli 怎么用?
答:安装:npm install --save-dev @babel/cli 转码js文件方式1:npx babel xxx.js 转码js文件方式2:npx babel xxx.js --out-file aaa.js 转码js文件方式3:npx babel xxx.js -o aaa.js 转码整个目录方式1:npx babel src --out-dir lib 转码整个目录方式2: npx babel src -d lib 转码整个目录,并生成source map 文件: npx babel src -d lib -s
9、Babel的babel-node转码怎么用?
答:安装:npm install --save-dev @babel/node(注意:如果安装了babel-cli,那么便自带了babel-node) REPL环境中转码ES6代码:npx babel-node (x => x*2)(1) //输出结果为 2 babel-node运行js文件:npx babel-node xxx.js
10、Babel的@babel/register模块自动对require命令的文件进行转码ES6代码,它是实时转码,只适合在开发环境中使用
答:安装:npm install --save-dev @babel/register index.js文件中使用,只对require引入的后缀为.js .jsx .es .es6的文件进行转码(如:es6-test.js)进行转码,不对当前文件(index.js)进行转码: require(‘@babel/register’) // 第一步 require(‘es6-test.js’) // 第二步:在@babel/register后引入需要转码的文件
11、为什么有了Babel还需要polify
答:Babel只会转新的JavaScript语法,不会转换新的API(Map Set Array.from等)和定义在全局对象上的一些方法(Object.assign)
12、Babel的babel-core模块
答:如果要使用Babel的API进行转码,那么可以安装babel-core: npm install babel-core --save 在文件中使用:require(‘babel-core’)
13、当js文件中有新的ES6的API,那么需要添加什么polify
答:在文件中添加Babel的core-js和regenerator-runtime 先安装:npm install --save-dev core-js regenerator-runtime/runtime 再文件中添加:import ‘core-js’; import ‘regenerator-runtime/runtime’ // 可以使用 require代替import,殊途同归
14、网页环境下实时进行 ES6的转码,会产生什么问题
答:会有性能问题。建议生产环境下需要将已转码的文件进行注入
|