在js第一行寫上'use strict' 將開啓嚴格模式javascript
在嚴格模式下,聲明變量時不容許不加var;java
一個字符串若是想要換行,以前只能使用c#
alert("這是\r\n一個\r\n多行\r\n字符串");
ES6如今新增了一個新的方法數組
alert(`這是 一個 多行 字符串`);
使用這種方法能夠直接輸出換行符
相似於c#裏面的@函數
它就是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方法包含首,可是不包含尾索引
在數組最後追加/刪除一個ip
在數組頭部追加/刪除一個element
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和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); });
和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...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); });