今天刷知乎的时候无意间发现的一组JavaScript试题,做了一下...共35道,对14,错17,十分惨痛,在这里整理一下这些题目,梳理一下其中的知识点
1.
> ["1", "2", "3"].map(parseInt)
[ 1, NaN, NaN ]
这里涉及到的知识点是parseInt函数
parseInt函数接受两个参数分别为String和radix
第一个参数代表被解析的字符串,第二个参数表示的是要解析的数字的基数,是一个2~36之间的数
注意 如果radix写作0或者省略的话,js解释器会把他当做10来处理,若参数小于2或者大于36,则返回NaN
再来看这个题目,map传递过来的是三个参数(element, index, array),然而parseInt是只能接受两个参数的
这也就意味着代码执行了这几个步骤
> parseInt("3", 2)
NaN
> parseInt("1", 0)
1
> parseInt("2",1)
NaN
> parseInt("3", 2)
NaN
2.
> [typeof null, null instanceof Object]
[ 'object', false ]
typeof对原生非可调用对象会始终返回Object,这里null被认为是一个空的对象引用
3.
[ [3,2,1].reduce(Math.pow), [].reduce(Math.pow)] ]
在一个空数组上执行reduce函数会跑出初始化错误的异常TypeError
4.
> var val = 'smtg';console.log('Value is ' + (val === 'smtg') ? 'Something' : 'Nothing');
Something
这里涉及到js的运算符优先级,考虑括号中的表达式,得出运算顺序为() , + , ?:
5.
> (function () {
... if (typeof name === 'undefined') {
..... var name = 'Jack';
..... console.log('Goodbye ' + name);
..... } else {
..... console.log('Hello '

本文整理了一组JavaScript试题,共35道,涉及parseInt函数的解析规则、switch语句的工作原理、字符串与数字的转换等易混淆知识点。通过解析这些题目,有助于深化对JavaScript的理解。
最低0.47元/天 解锁文章

896

被折叠的 条评论
为什么被折叠?



