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'。