前端知识整理--ES6

es6

(1)  模块化:

export default {  a: 100 }

export function fn1(){  } 

export function fn2(){ }

import util from './util1.js'

import { fn1, fn2 } from './util2.js'

(2) 使用babel:

npm install babel-core babel-preset-es2015 babel-preset-latest

创建.babelrc文件

npm intall -g babel-cli  安装babel的命令行工具

babel --version

babel myfile.js  直接输出到终端

babel myfile.js -o upfile.js 将结果写到新的文件

babel src -d build: src目录对应build目录的输出

babel是插件机制,只安装babel-core不能将es5进行转换,必须要按照相应的插件

一个插件只能做一件事情,可以使用预设(一堆插件)

npm install babel-preset-es2015

在.babelrc中写 { "presets":["es2015"],"plugins":[]}

babel-preset-latest: 是一个特殊的presets,总是包括最新的编译插件

babel-preset-env: 只编译所编译环境所缺少的代码,比较推荐

如使用webpack,需要安装babel-loader

module: {
  loaders: [{
    loader: 'babel',
    test: /\.jsx?$/,
    include: path.join(__dirname, 'src'),
    query: {
      plugins: ['transform-runtime'],
      presets: [
        ["env", {
          "targets": {
            "chrome": 52
          },
          "modules": false,
          "loose": true
        }],
        'stage-2',
        'react'
      ],
    }
  }]
}

如使用gulp,需要安装gulp-babel

babel几乎可以编译所有的新的js语法,但是对于API来说并非如此,新增的对象如promise和Array.find()等方法,并没有转换。

这时需要用到babel-polyfill或者babel-runtime

(3) promise

new Promise实例,而且要return

new Promise时要传入函数,函数有resolve和reject两个参数

成功时执行resolve(),失败时执行reject()

then监听结果

function loadImg(src){
  const promise=new     Promise(function(resolve,reject){
    var img = document.createElement('img')
    img.οnlοad=function(){
      resolve(img)
    }
    img.οnerrοr=function(){
      reject()
    }
  })
  return promise
}

var src=''
var result=loadImg(src)
result.then(function(img){
  console.log(img.width)
},function(){
  console.log('failed')
})

(4)其他

let/const:

多行字符串/模板变量:

const html = `<div>
                <p>${name}</p>
              </div>`

解构赋值

const obj={a:10, b:20,c:40}
const {a,c}=obj
console.log(a)  //10
console.log(c)  //40

函数默认参数

function(a, b=0){}

可以用来代替:

function(a,b){

  if(b==null){  

     b=0

}

}


箭头函数


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值