一组JavaScript试题(包含一些容易混淆的知识点)

本文整理了一组JavaScript试题,共35道,涉及parseInt函数的解析规则、switch语句的工作原理、字符串与数字的转换等易混淆知识点。通过解析这些题目,有助于深化对JavaScript的理解。
摘要由CSDN通过智能技术生成

今天刷知乎的时候无意间发现的一组JavaScript试题,做了一下...共35道,对14,错17,十分惨痛,在这里整理一下这些题目,梳理一下其中的知识点

JavaScript专业八级测试,你能做对几道?

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 ' 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值