JavaScript的一个parseInt易错点
来源:互联网 发布:成都做seo外包的 编辑:程序博客网 时间:2024/06/14 14:27
参考:廖雪峰老师的javascript教程
小明希望利用map()把字符串变成整数,他写的代码很简洁:
'use strict';var arr = ['1', '2', '3'];var r;r = arr.map(parseInt);alert('[' + r[0] + ', ' + r[1] + ', ' + r[2] + ']');
结果竟然是[1, NaN, NaN],小明百思不得其解,请帮他找到原因并修正代码。
arr.map会为调用的函数传入以下三个参数:
1、currentValue,数组中当前被传递的元素。
2、index,数组中当前被传递的元素的索引。
3、array,调用 map 方法的数组。
而parseInt可以接受两个参数:
1、string:必需。要被解析的字符串。
2、radix:可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。
如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。
如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。
所以实际上是执行了:
parseInt(‘1’,0,[‘1’,’2’,’3’]);//1
parseInt(‘2’,1,[‘1’,’2’,’3’]);//NaN
parseInt(‘3’,2,[‘1’,’2’,’3’]);//NaN
所以修正的代码应为:
r = arr.map(function(x) { return parseInt(x,10) });或者r = arr.map(function(x) { return parseInt(x) });
0 0
- JavaScript的一个parseInt易错点
- JavaScript的parseInt
- JavaScript 的 parseInt('08')
- javascript的parseInt函数
- JavaScript 的 parseInt('08')
- 关于javascript中parseInt函数的一个所谓的bug
- 关于javascript中parseInt函数的一个所谓的bug
- 暴汗,关于javascript的parseInt()的一个问题
- javascript关于parseInt("08")返回0的一个常识问题
- javascript的parseInt的用法
- javaScript parseInt 方法的运用。
- javascript中parseInt的问题 - -
- JavaScript 中变态的 parseInt
- javascript parseInt()的问题
- javascript的parseInt函数(转)
- 傳說中 JavaScript 的 parseInt('08')
- javascript中parseInt的问题
- 傳說中 JavaScript 的 parseInt('08')
- 使用ln命令在Linux系统中创建连接文件
- M.2扫盲篇之M.2 PCIE SSD接口定义
- FFmpeg & 流媒体
- ------------解决 svchost 占用过高及磁盘最长活时间过高问题------win---------
- 迪杰斯特拉算法
- JavaScript的一个parseInt易错点
- 计算器的实现
- 利用Druid实现应用,SQL监控和防SQL注入
- myeclipse jdk设置相关问题
- 【leetcode 003】Longest Palindromic Substring || ZigZag Conversion
- 微信公众号开发-开发环境搭建并通过java代码获取微信access_token
- 彩球 概率期望
- u-boot中SPL源代码分析
- Hadoop运行job程序报错 exitCode=255