map()
map是Array原型中的一个方法:将原数组中的每一个元素传递给一个函数,然后返回一个新数组。上代码:
//现我想使用map函数记录每个元素,应将console.log作为传参
[1,2,3,4,5].map(console.log)

console.log都记录了索引和完整数组,而不仅仅是值。经上所述,得:在map()函数中,每次迭代都有三个参数:currentVal、currentIndex、array。
//上面例子等同于
[1,2,3,4,5].map(
(val,index,array) => console.log(val,index,array)
)
parseInt()
parseInt()有两个参数:string和radix(进制),如果radix为0或假值,则默认进制基数为10。
parseInt('11'); =>11
parseInt('11',1); =>NaN,在进制基数为1的系统中,任何数都输NaN
parseInt('11',2); =>3,2进制中符号11表示数字3
parseInt('11',16); =>17
parseInt('11',undefined); =>11
parseInt('11',0) =>11
题1:
['1','7','11'].map(parseInt)返回什么,为什么?
push()
Array的push底层实现依赖于数组的length属性
//push函数直接将传参赋值给obj[length]位置,然后改变length
Array.prototype.push = function(rest){
for(var i = 0;i<arguments.length;i++){
this[this.length++] = arguments[i]
}
return this.length
}
Array.prototype.push = function(...rest){
this.splice(this.length,0,...rest);
return this.length;
}
题2:
var obj = {
'2':3,
'3':4,
length:2,
push:Array.prototype.push
}
obj.push(1);
obj.push(2);
debounce
throttle
答案
题1
返回:

('1',0,array)=>{parseInt('1',0)},10进制下的符号'1'值是1第二次迭代:
('7',1,array)=>{parseInt('7',1)},进制1下任何符号皆为NaN第三次迭代:
('11',2,array)=>{parseInt('11',2)},2进制下符号'11'值是3
题2

未完。。。本着学习和总结的心态,若文中有什么问题或者其他想法请大家指出