ES6學習筆記

一.Let,const

Let 具有塊級做用域
(1)沒有預解析,不存在變量提高chrome

Let a=12;
    function show(){
        console.log(a); //Tdz 開始暫時性死區,
        let a=5;  //TDZ結束
    }

(2)同一做用域不能重複定義相同變量數組

For循環,For循環裏面是父級做用域    
         for(let i=0;i<3;i++){
            let i=’abc’;
            console.log(i) //打印出3次‘abc’(i在不一樣得做用域)
        }

const 定義常量 特性和let同樣
(1)const定義的定義必須有值,不能後賦值,不能修改
若是真的想將對象凍結,應該使用Object.freeze方法。瀏覽器

const foo = Object.freeze({});
// 常規模式時,下面一行不起做用;
// 嚴格模式時,該行會報錯
foo.prop = 123;

二.解構賦值

Let [a,b,c]=[2,3,4]
注意:左右倆邊,結構格式要保持一致


 Json:
        var obj={
            a:2,
            b:3
        };
        let {a,b}=obj;
        let {a:nsds,b}=obj;//將a起名字爲nsds
        let [a,b,c='暫無數據']=['aa','bb'];
        //能夠設置默認值

交換倆個數的位置數據結構

let a=9;
let b=8;
[a,b]=[b,a];

案例app

function show({a="1",b='2'}){
     console.log(a,b) //給默認值
 }
 show({});

注意:ES6 內部使用嚴格相等運算符(===),判斷一個位置是否有值。因此,只有當一個數組成員嚴格等於undefined,默認值纔會生效。函數

let [x = 1] = [undefined];
    x // 1
    let [x = 1] = [null];
    x // null

三.字符串模板

(1)優勢:隨意換行this

格式:${name}code

let name='abc';
let age=18;
let str=`這我的名字:${name},年齡:${age}`;
console.log(str)

(2)字符串查找對象

str.indexOf(要找的東西); //返回索引(位置),沒有找到返回-1
str.includes(要找的東西); //返回值 true/false
判斷瀏覽器:navigator.userAgent.includes('chrome')
檢測字符串以誰開頭:str.startsWith(檢測東西)
檢測字符串以誰結尾:str.endsWith(檢測東西)
重複字符串:str.repeat(3) 重複3次
字符串填充:str.padStart(整個字符串長度,填充東西) //往前填充
str.padEnd(str.length+str1.Length,填充東西) //日後填充索引

四.函數變化

1.函數默認參數

function show({a="1",b='2'}={}){
      console.log(a,b) //函數的特性
  }
  show()

2.函數參數默認已經定義,不能再使用let,const聲明:

function show(a=18){
  Let a=12; //錯誤
      console.log(a) 
  }
  show()

3.擴展運算符,reset運算符... (展開/收起 數組)

let arr=['apple','banana','orage']
    console.log(...arr) //apple banana orage
    
    function show(a,b,...c){
        console.log(a,b)//1 2
        console.log(c)//[3,4,5,6]
    }
    show(1,2,3,4,5,6)

4.箭頭函數=>

Let show()=>a // 至關於return a
A.this問題,定義函數所在的對象,不在運行時所在的對象
B.箭頭函數裏沒有arguments,用‘...’
C.箭頭函數不能用於構造函數

五.數組

1.Arr.forEach()//代替普通for
Arr.forEach(循環回調函數,this指向誰)

let arr=[1,2,3,4,5,6];
arr.forEach(function(val,index,arr){
    console.log(this) // this指123
},123)

2.Arr.map()
正常狀況下配合return,返回一個新的數組。若沒有return至關於forEach()
從新整理數據結構:
3.Arr.filter() :
過濾,過濾一貫不合適「元素」,若是回調函數返回的時true,則留下 [{title:’aaa’}]->[{t:’aaa’}]
4.Arr.some()
相似查找,數組裏面某一個元素符合條件,返回true;
5.Arr.every()
數組裏面全部的元素都要符合條件,才返回true
6.Arr.reduce() 2**3求冪
從左往右求數組的和,階層
7.Arr.reduceRight() //從右往左
for...of循環
默認循環的是value
arr.key() 數組下標
Arr.entries() 數組的某一項
Array.from()
做用:把類數組(獲取一組元素,arguments...)對象轉成數組
只要有length就靠譜
Array.of()
把一組值,轉成數組
Array.find()
查找,找出第一個符合條件的數組成員,若是沒有找到,返回undefined
Array.findIndex()
找的是位置,沒找到返回-1
Array.fill()填充
Array.fill(填充的東西 開始位置,結束位置)

相關文章
相關標籤/搜索