数组解构
const arr = [ 100 , 200 , 300 ] ;
const [ a, b, c] = arr;
console. log ( a, b, c) ;
const [ , , d] = arr;
console. log ( d) ;
const [ e, ... rest] = arr;
console. log ( rest) ;
const path = '/a/b/c' ;
const [ , f, g, h] = path. split ( '/' ) ;
console. log ( f, g, h) ;
对象解构
var age = 20 ;
const obj = {
name : 'zhang' ,
age : '18' ,
fullName : function ( a ) {
console. log ( a) ;
} ,
fullAge : function ( ) {
console. log ( this . age) ;
}
}
const { name : objName, age } = obj;
console. log ( objName, age) ;
const { fullName, fullAge } = obj;
fullName ( 1 ) ;
obj. fullAge ( ) ;
fullAge ( ) ;
模板字符串
const str = ` hello ` ;
console. log ( str) ;
const myName = "ton" ;
const msg = ` hey, ${ myName} `
console. log ( msg) ;
带标签的模板字符串
const str = console. log` hello World ` ;
const name = 'tom' ;
const gender = true ;
function myTagFunc ( strings, name, gender ) {
const sex = gender ? 'man' : 'woman' ;
return strings[ 0 ] + name + strings[ 1 ] + sex + strings[ 2 ] ;
}
const result = myTagFunc` hey, ${ name} is a ${ gender} ` ;
console. log ( result) ;
字符串扩展方法
const msg = 'Error: foo is not defined.'
console. log (
msg. startsWith ( "Error" ) ,
msg. endsWith ( "." ) ,
msg. includes ( "foo" )
) ;
参数默认值
function foo ( bar, enable = true ) {
console. log ( "1111" ) ;
console. log ( enable) ;
}
foo ( ) ;
剩余参数
function foo ( ... args) {
console. log ( args) ;
}
foo ( 1 , 2 , 3 )
展开数组
const arr = [ '1' , '2' , '3' ] ;
console. log ( ... arr) ;
对象字面量增强
const bar = '123' ;
const obj = {
foo : 123 ,
bar,
method1 ( ) {
console. log ( 'method1' ) ;
} ,
[ Math. random ( ) ] : 123 ,
[ bar] : 123
}
console. log ( obj) ;
obj[ Math. random ( ) ] = 123 ;
Promise
const p = new Promise ( ( resolve, reject ) => {
setTimeout ( ( ) => {
resolve ( "数据" ) ;
} , 1000 )
} )
const result = p. then ( value => {
console. log ( value) ;
throw new Error ( '出错了' )
} , reson => {
console. warn ( reason) ;
} )
console. log ( result) ;
Promise链式调用
const fs = require ( "fs" ) ;
const p = new Promise ( ( resolve, reject ) => {
fs. readFile ( "./book1.md" , ( error, data ) => {
resolve ( data) ;
} ) ;
} ) ;
p. then ( value => {
return new Promise ( ( resolve, reject ) => {
fs. readFile ( "./book2.md" , ( error, data ) => {
resolve ( [ value, data] ) ;
} ) ;
} ) ;
} ) . then ( value => {
return new Promise ( ( resolve, reject ) => {
fs. readFile ( "./book3.md" , ( error, data ) => {
value. push ( data) ;
resolve ( value) ;
} ) ;
} ) ;
} ) . then ( value => {
console. log ( value. join ( ) ) ;
} )