不废话,程序员时间宝贵,精髓拿去不谢
说实话,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 ABC
console.log( ac.getLanguage() , ac.name)
//DEF ABC undefined
console.log(df.getLanguage() , df.name,df.language)
6.Module 模块化 export,import 命令
//方式1.
export var name = 'name'
//方式2.
const name = 'name'
export name
//方式3.
// people.js
let name = (name) => {
return `name is : ${name}`
}
const age = "27"
export {name,age}
使用的时候是
import {name, age} from './people.js'
整体输入,module指令
//people.js
export 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
其他的一些特性暂时不说了,使用的不多