看完标题,入坑过的同学脑海里很快会浮现出这道经典面试题,没碰到过的同学不妨跟着楼主先来复习一遍 parseInt 的用法(主要参考 MDN)。

parseInt 是 JavaScript 中的一个全局函数(顶级函数),它会将给定的字符串以指定基数(radix/base)解析成为整数。

它的语法非常简单:

复制代码parseInt(string, radix)

第一个参数 string 是要被解析的值,如果参数不是一个字符串,则将其转换为字符串,字符串开头的空白符将会被忽略。而第二个参数 radix 是一个 2 到 36 之间的整数值,用于指定转换中采用的基数,如果不传入,默认是 10,即按照十进制转换,这里要注意一点,如果第二个参数传入 0,和传入 10 以及不传入第二个参数等效。函数返回一个整数值,如果解析过程中发生错误,将返回 NaN。

返回 NaN 的主要有以下几种情况:

  • 被解析参数的第一个字符无法被转化成数值类型

  • 被解析参数数值太大,不是 radix 进制下的合法数字

  • radix 不在 [2, 36] 范围内(注意其实 0 也是可以的)

复制代码console.log(parseInt('hello', 2)); // NaNconsole.log(parseInt('3', 2)); // NaN, 3 不是合法的二进制数字console.log(parseInt('3', 100)); // NaN

其实实际开发中我很少用 parseInt,而是用 + 和 ~~ 代替,因为它实在是太长了,但是很显然 parseInt 的使用范围更广。

简单回顾了 parseInt 的用法,我们来看这道题:

        		

延伸阅读

学习是年轻人改变自己的最好方式-Java培训,做最负责任的教育,学习改变命运,软件学习,再就业,大学生如何就业,帮大学生找到好工作,lphotoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训学习是年轻人改变自己的最好方式