珠峯培訓ES6學習筆記1

let和const

var關鍵字定義變量的特點:

  • 可以重複定義
  • 不能定義常量
  • 不支持塊級作用域

let的特點

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

const的特點

  1. 常量一旦定義,就不能被修改
  2. 如果常量的值是一個引用類型,引用對象的屬性還是可以修改的

結構賦值

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

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);
    }
}
  • 模板字符串使用`標識,使用${}包括嵌入的變量
  • 模板字符串可以換行
  • 當我們需要自定義模板引擎的時候,可以使用標籤模板,通過函數來實現

字符串新增方法

  1. includes——判斷字符串中是否包含某字符串,返回布爾值
  2. startsWith——字符串頭部是否有某字符串,返回布爾值
  3. endsWith——字符串結尾是否有某字符串,返回布爾值
  4. repeat——返回一個重複了n次的新字符串。
  5. trimStart——消除字符串頭部空格
  6. trimEnd——消除尾部空格
  7. padStart——從頭部補全字符串
  8. padEnd——從尾部補全字符串
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章