注:本篇博客的题目出自于博主,小平果118博客,题目地址:http://blog.csdn.net/i10630226/article/details/49765737,由于该博客并没有抛出来来答案和解析,我在这里以自己的理解来做一下这些题目。欢迎大家与我交流!下面进入正题,来看题目:
1,以下表达式的运行结果是:
["1","2","3"].map(parseInt)
A.["1","2","3"]
B.[1,2,3]
C.[0,1,2]
D.其他
这道题考的非常细致,答案应该是 D ,输出的为[1, NaN, NaN]
解析:这道题我们需要注意的parseInt
函数的参数,这个函数的参数有两个,一个是必须参数,也就是需要被解析的字符串;另一个是数字基数,是一个可选参数,如果我们传入的是0或者不传入的话,默认以十进制来解析,如果该参数小于
parseInt()
将返回 NaN
。
下面来看我们的题目,首先会是parseInt("1", 0)
,正如我们以上所说以十进制来进行解析,所以就得到1
,然后是parseInt("2", 1)
,由于基数小于 2 ,返回的就是NaN
,最后是parseInt("3", 2)
,由于二进制的每位最大值只能够为
我们现在对题主给的这个函数做一下改变["1","2","3"].map(parseFloat)
的话,我们会得到的是[1, 2, 3]
,这是因为我们的parseFloat
的参数只有一个,那就是被解析的字符串。
我们从这题可以看出parseFloat
与parseInt
的区别:
1. 前者返回一个浮点数;后者返回一个整数
2. 前者只能在十进制下解析,只有一个参数;后者可以在二进制到三十六进制下进行解析,有两个参数。
2,以下表达式的运行结果是:
[typeof null, null instanceof Object]
A.["object",false]
B.[null,false]
C.["object",true]
D.其他
这题主要考的是null
,答案为 B
解析:null
只是一个空指针引用,个人的认知是typeof
返回的只是基础数据类型,也就是Number,Null,Undefined,Boolean,String,Symbol,Object
,在js
中属于typeof null
返回object
可以说是一个历史错误,没有什么为什么,它就是这样。
然而instanceof
却是十分有意思,其目的是检测一个对象是不是为另一个对象的实例,由于null
只是一个空指针引用,所以null
肯定不是有new Object()
得到的,所以返回的false
。
3,以下表达式的运行结果是:
[[3,2,1].reduce(Math.pow),[].reduce(Math.pow)]
A.报错
B.[9,0]
C.[9,NaN]
D.[9,undefined]
这题,答案为
解析:因为调用空数组不带默认参数地调用reduce()
方法会报错,当只有一个元素的时候(数组只有一个元素,且没有初始参数;数组为空,但是含有初始参数),reduce()
方法只会简单的返回这个数值,而不会调用化简操作,但是我仍然需要知道一下前面的那个值为什么为 9 ,我们第一次调用函数时,第一个参数为初始值,假若没有初始值的话,则将数组的第一个元素作为初始值,我们第一次传入的参数就为