一. let和const
①let宣告的變數只在它的塊作用域有效(括起來)
②let不能重複宣告同一變數
③const宣告的常量不能改(但物件可以加屬性)
④const也有塊作用域概念
⑤const宣告時必須賦值
二. 解構賦值(左右一 一對應賦值,主要是陣列和物件兩種)
①陣列:
若解構賦值左右沒配對上則為undefined;
使用場景:
變數交換 [a,b] = [b,a];
函式fn返回值賦給變數 [a,b] = fn( );
let a,b;
[a,b]=f();
console.log(a,b);
//1 2
}
fn返回多個值 [a, , ,b] = fn( );(逗號中間佔乙個數)
let a,b,c;
[a,,,b]=f();
console.log(a,b);
//1 4
}
不知道fn返回多少個值,我只關心某乙個 [a, ,...b] = fn( );(...b是陣列)
let a,b,c;
[a,,...b]=f();
console.log(a,b);
//1 [3,4,5]兩逗號之間佔乙個數
}
②物件:
賦值可以覆蓋預設值,key相等則value相等
;let =o;
console.log(p,q);
//42 true
}
使用場景:
巢狀賦值
]} let ]}=metadata;
console.log(estitle,cntitle);
//abc test
}
三.正則擴充套件
新增特性:建構函式的變化 正則方法的擴充套件 u修飾符 y修飾符 s修飾符
/.test('a')); //
false
console.log(/\u/u.test('a')); //
true
//使用u修飾符後,所有量詞都會正確識別大於碼點大於0xffff的unicode字元
}
四.字串擴充套件
新增特性:unicode表示法 遍歷介面 模板字串 新增方法
,$`;
console.log(m);
//i am list,hello world 模板字串
}
五.數值擴充套件(math物件很多方法移植到number物件上)
新增特性:新增方法 方法調整
六.陣列擴充套件
新增特性:array.from array.of copywithin find/findindex entries/keys/values includes
); console.log(array.from([1,3,5],function(item)));//
[2,6,10] 可以當map用}
for(let value of ['1','c','ks'].values())
for(let [index,value] of ['1','c','ks'].entries())
}));//
4 找到乙個就不找了
console.log([1,2,3,4,5,6].findindex(function(item)));//
3 返回下標
}
七.函式擴充套件
新增特性:引數預設值 rest引數 擴充套件運算子 箭頭函式 this繫結 尾呼叫
test('hello');//
hello world
test('hello','kill');//
hello kill
} test2('kill');//
kill kill 作用域
} }
test3(1,2,3,4,'a');//
1 2 3 4 a}
function
fx(x)
fx(123)//
123 尾呼叫,代替遞迴
}
八.物件擴充套件
新增特性:簡潔表示法 屬性表示式 擴充套件運算子 新增方法
;let es6=;
console.log(es5,es6);//
let es5_method=
};let es6_method=
};console.log(es5_method.hello(),es6_method.hello());};
let es6_obj=
console.log(es5_obj,es6_obj);//
},));//
拷貝let test=;
for(let [key,value] of object.entries(test))
}
九.symbol(這種資料型別提供乙個獨一無二的值)
; console.log(obj);
//for
(let [key,value] of object.entries(obj))
object.getownpropertysymbols(obj).foreach(
function
(item))
reflect.ownkeys(obj).foreach(
function
(item))
}
十.資料結構
set用法 map用法 weakset用法 weakmap用法
let arr=[1,2,3,1,'2'];
let list2=new
set(arr);
console.log(list2);//}
list.clear();
console.log(list);
//{}}
for(let value of list.values())
for(let [key,value] of list.entries())
list.foreach(
function(item))//
add delete clear has
} 456
} console.log(map.size);//
2 console.log(map.delete('a'),map);//
console.log(map.clear(),map);//{}}
EcmaScript 6 箭頭函式
es5 var total values.reduce function a,b 0 es6 var total values.reduce a,b a b,0 箭頭即乙個函式的簡化 es5 confetti btn click function event es6 confetti btn cli...
ECMAScript6掃盲筆記 一
ecma組織推出的ecmascript是乙個標準 協議 js是協議的實現。ecmascript簡稱ecma或es。目前使用最多的是es5.1,es6正式推出是在2015年。就醬 es6 es2015 相容性 es6 es2015 支援 ie10 chrome firefox 移動端 nodejs。和...
ECMAScript6 常用解構賦值
一 解構賦值按照一定模式,從陣列和物件中提取值,對變數進行賦值 1.陣列解構let arr 1 2,3 現在要求取出陣列的每一項 傳統的方式 let a arr 0 let b arr 1 let c arr 2 console.log a,b,c 1,2,3 在es6中提供了解構的語法 可以得到陣...