珠峯培訓ES6學習筆記1

let和const

var關鍵字定義變量的特色:數組

  • 能夠重複定義
  • 不能定義常量
  • 不支持塊級做用域

let的特色閉包

  1. 不能夠重複定義
  2. 變量不能提高,在變量定義以前,不能使用
  3. 在大括號當中定義的變量(塊級做用域中),在做用域外沒法訪問
  4. 解決一些ES5當中須要閉包實現的功能,好比:每隔1秒循環輸出一個當前的值

const的特色函數

  1. 常量一旦定義,就不能被修改
  2. 若是常量的值是一個引用類型,引用對象的屬性仍是能夠修改的

結構賦值

ES6容許按照必定模式,從數組和對象中提取值,對變量進行賦值,這被稱爲結構。code

let arr = [1,2,3];
let [a,b,c] = arr;

let [,,m] = arr;
// m = 3

let [d,...e] = arr;
// d = 1
// e = [2,3]

let [f,g,...h] = [1];
// f = 1
// g = undefined
// h = []

let obj = {
    name:"mmcai",
    age:28,
    long:165
}

let {name,age,long} = obj;
// name = "mmcai"
// age = 28
// long = 165

let {name:myName,age:myAge} = obj;
// myName = "mmcai"
// myAge = 28

let {name,...O} = obj;

// name = "mmcai"
// O = {
    age:28,
    long:165
}

特色對象

  1. 能夠經過「模式匹配」的寫法從數組或者對象中取出來值,直接賦值給某變量
  2. 不徹底解構,等號左邊的模式,只匹配右邊的一部分
  3. 解構賦值能夠指定默認值,若是從等號右邊取出來的值是undefined,就會使用指定的默認值
  4. 數組的解構賦值要徹底按照數組的秩序取值,對象不須要
  5. 若是解構賦值等號右邊是布爾或者數值,會先轉爲對象
  6. 字符串也能夠執行結構賦值,字符串結構賦值的時候,被當作類數組的對象
  7. 函數的參數也可使用解構默認賦值,每每還會設置默認值,當參數沒有的時候,直接使用默認值
  8. 如下三種解構賦值不能使用圓括號模板引擎

    1. 變量生命語句
    2. 函數參數
    3. 賦值語句的模式

用途接口

  • 交換變量的值
  • 從函數返回多個值
  • 函數參數的定義
  • 提取JSON數據
  • 函數參數的默認值
  • 遍歷Map結構
  • 輸入模塊的指定方法

字符串擴展

  • 字符的Unicode表示法
  • 使用for...of循環遍歷字符串,ES6字符串添加了遍歷器接口Iterator
  • 模板字符串,ES6自帶模板解析引擎
  • 模板字符串能夠直接跟在函數名後面,該函數將被調用來處理這個模板字符串

模板字符串
ES6當中字符串使用反引號(`)標識,字符串當中嵌入變量能夠經過${}來添加,好比:作用域

const {name,age} = {
    name:"mmcai",
    age:28
}

const str = `個人名字是${name},我今年${age}歲了`;

其實模板字符串,就是ES6自己自帶了一個模板引擎,來對特殊的內容進行解析,大概原理以下:字符串

let compile = (desc){
    return desc.replace(/\$\{([^}]+)\}/g,(matched,key)=>{
        return eval(key);
    }
}
  • 模板字符串使用`標識,使用${}包括嵌入的變量
  • 模板字符串能夠換行
  • 當咱們須要自定義模板引擎的時候,可使用標籤模板,經過函數來實現

字符串新增方法it

  1. includes——判斷字符串中是否包含某字符串,返回布爾值
  2. startsWith——字符串頭部是否有某字符串,返回布爾值
  3. endsWith——字符串結尾是否有某字符串,返回布爾值
  4. repeat——返回一個重複了n次的新字符串。
  5. trimStart——消除字符串頭部空格
  6. trimEnd——消除尾部空格
  7. padStart——從頭部補全字符串
  8. padEnd——從尾部補全字符串
相關文章
相關標籤/搜索