为了账号安全,请及时绑定邮箱和手机立即绑定

迟来的ES6,且只说精髓

标签:
WebApp

700

ES6_Image.png

不废话,程序员时间宝贵,精髓拿去不谢

说实话,ES6(ECMAScript2015)刚出现是有点抵触的。由于笔者对swift有了解,发现ES6 新特效和swift很像 。它包含了一些很棒的新特性,可以更加方便的实现很多复杂的操作,提高开发人员的效率。

当然你写ES6,由于浏览器的限制,需要使用babel 或其他的编译器转换成ES5

<br />

1.Default Parameters(默认参数) in ES6 (和swift 里面一样的)
var cat = function (age, color, type) {  var age = age || 2;  var color = color || 'red';  var type = type || 'bosimao';  console.log(age,color,type)  //2 "red" "bosimao"}var _cat = function(age=2,color='_red',type='_bosimao'){    console.log(age,color,type)    //2 "_red" "_bosimao"}
cat()
_cat()
2.Template Literals(模板对象) in ES6(swift 字符串插值)
//字符串插值 , 用于字符串相连var a = '代表A';var b = '代表B';var _all = '我既' + a + '也' + b;var all = `我既${a}也${b}`console.log(_all,all)//我既代表A也代表B 我既代表A也代表B
3.Destructuring Assignment (解构赋值)in ES6
let oA = {a: 1 , b:()=>{return 3},c : 12};var { a , b } = oA //a 为1 , b为函数
4.箭头函数
//箭头函数,综合了插值和默认值var aFn = (a,b=8)=>{  return `function , arguments ${a},${b}`}
5. Classes (类)in ES6

class 记住 类首字母大写的规范 个人很喜欢这个OOP编程风格

class Abc {  constructor(language, length) {    this.name = 'ABC';    this.language = language    this.length = length
  }

  getLanguage(){    return `${this.language}`
  }
  nameString(){    return 'abc'
  }
}var ac = new Abc('english',26);class DEF extends Abc {  //对于父类需要初始值的,继续的子类直接不报错,是undefined , 这个在swift 会报错,很赞的功能
  //可以继承且重写 ,只不过swift 函数重写需要写 override 在函数前面
  getLanguage(){    return 'DEF'
  }


}var df = new DEF()//english ABCconsole.log( ac.getLanguage() , ac.name)//DEF ABC undefinedconsole.log(df.getLanguage() , df.name,df.language)
6.Module 模块化 export,import 命令

//方式1.

export var name = 'name'

//方式2.

const  name = 'name'export name

//方式3.

// people.jslet  name = (name) => {  return `name is : ${name}`}const age = "27"export {name,age}

使用的时候是import {name, age} from './people.js'

整体输入,module指令

//people.jsexport function getName(name) {return `${name} alisa is liujunbin`}export function getAge(){return '27';
} 

import * as p from './people.js'p.getName('baron')

export default

不用关系模块输出了什么,通过 export default 指令就能加载到默认模块
不需要通过 花括号来指定输出的模块,一个模块只能使用 export default 一次

//people.js
 function getAge() {} export default getAge;

// 导入的时候不需要花括号

 import test from './people.js';

一条import 语句可以同时导入默认方法和其它变量.

import default, { other } from 'xxx.js';
7.Promise

详情移步至
简书地址 ES6 的 Promise实践
http://www.jianshu.com/p/c0b6381f6251

github 地址
https://github.com/976500133/Web-Library/blob/master/10.es6-promise%E4%BB%8B%E7%BB%8D.html

文章稿纸的地址详见github

https://github.com/976500133/Web-Library

其他的一些特性暂时不说了,使用的不多



作者:二月长河
链接:https://www.jianshu.com/p/4f8dc0bc6903


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消