parseInt

454 阅读1分钟

parseInt

W3C上的解释: https://www.w3school.com.cn/jsref/jsref_parseInt.asp

定义和用法
    parseInt() 函数可解析一个字符串,并返回一个整数。

语法
    parseInt(string, radix)
    
string	必需。要被解析的字符串。
radix	可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。

        如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。

        如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。

['1', '2', '3'].map(parseInt) 输出什么?

map解析

// 当map函数内传一个参数时
let arr = ['1','2','3'].map(function(item){
	return item;
});
["1", "2", "3"]

// 当map函数内传两个参数时
let arr = ['1','2','3'].map(function(item, key){
	//2个参数
	return item+','+key;
});
["1,0","2,1","3,2"]

// 其实map是可以传三个参数
let arr = ['1','2','3'].map(function(item, key,arrA){
	console.log(arrA);  //["1", "2", "3"]
	return item+','+key+','+arrA;
});
["1,0,1,2,3", "2,1,1,2,3", "3,2,1,2,3"]

解析['1', '2', '3','10'].map(parseInt)

['1', '2', '3','10'].map(parseInt)
// 相当于
['1', '2','3', '10'].map(function(item,index){
    parseInt(item,index);
})
// 相当于
// parseInt(string, radix)
parseInt('1',0) == parseInt('1');  
// radix为0是,相当于是十进制.   所以为   1
parseInt('2',1); 
// radix必须大于2小于36(没有一进制)        所以为   NaN
parseInt('3',2);
// 二进制中只有0和1,                        所以为  NaN
parseInt('10',3);
// 三进制10表示的十进制为3                  所以为  3

所以答案为 [1,NaN,NaN,3];