npm i -g nrm nrm use taobao
let 不能够被重复声明,而 var 能够node
等效匿名函数react
没有 argumentswebpack
this 指向了函数所在的上下文环境web
函数的返回值npm
let a = () => {}; console.log(a); // undefined, 误认为返回的是表达式 let b = () => ({});console.log(b); // {}
function fn(a,...re){ console.log(re) }; fn(1,2,3) // [2,3]
let human = { id: 0 }; let { id: id1} = human; console.log(id1); // 0, 已经把 id 给了 id1
是个语法糖,看起来更像 OOPgulp
用法:babel
class Animal{ constructor(a, b){ // 传递参数 this.a = a; this.b = b; } add(){ return console.log(this.a + this.b) } } let a = new Animal(1,2) console.log(a) // {a: 1,b: 2} a.add() // 3
继承app
class Human extends Animal{ constructor(name){ super(3,4) // 执行父类的构造函数 this.name = name } } let hu = new Human() console.log(hu.a) // 3
commonJS: require('') / module.exports = {}模块化
ES6: import {} from '' / export {}函数
包管理器,管理安装项目依赖:npm ( install, update, remove, analyse )
任务流工具:Grunt, gulp ( 二者没法支持模块化开发 ), webpack ( 模块打包,代码检查等 )
能够把不少不是 JS 的文件自动编成 JS
babel-core: 核心库,相似一个裸机,只有操做系统,须要装软件才能发挥大做用
plugins: 插件,各类各样的插件,例如:es2015-arrow-functions 编译箭头函数
presets: 预设,会把不少插件打包到一块儿,例如:react/latest
.babelrc: 配置文件,填写 plugins 和 presets
官方网站能够体验:https://babeljs.io
安装: $ npm i -D webpack
项目结构:
|-dist // 打包生成文件存放 |-src |- app.js // 入口文件
代码:
// webpack.config.js const path = require('path') module.exports = { entry: ‘./src/app.js’, // 项目入口文件 output: { filename: 'main.js' // 打包后的文件 path: path.resolve(__dirname, 'dist/assets')// 打包保存到哪里,绝对路径 publicPath: '/assets/' // 未知 } }
执行:$ webpack