ES6學習心得

解構賦值應用場景:正則表達式

1.交換變量:數組

let a=1;
let b=2;
[a,b]=[b,a];
console.log(a,b);  //2,1

2.獲取對應參數spa

let metaData={
  title:'abc',
  test:[{
    title:'test',
    desc:'description'
  }]
}
let {title:esTitle,test:[{title:cnTitle}]}=metaData;
console.log(esTitle,cnTitle);  //abc,test

正則表達式:code

修飾符y:blog

  下一次執行,從上一次匹配以後的字符的下一個開始。ip

let s="bbb_bb_b";
let a1=/b+/y;
a1.exec(s);//輸出'bbb'
a1.exec(s);//輸出null   由於會從'bbb'以後的'_'開始匹配

修飾符g:字符串

  下一次執行,從找到符合的字符開始,或沒有找到string

let s="bbb_bb_b";
let a1=/b+/g;
a1.exec(s);//輸出'bbb'
a1.exec(s);//輸出'bb' 會跳過'_',從下一個'b'開始查找匹配的字符

字符串:it

let str='string';
console.log('include',str.includes("q"));  //false   字符串中是否包含
console.log('start',str.startsWith('str'));   //true    字符串是否以'str'開頭
console.log('end',str.endsWith('ing'));    //true    字符串是否以'ing'結尾

字符串複製:io

let str="abc";
console.log(str.repeat(3));  //輸出  abcabcabc

字符串補白:

console.log('1'.padStart(2,'0'));  //輸出01,應用場景:時間=>當不足10時,在前面補‘0’
console.log('1'.padEnd(2,'0'));   //輸出10,向後補

保留轉義字符'\':

console.log(String.raw`Hi\n${1+2}`);  //Hi\n3
console.log(`Hi\n${1+2}`);                 //Hi
                                           // 3

數值擴展:

console.log(0b11111100111);     //2023   二進制形式
console.log('B',0B11111100111);//B  2023  
console.log(0o767);                   //503     八進制形式
//是否有限
console.log('15',Number.isFinite(15));         //15 true
console.log('NaN',Number.isFinite(NaN));    //NaN false
console.log('1/0',Number.isFinite('true'/0)); //1/0  false
console.log('NaN',Number.isNaN(NaN));      //是否是NaN
console.log('0',Number.isNaN(0));
//是否是整數
console.log('25',Number.isInteger(25));        //15 true
console.log('25.0',Number.isInteger(25.0));  //25.0 true
console.log('25.1',Number.isInteger(25.1));  //25.1 false
console.log('asd',Number.isInteger('asd'));    //asd  false

console.log(Number.MAX_SAFE_INTEGER);//9007199254740991  數的上限
console.log(Number.MIN_SAFE_INTEGER);//-9007199254740991  數的下限
console.log('10',Number.isSafeInteger(10));//10 true  是否在有效範圍以內
console.log('a',Number.isSafeInteger('a'));  //a false

console.log(4.1,Math.trunc(4.1));//4.1  4  取整
console.log(4.9,Math.trunc(4.9));//4.9  4

//判斷正負
console.log('-5',Math.sign(-5));   //-5  -1
console.log('0',Math.sign(0));      //0    0
console.log('5',Math.sign(5));      //5    1
console.log('51',Math.sign('51')); //51  1
console.log('a',Math.sign('a'));     //a    NaN

//立方根
console.log('-1',Math.cbrt(-1));  //-1  -1
console.log('8',Math.cbrt(8));     //8    2

數組擴展:

let arr=Array.of(3,4,7,9,11);
console.log('arr=',arr);  //arr=   [3, 4, 7, 9, 11]

let empty=Array.of();
console.log('empty',empty); //empty  []

let p=document.querySelectorAll('p');
let pArr=Array.from(p);
pArr.forEach(function(item){
    console.log(item.textContent);
});//輸出各個p標籤的內容

console.log(Array.from([1,3,5],function(item){return item*2}));//[2,6,10]

console.log('fill-7',[1,'a',undefined].fill(7)); //[7,7,7]
console.log('fill,pos',['a','b','c'].fill(7,1,3));  //["a",7,7]
console.log('fill,pos',['a','b','c','a','b','c'].fill(7,1,3));  //["a", 7, 7, "a", "b", "c"]

for(let index of ['1','c','ks'].keys()){
    console.log('keys',index);
}//0  1  2

for(let value of ['1','c','ks'].values()){
    console.log('value',value);
}//1  c  ks

for(let [index,value] of ['1','c','ks'].entries()){
    console.log('value',index,value);
}//0 1,1 c,2 ks

console.log([1,2,3,4,5].copyWithin(0,3,5));//[4, 5, 3, 4, 5]

console.log([1,2,3,4,5,6].find(function(item){return item>3}));//4
console.log([1,2,3,4,5,6].findIndex(function(item){return item>3}));//3

console.log('number',[1,2,NaN].includes(1));//true
console.log('number',[1,2,NaN].includes(NaN));//true
相關文章
相關標籤/搜索