http://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000
jQuery,underscore
Map Map
是一组键值对的结构,具有极快的查找速度。 Set Set
和Map
类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在Set
中,没有重复的key。
var m = new Map([['lengpeng','lp'],['hello','helloworld']]); //初始化
m.get('lengpeng'); //获取
m.get('hello');
m.set('11','222222');//添加
m.get('11');
m.set('11','3456');// 修改
m.has('11');//判断是否有
m.delete('11');//删除
iterable ES6标准引入了新的iterable
类型,Array
、Map
和Set
都属于iterable
类型。具有iterable
类型的集合可以通过新的for ... of
循环来遍历。
更好的方式是直接使用iterable
内置的forEach
方法,它接收一个函数,每次迭代就自动回调该函数。
var s1 = new Set();
var s2= new Set([1,2,3]);
var arr=['A','B','C'];
for(var x of arr){
console.log(x);
}
for(var x of s2){
console.log(x);
}
for(var x of m){
console.log(x);
}
console.log('Map Set Iterable');
arr.forEach(function(element,index,array){
console.log(element+' '+ index +' '+ array);
});
高阶函数:map reduce filter sort
-
不要使用
new Number()
、new Boolean()
、new String()
创建包装对象; -
用
parseInt()
或parseFloat()
来转换任意类型到number
; -
用
String()
来转换任意类型到string
,或者直接调用某个对象的toString()
方法; -
通常不必把任意类型转换为
boolean
再判断,因为可以直接写if (myVar) {...}
; -
typeof
操作符可以判断出number
、boolean
、string
、function
和undefined
; -
判断
Array
要使用Array.isArray(arr)
; -
判断
null
请使用myVar === null
; -
判断某个全局变量是否存在用
typeof window.myVar === 'undefined'
; -
函数内部判断某个变量是否存在用
typeof myVar === 'undefined'
。