1.es6強制開啟嚴格模式 2.let不能重覆聲明變數 3.const聲明的常量不能修改 4.const聲明時候,對象可以改變,指針不行 5.解構賦值分為數組解構賦值,函數參數解構賦值,對象解構賦值 (a)數組解構賦值: { let a,b,rest; [a,b,...rest]=[1,2,3,4, ...
1.es6強制開啟嚴格模式
2.let不能重覆聲明變數
3.const聲明的常量不能修改
4.const聲明時候,對象可以改變,指針不行
5.解構賦值分為數組解構賦值,函數參數解構賦值,對象解構賦值
(a)數組解構賦值:
{
let a,b,rest;
[a,b,...rest]=[1,2,3,4,5,6];
console.log(a,b,rest);
}
...截取3456
(b)對象解構賦值:
{
let a,b;
({a,b}={a:1,b:2})
console.log(a,b);
}
❤解構賦值特別適合變數交換(區別於es5還需要一個中間量),如下
{
let a =1;
let b =2;
[a,b]=[b,a];
console.log(a,b);
}
(c)函數解構賦值:
{
function f(){
return [1,2,3,4,5]
}
let a,b,c;
[a,,,b]=f();
console.log(a,b);
}
可以隨心所欲的取自己想取的值
(d)對象解構賦值
{
let a,b;
({a,b}={a:1,b:2})
console.log(a,b);
}
{
let o ={p:42,q:true};
let {p,q}=o;
console.log(p,q);
}
對象解構賦值的左側是對象形式,右側也是一個對象形式
正則方法拓展:
正則新增的特性:u修飾符,y修飾符,s修飾符
flags是es6新增的獲取正則修飾符的屬性
新增了sticky屬性,判斷有沒有開始帶y的修飾符,開啟了就是true.
都是全局匹配,但是g修飾符中間任何位置匹配上都算。
y修飾符必須從第一個開始
u修飾符——處理大於兩個位元組的字元
字元串擴展:
Unicode表示法、遍歷介面、模板字元串
判斷字元串是否包含
{
let str ="string";
console.log("includes",str.includes("r"));//true
console.log("includes",str.includes("c"));//false
判斷字元串以某些字元起始/結尾
console.log("start",str.startsWith("str"));
console.log("end",str.endsWith("ng"));
}
{
let str="abc";
console.log(str.repeat(2));
字元串的複製功能
}
模板字元串
{
let name="list";
let info="my love";
let m =`i am ${name},${info}`;
console.log(m);
}
//標簽模板
//作用1 過濾字元串 防止xss攻擊
//作用2 處理多語言轉換
raw 對所有的斜杠進行了轉義 保證了斜杠不生效
{
console.log(String.raw`Hi\n${1+2}`); //Hi\n3
console.log(`Hi\n${1+2}`); //hi
//3
}