ES6 (总结篇二)
一.字符串擴展
1.indexOf和index
之前做項目,遇到判斷一個字符串是否存在,不清楚用index還是indexOf,百度之后,用了indexOf。indexOf:返回某個指定的字符串值在字符串中首次出現的位置 ,如果沒有找到這個值就返回-1,這一點很好用,注意,indexOf對大小寫敏感。index返回下拉列表中選項的索引位置。
而ES6提供了3種判斷字符串是否存在的方法。①.includes() 返回布爾值,是否找到該字符串 ②.startsWith() ③.endsWith() 他們可以提供第二個參數,表示搜索的位置,endsWith()和他們不同,他是針對前n個字符,二其他的是針對從第n個開始直到結束。
二.函數的擴展
1.箭頭函數使用注意事項:
(1).函數體內的this對象,就是定義時所在的對象,而不是使用時所在的對象
(2).不可以當作構造函數,也就是說,不可以使用new命令,否則會拋出錯誤
(3).不可以使用arguments對象,該對象在函數體內不存在,如果要用,可以用rest參數代替
(4).不可以使用yield命令,因此箭頭函數不能用作Generator函數
注意,this對象的指向是可變的,但是在箭頭函數中,它是固定的
function foo() {setTimeout(() => {console.log('id:', this.id);}, 100); } var id = 21; foo.call({ id: 42 }); // id: 42//如果是普通函數,執行時this應該指向全局對象window,這時輸出21
?三.數組擴展
1.Rest
rest參數,形式為 "...變量名",用于獲取函數多余參數,將多余參數放在數組中,和擴展運算符可以理解為互為逆函數
擴展運算符:形式為"...",它是rest參數的逆運算,將一個數組轉為用逗號分隔的參數序列
例如:var list = ['大家好'] ?list.length =1,list[0]=大家好
var list = [...'大家好'] ?list.length =3,list[0]=大,list[1]=家,list[2]=好
擴展運算符最有用之一是:Math.max(...arr),比較數組中的最大值 ES5的寫法是:Math.max.apply(null,[1,2,3])
2.擴展運算符的作用
(1).復制數組
// ES5 const a1 = [1,2] const a2 = a1.concat() // ES6 const a1 = [1,2] const a2 = [...a1] 或者 const[...a2] = a1(2).合并數組
// ES5 [1, 2].concat(more) // ES6 [1, 2, ...more]var arr1 = ['a', 'b']; var arr2 = ['c']; var arr3 = ['d', 'e'];// ES5的合并數組 arr1.concat(arr2, arr3); // [ 'a', 'b', 'c', 'd', 'e' ]// ES6的合并數組 [...arr1, ...arr2, ...arr3] // [ 'a', 'b', 'c', 'd', 'e' ](3).與解構賦值結合(如果將擴展運算符用于數組賦值,只能放在參數的最后一位,否則報錯)
// ES5 a = list[0], rest = list.slice(1) // ES6 [a, ...rest] = list?
轉載于:https://www.cnblogs.com/alhh/p/8252211.html
總結
以上是生活随笔為你收集整理的ES6 (总结篇二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JSON转对象、List
- 下一篇: 微信小程序搜索关键字高亮和ctrl+f搜