二者同为转型函数 ,但是昵,p(parseInt)说它牛,n(Number)说它更牛,那你说嘞。那来看看。先上个例子瞅瞅
['1','2','3'].map(parseInt);//[1,NaN,NaN]
['1','2','3'].map(Number);//[1,2,3]
你瞅瞅返回了啥,n说你返回的NaN是干嘛的喽,你看看我,多好,该是啥就是啥。
p不服气了,来看看我,我是需要两个参数的:
- 转型函数parseInt()可以接收两个参数,第一个参数是需要解析的数,第二个参数是基数,介于2到36之间,表示数字在解析的时候使用的进制(若解析的参数不在基数的范围内的,则返回NaN)*
n说,你不要太嚣张,我一个参数就好。
- 转型函数Number只接受一个参数,我要解析的值。*
你们也说完了,来瞅瞅我们的例子:
分析一下我们看到的Array对象的map方法(),map方法利用回掉函数的结果组成一个新的数组,包括三个值:当前元素,元素索引和原始数组,
来看看你p啊,把你传给map函数,相当于调用了三遍yourself
parseInt("1",0);//1
parseInt("2",1);//NaN(基数超范围啦)
parseInt("3",2);//NaN
再来看看你的对手n,人家虽然也是被调用了三次,但是因为你们需要的原料不一样,人家只需要一个参数,返回的内容也就不一样了(人家都是按时进制来计算的,下面的时结果)
Number("1");//1
Number("2");//2
Number("3");//3