理解の深化
4954 ワード
一、smbol
javascript基本データタイプ:null、undefined、number、bollan、string、smbol ES 6は新しい原始データタイプSymbolを導入し、ユニークな値を表しています.
1、セット()
は、s 6が提供する新しいデータ構造であり、配列と似ていますが、set内のデータは一意性を持っています.
Mapデータ構造は、オブジェクトと似ていますが、キーの範囲は文字列に限定されず、様々な種類の値(オブジェクトを含む)になります.
非同期プログラミングの解決策であり、複数の非同期要求の実行順序などを処理することができる.
1、Generator関数
ES 6が提供する非同期プログラミングソリューションの操作は煩雑で、nextメソッドを手動で呼び出す必要があります.
これはGenerator関数のシンタックス糖async関数がPromiseオブジェクトに戻ります.then法を使ってコールバック関数を追加できます.
クラスのキーワードでクラスを定義できます.
1、基本的な使い方
extendsのキーワードで継承が可能です.
ES 6は前にすでにjsモジュールのロードの方案が現れています.最も主要なのはCommon JS(サーバ端に使用されるもの、nodeJSなど)とAMD仕様(ブラウザに使用されるもの、例えばrequireJS)です.
1、export導出
exportは、本モジュール(一つのファイルは一つのモジュールとして理解できる)変数を外部に出力するためのインターフェースです.
importは、もう一つのモジュールにexportインターフェースを含むモジュールをロードするために使用されます.
モジュールは一つしかありません.export defaultは一つしかありません.
javascript基本データタイプ:null、undefined、number、bollan、string、smbol ES 6は新しい原始データタイプSymbolを導入し、ユニークな値を表しています.
let s = Symbol();
typeof s
// "symbol"
二、セットとMap1、セット()
は、s 6が提供する新しいデータ構造であり、配列と似ていますが、set内のデータは一意性を持っています.
const s = new Set();
Setのインスタンスの属性と方法let set = new Set([1, 2, 3, 4, 4]);
//
set.size //5
//
set.add(value) // ,
set.delete(value) // ,
set.has(value) // , set
set.clear() // ,
//
keys(),values(),entries()
// :Set , , keys(),values()
2、Map()Mapデータ構造は、オブジェクトと似ていますが、キーの範囲は文字列に限定されず、様々な種類の値(オブジェクトを含む)になります.
let map = new Map();
let obj = {msg:'hello'}
//map ( )
map.set(obj, 'content')
map.set('key', 'value')
map.get(obj) //'content'
//size
map.size //2
// , Map
map.has(obj) //true
// , true。 , false
map.delete(obj) //true
// , 。
map.clear()
//
keys(),values(),entries()
// :Map
三、プロミス非同期プログラミングの解決策であり、複数の非同期要求の実行順序などを処理することができる.
//
let p1 = function(){
return new Promise((resolve,reject)=>{
// 1, resolve , reject
})
}
let p2 = function(){
return new Promise((resolve,reject)=>{
// 2, resolve , reject
})
}
p1.then((data)=>{
console.log(' ')
},(err)=>{
console.log(' ')
})
//Promise.all Promise , Promise
let p = Promise.all([p1,p2])
p.then((data)=>{
// resolve
}).catch((err)=>{
//
})
四、Generator関数とasync関数1、Generator関数
ES 6が提供する非同期プログラミングソリューションの操作は煩雑で、nextメソッドを手動で呼び出す必要があります.
function* test(){
yield 'hello'; //yield
yield 'world';
...
}
let result = test();
console.log(result.next()); // { value: 'hello', done: false }
console.log(result.next()); // { value: 'world', done: false }
console.log(result.next()); // { value: undefined, done: true }
2、async関数(s 7)これはGenerator関数のシンタックス糖async関数がPromiseオブジェクトに戻ります.then法を使ってコールバック関数を追加できます.
function timeout(ms) {
return new Promise((resolve, reject) => {
setTimeout(resolve, ms, "finish");
});
}
async function asyncTimeSys(){
await timeout(1000);
console.log(" !")
await timeout(1000);
console.log(" !")
await timeout(1000);
console.log(" !")
await timeout(1000);
console.log(" !")
await timeout(1000);
console.log(" !")
return "all finish";
}
asyncTimeSys().then((value)=>{
console.log(value);
});
五、クラス類クラスのキーワードでクラスを定義できます.
1、基本的な使い方
//es6 ( )
function Person(name,age){
this.name = name;
this.age = age;
}
let student = new Person(' ',18);
//
Person.prototype.say = function(){
return this.name +' '+ this.age;
}
console.log(student.say()) // 18
// class
class Person {
// , Person.type
static type = ' ';
// , Person.eat()
static eat(){
console.log(' ');
}
//
constructor(name,age){
this.name = name;
this.age = age;
}
//
say(){
return this.name +' '+ this.age
}
}
let student = new Person(' ',18)
console.log(student.say()) // 18
2、クラスの継承extendsのキーワードで継承が可能です.
class Person {
constructor(name){
this.name = name;
}
say(){}
}
class Teachaer extends Person{
constructor(name,job){
super(name); // this, super ,
this.job = job;
}
work(){
return `${this.name} ${this.job}`;
}
}
let xiaoming = new Teachaer(' ',' ')
console.log(xiaoming .work()) //
六、Module文法ES 6は前にすでにjsモジュールのロードの方案が現れています.最も主要なのはCommon JS(サーバ端に使用されるもの、nodeJSなど)とAMD仕様(ブラウザに使用されるもの、例えばrequireJS)です.
1、export導出
exportは、本モジュール(一つのファイルは一つのモジュールとして理解できる)変数を外部に出力するためのインターフェースです.
//1、
//
export var name = " ";
export var age = 18;
//
export function say(){}
//
export class Person{}
//2、
let a = 1;
let b = 2;
let c = 3;
export { a, b, c }
// a、b、c export , a、b、c
2、import導入importは、もう一つのモジュールにexportインターフェースを含むモジュールをロードするために使用されます.
//1、
import * as items from ' '
// :* ,as
//2、
import { a, b } from ' '
3、export defaultはデフォルトメンバーをエクスポートします.モジュールは一つしかありません.export defaultは一つしかありません.
var name = ' '
export default name;
// default
import name from ' '