ES 6新規加入内容(3)
3384 ワード
class(クラス);
class Person{
constructor(){//
this.age=30;
}
say(name){// ===Person.prototype.say
console.log(" :"+name+this.age)
}
}
// let p=new Person();
// p.say("Tom")
class Student extends Person{// this ( ) super() this
constructor(age){
super();
this.age = age;
}
}
let s = new Student(240000);
s.say(" ")
reset
reset演算子...(3点)余剰パラメータを表す
function fun(d,...a){// ...a
console.log(a,d,e)//
}
fun(2,23,4,5,43,15,12)
...(または3つのポイント)は拡張演算子を表します(これは気まずいです)
let arr=[2,3,4,5];
let arr2=[6,7,8]
console.log(arr.concat(arr2))//
console.log([...arr,...arr2])//
//
function foo(x,y,z){
console.log(x+y+z);// 6,
}
let arr3 = [1,2,3];
foo(...arr3)// , 3 (1,2,3)
let s = new Set([1,2,3,3])//
console.log([...s])// Set
promise
promiseは非同期操作のメッセージを伝達することを約束し、将来知ることができる結果の3つの状態を表します:pending(進行中の待機時間)resolved(解決された)完了reject(却下)に問題が発生しました
***promise.all({promise1,peomoise2,......})すべての非同期関数の実行が完了すると呼び出され、最も遅いものを基準とする***promise.race()コンテストモードは最速を基準に最速結果のみを返す
//ES5
// setTimeout :ajax
//
// function fun(callback){
// setTimeout(function(){
// console.log(" ")
// callback(" ")
// },1000)
// }
// //
// fun(function(res){
// console.log(res);
// });
簡単なpromiseの例
let promise =new Promise(function(resolve,reject){
// if (!true) {//
// resolve()
// }else{
// reject()
// }
// })
// promise.then(function(){
// console.log(" ")
// },function(){
// console.log(" ")
// })
これは複雑な多層コールバックの例です
function sync1(){
return new Promise(function(resolve,reject){
setTimeout(function(){
if (5>4) {
resolve(" ")
}else{
reject(" ")
}
},1000)
})
}
function sync2(result){
return new Promise(function(resolve,reject){
setTimeout(function(){
if (true) {
resolve(" :true"+"---")
}else{
reject(" :false")
}
},2000)
})
}
function sync3(result){
return new Promise(function(resolve,reject){
setTimeout(function(){
if (true) {
resolve(" 3:true"+"---")
}else{
reject(" 3:false")
}
},2000)
})
}
es 6のpromiseを用いてコールバック関数を実現する
// sync1().then(function(res){
// console.log(abc)
// console.log(res)
// return sync2(res);
// }).then(function(r2){
// console.log(r2)
// return sync3()
// }).then(function(r3){
// console.log(r3)
// return "abc"
// }).then(function(r4){
// console.log(r4)
// return "def"
// }).then(function(r5){
// console.log(r5)
// }).catch(function(){
// // catch()
// //
// console.log(" ")
// });
次に、上記のテストに関連するpromise.all()とpromise.race()
// Promise.all([sync1(),sync2(),sync3()]).then(function(res){
// console.log(res)
// },function(){})
// Promise.race([sync1(),sync2(),sync3()]).then(function(res){
// console.log(res)
// },function(){})