淘先锋技术网

首页 1 2 3 4 5 6 7

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版本-》2015年 发布

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的转码,会产生什么问题

答:会有性能问题。建议生产环境下需要将已转码的文件进行注入