ECMAScript 6ベース
32075 ワード
1. ECMAScript 6概要
JavaScript 三大構成:
ECMAScript
JSにおけるデータの種類および関連操作、フロー制御、演算子および関連演算… ECMAScriptのです
DOM
ドキュメントのいくつかの操作: 文書オブジェクトモデル
BOM
ブラウザのオブジェクトモデル: ウィンドウサイズ、履歴管理、スクロールバーの位置…
ECMAScript 歴史を発展させる https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Language_Resource
2.両変数の宣言
letとconst
let
配列の展開演算子
setオブジェクト
矢印関数
Aray.from()
文字列方法starts With()endsWith()
プロフィール表示法
http://www.babeljs.com/
JavaScript 三大構成:
ECMAScript
JSにおけるデータの種類および関連操作、フロー制御、演算子および関連演算… ECMAScriptのです
DOM
ドキュメントのいくつかの操作: 文書オブジェクトモデル
BOM
ブラウザのオブジェクトモデル: ウィンドウサイズ、履歴管理、スクロールバーの位置…
ECMAScript 歴史を発展させる https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Language_Resource
2.両変数の宣言
letとconst
let
/* let a = 0;// var
console.log(a); */
let a = 0;
var b = 10;// ( let)
/*
var :
1.var
let:
1.
*/
letのブロックレベルのスコープif(true){
let a = 1;
}
console.log(a);// !!~
{
//
//let ,
}
console.log(a);//->1; let->
/*
var :
1.var
2. :
let:
1.
2. : {}
*/
letとvarの違い//JS ! -> var , , undefined;
console.log(a);//var->undefined let->
let a = 1;
/*
var :
1.var
2. :
3.
let:
1.
2. : {}
3.
*/
const定数/*
const :
,
1.
2.
3.
let
*/
// const a = 10;//const , !
const a = undefined;
// a = 20;// !
console.log(a);//10
ブロックレベルのスコープ /* {let a = 1;console.log(a);} *//*if(true){let a = 1;} */
//循环之中的块级作用域{let lis = document.querySelectorAll("li");for(let i = 0;i lis[i].onclick = function(){console.log(i);//所以在这里就不要加索引值了!}}// console.log(i);//当然循环后let是不能用的!//let 的作用域如下:/* {let i = 0;lis[i].onclick = function(){console.log(i);}}{let i = 1;lis[i].onclick = function(){console.log(i);}}{let i = 2;lis[i].onclick = function(){console.log(i);}} */}3.解构赋值
对象的解构赋值 let {a,b} = obj;
// :
let obj = {
a : 1,
b : 2,
c : 4,
d : 3
}
/* let a = obj.a;
let b = obj.b;
console.log(a,b); */
// -> ,
let {a,b,c} = obj;
console.log(a,b,c);
配列の解除// :
// let arr = ["a","b","c"];
// let [e,f] = arr;
// console.log(e,f);//a b
// :
let a = 0;
let b = 1;
console.log(a,b);//0 1;
[a,b] = [b,a];
console.log(a,b);//1 0;
他のタイプの解凍値-文字列の解凍値let str = "abc";
let [e,f] = str;
console.log(e,f);//a b
// let nub = 123;
// let [c,d] = nub;
// console.log(c,d);//1 2
/*
, ( )
*/
4.演算子を展開する…配列の展開演算子
// : 、 -> ...
let arr = [1,2,3,4];
let arr2 = ["a","b",...arr,"c","d"];
console.log(arr2);//a,b,1,2,3,4,c,d
// :
let [a,b,...c] = arr;
console.log(a,b,c);//1,2,[3,4]
オブジェクト展開演算子let obj = {
a:1,
b:2
}
/* let obj2 = {
...obj,
c:3,
d:4
} */
// console.log(obj2);//{a: 1, b: 2, c: 3, d: 4}
// let {a,b,...c} = obj2; //
// console.log(a,b,c);//1 2 {c: 3, d: 4}
let obj2 = {...obj};
obj2.a = 10;
// console.log(obj.a);//10
console.log(obj);
console.log(obj2);
5セットとMapオブジェクトsetオブジェクト
// :
let arr = [3,1,2,2,3,4,5,3,5];
let s = new Set(arr);
console.log(s);//
arr = [...s];
console.log(arr);//
セット属性 1 // :
2 let arr = [3,1,2,2,3,4,"a",5,3,5];
3 let s = new Set(arr);
4 // console.log(s.size);//5 size length
5 // s.clear();//
6 // console.log(s.delete("a"));// ,
7 // s.add(6).add(7).add(8);// !
8 // console.log(s.has("a"));//true ->
9 /*
10 set.clear();
11
12 :undefined
13 set.deleta(val);
14
15 :
16 val
17 :
18 ,
19 set.has(val);
20
21 :
22 val
23 :
24 true||false
25 set.add(val);
26
27 :
28 val
29 :
30 set
31 */
32 console.log(s);
Mapオブジェクト// :
let arr = [
["a",1],
["b",2],
["c",3]
];
let m = new Map(arr);
// m.clear();
// console.log(m.delete("a"));
// console.log(m.get("a"));
// console.log(m.has("a"));
// console.log(m.set("d",4));
m.set("a",4).set("e",5)
console.log(m);
/*
clear();
delete(key);
: ,
get(key);
:
has(key);
:
set(key,val);
:
key key
val val
:
map
*/
6.矢印関数矢印関数
/* function fn(){
return ;
} */
/* let fn = ()=>{
console.log(1);
}; */
// let fn = nub=>nub*2;
// let fn = (nub,nub2)=>nub*nub2;
// let fn = ()=>" ";
// console.log(fn());
// fn();
let fn = ()=>{
console.log(" ");
return " ";
}
// fn();
console.log(fn());
/*
:
=>
( , )=>
()=>
()=>{
}
()=>{
return
}
( )=>{
return
}
*/
矢印関数の不定参照function fn(){
console.log(arguments.length);
};
fn(1,2,3,4);
// : arguments
パラメータlet fn = (a,b,...arg)=>{
console.log(a,b,arg);
};
fn(1,2,3,4);
// rest ...
矢印関数のthis方向/* document.onclick = ()=>{
console.log(this);
}; */
// document.onclick = function(){
// let fn = ()=>{
// console.log(this);
// }
// /* function fn(){
// console.log(this);
// } */
// fn();
// };
let fn;
let fn2 = function(){
console.log(this);//window
fn = ()=>{
console.log(this);
}
}
fn2 = fn2.bind(document.body);
fn2();
fn();
/*
this, this , this;
*/
矢印関数のパラメータのデフォルト値let fn = (a=10,b=2)=>{
// a : 10
// b : 2
console.log(a*b);
};
fn();
7.配列新規方法Aray.from()
/*
Array.form( )
: length;
:
*/
// new Date().getTime();
// Date.now();
// new Array();
// Array.from();
// arr.forEach();
// , !
{
let lis = document.querySelectorAll("#list li");
lis = Array.from(lis);
console.log(lis);
// lis.map(itme=>{
// return itme;
// });
}
from()メソッドでクラス配列を配列に変換する方法{
let lis = document.querySelectorAll("#list li");
var arr = [];
// lis = Array.from(lis,function(itme,index){
// console.log(itme,index,this);// this
// return index;
// },arr);
lis = [...lis];//
console.log(lis);// from index
}
メソッド{
console.log(Array.of(1,2,3,4,"a"));//
}
isarry()方法は一つのものが配列であるかどうかを判断します.{
let lis = document.querySelectorAll("#list li");
console.log(Array.isArray(lis));//false ->
lis = [...lis];
console.log(Array.isArray(lis));//true
}
配列下のfind()メソッドfindIndex()メソッド{
let arr = [1,2,3,4];
/* let val = arr.find((itme,index)=>{
if(itme > 3){
return index;
}
}); */
// :
// let val = arr.find(itme=>itme>=3);// ( ), undefined
// console.log(val);
let index = arr.findIndex(itme=>itme>=3);//
console.log(index);
}
配列平準化fiat()方法// , ,
let arr = [
[" ",18],
[" ",20],
[
[1,
[2,3],
[4,
[5,6,
[7,8]
]
]
]
]
];
console.log(arr.flat(Infinity));// : Infinity:
配列平準化fiat Map()方法// , ,
let arr = [
[" ",18],
[" ",20]
];
let newArr = arr.flatMap((itme)=>{
itme = itme.filter((itme,index)=>{
return index == 0;
});
return itme;
});
console.log(newArr);
メソッド充填let arr = [1,2,3,4,5];
arr.fill("a",3);//"a","a","a","a","a" , , , ,
console.log(arr);
includes()方法let arr = ["a","b","c","d","e"];
console.log(arr.includes("a",2));
/*
(val); ->
:
*/
8.文字列の追加方法文字列方法starts With()endsWith()
let str = "Afan JackAfan Afan";
console.log(str.startsWith("Afan",4));
console.log(str.endsWith(" ",4));
/*
startsWith
val
:
:
endsWith
val
:
*/
repeat()方法{
let str = "a";
console.log(str.repeat(10));//
/*
repeat
*/
}
テンプレート文字列補間表式{}let p = document.querySelector("p");
let name = " ";
let age = 18;
let scholl = " ";
// p.innerHTML = ' '+name+' '+age+' , '+scholl+' !';
p.innerHTML = ` ${name} ${age} , ${scholl} !`
/*
:
1.``
2.${}
*/
通常の文字列とテンプレート文字列の違いlet p = document.querySelector("p");
let name = " ";
let age = 18;
let scholl = " ";
// p.innerHTML = ' '+name+' '+age+' , '+scholl+' !';
p.innerHTML = `
${name} ${age} , ${scholl} !
`
/*
1.``
2.${}
3.
*/
補間式let p = document.querySelector("p");
let name = ()=>{
var n = " ";
return n;
};
let age = 18;
let scholl = " ";
// p.innerHTML = ' '+name+' '+age+' , '+scholl+' !';
p.innerHTML = `
${name()} ${age>18?18:" "} , ${scholl} !
`
/*
${} :
*/
9.オブジェクトの追加方法プロフィール表示法
let a = 0;
let b = 0;
/* let obj = {
a : a,
b : b
} */
let obj = {
a,// a
b,// b
c(){
console.log("a");
}
}
console.log(obj)
属性名式let name = " ";
let obj = {
c(){
console.log("a");
},
[name] : 111
}
// obj[name] = 111;
console.log(obj)
オブジェクトマージassign()let obj = {
a:1,
b:2
}
let obj2 = {
c:3,
d:4
}
// Object.assign(obj2,obj);//{c: 3, d: 4, a: 1, b: 2}
obj2 = Object.assign({},obj,obj2);//{a: 1, b: 2, c: 3, d: 4}
console.log(obj2);
is()と==/* if(+0){
console.log(" ")
}else{
console.log(" ")
}
if(-0){
console.log(" ")
}else{
console.log(" ")
} */
console.log(+0 === -0);//true -> false===false
// console.log(Object.is(1,"1"));//false ===
// console.log(Object.is(+0,-0));//-false
console.log(Object.is(NaN,NaN));//->true
// === !
10.ECMAScriptの対応バベルhttp://www.babeljs.com/
<span style="color: #008000;">/*</span><span style="color: #008000;">
babel , ( );
</span><span style="color: #008000;">*/</span><span style="color: #000000;">
let a </span>= 0<span style="color: #000000;">;
let b </span>= 1<span style="color: #000000;">;
let obj </span>=<span style="color: #000000;"> {
a,
b,
c(){
console.log(</span>1<span style="color: #000000;">);
}
}
let obj2 </span>=<span style="color: #000000;"> {
d:</span>4<span style="color: #000000;">,
...obj,
e:</span>5<span style="color: #000000;">
}
console.log(obj2);
</span>