javascript 函數(ES6)

嚴格模式

在js第一行寫上'use strict' 將開啓嚴格模式javascript

在嚴格模式下,聲明變量時不容許不加var;java

多行字符串

一個字符串若是想要換行,以前只能使用c#

alert("這是\r\n一個\r\n多行\r\n字符串");

ES6如今新增了一個新的方法數組

alert(`這是
       一個
       多行
       字符串`);

使用這種方法能夠直接輸出換行符
相似於c#裏面的@函數

Slice

它就是js版本的substriingcode

var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
arr.slice(0, 3); // 從索引0開始,到索引3結束,但不包括索引3: ['A', 'B', 'C']
arr.slice(3); // 從索引3開始到結束: ['D', 'E', 'F', 'G']

Slice方法包含首,可是不包含尾索引

push 和 pop

在數組最後追加/刪除一個ip

unshift 和 shift

在數組頭部追加/刪除一個element

Map

map是一組key-value的組合。能夠極快的查找字符串

// 初始化一個map
var m = new Map([['xyy','yebao'],['lz','xiubao'],['hali','habao']]);
// 添加一個新的key-value組合
m.set('santong','alex');
// 刪除一個key-value
m.delete('santong');
// 根據key獲取
m.get('xyy');
// 判斷是否存在
m.has('xyy');

Set

Set和map相似,是一組key的組合。
可是隻保存key,不保存value。
同時key不會重複

// 雖然聲明瞭不少重複的,可是實際上 s = [1,2,3,4,5]
var s = new Set([1,1,1,1,2,2,3,3,4,4,4,5]);

 alert(typeof s);
// 打印每一個key
 s.forEach(function(item){
          alert(item);
        });

iterable

和Map、Set同樣,iterable也是ES6新引入的語法。

這是由於array可使用下標來訪問,而Map和Set則不行。
爲了統一集合類型,ES6引入了新的類型----iterable。
Array,Map和Set均屬於iterable類型。
具備iterable類型的集合可使用新的for...of方法來遍歷

var s = new Set([1,1,1,2,3,4,5,5,5,6,6,7]);
        
        for(var t of s){
          alert(t);
        }

for...of 和in最大的區別有兩點:

  • 返回的不是屬性名,而是每一個元素
  • 修復了for...in的歷史遺留問題,只會返回集合自己的元素

固然除了使用for...of以外,更好的遍歷集合的方法是使用forEach方法

// array 中forEach的回調函數參數
var arr = ['a','b','c'];
// 當前元素,當前序號,集合自己
arr.forEach(function(element,index,arr){
    alert(element);
    alert(index);
    alert(arr);
});

// Set中的回調函數參數
 var s = new Set([1,2,3]);

// 由於Set並無索引,所以前兩個參數都是當前元素,最後一個參數是集合自己
s.forEach(function(element,element2,s){
          alert(element);
          alert(element2);
          alert(s);

        });

// Map中的回調函數參數        
var m = new Map([['lz','xiubao'],['xyy','yebao'],['hali','habao']]);

        m.forEach(function(value,key,m){
          alert(value);
          alert(key);
          alert(m);

        });
相關文章
相關標籤/搜索