1.进制问题
进制有二进制,八进制,十进制,十六进制
- 二进制:只有0,1
- 八进制:只有0、1、2、3、4、5、6、7
- 十进制:只有0,1、2、3、4、5、6、7、8、9
- 十六进制:有0,1、2、3、4、5、6、7、8、9、A、B、C、D、E、F
我们写css用的色值 #f5f5f5 就是16进制
2.parseInt 方法
parseInt() 函数可解析一个字符串,并返回一个整数。
两个参数:
- string 要解析的字符串
- radix 要解析的数字的基数,我们可以理解成,要把字符串解析成多少进制,取值是 2 ~ 36,如果没有参数,或者是0,按10进制处理
parseInt('3')//3 如果没有参数,或者是0,按10进制处理
parseInt('3',1) //NaN 因为参数2取值区间为2-36,不满足直接返回NaN
parseInt('3',2) //NaN 因为2进制只有0,1,所以parseInt无法将3转换成二进制,只好返回NaN
parseInt('1001',2) //9 将'1001'转换为二进制
parseInt('98',8) //NaN 因为8进制只有0-7,所以parseInt无法将‘98’转换成八进制,只好返回NaN
parseInt('f5f5f5',16) // 16119285 将'f5f5f5'转换成16进制
parseInt('f5f5f5',37) //NaN 因为参数2取值区间为2-36,不满足直接返回NaN
parseInt('3',3) //同理,我们可以理解为想要转换为三进制,但是三进制只有0,1,2,所以无法将'3'转换成三进制只能返回NaN
3.map方法
对数组进行循环遍历,返回新的数组
- 参数1:遍历时当前元素的值
- 参数2:遍历时的索引值
- 参数3:原始数组对象
let re= ['a','b','c','d'].map(function(curValue,index,arr){
console.log(curValue) // 'a','b','c','d'
console.log(index) // 0 1 2 3
console.log(arr) // ['a','b','c','d']
return 'a';
})
4.改造map方法
将map的匿名函数变成方法调用,相当于map的参数也传递给了fn
function fn(curValue,index,arr){
console.log(curValue) // 'a','b','c','d'
console.log(index) // 0 1 2 3
console.log(arr) // ['a','b','c','d']
return 'a';
}
let re= ['a','b','c','d'].map(fn)
5.将map匿名函数换成parseInt
let re= ['1','2','3','4'].map(parseInt);
相当于执行了:
parseInt('1',0) // 1 如果没有参数,或者是0,按10进制处理
parseInt('2',1)// NaN 参数2取值区间为2-36
parseInt('3',2)// NaN 2进制只有0,1
parseInt('4',3)// NaN 2进制只有0,1,2
所以最后执行结果是 [1,NaN,NaN,NaN]
网友评论