["1", "2", "3"].map(parseInt)为什么是[1,NaN,NaN] ?

1.NaN是什么? NaN是什么? 在JavaScript中,NaN代表的不是一个具体的数值。在进行不正当的运算之后,得到的结果,如图所示。是因为在不能正确的执行而出现了这样一个结果. let a='helloworld'; console.log(a*3); 像这种,并不能得到数值的情况,就会出现结果NaN。 因为NaN不代表任何数据,也就是说,它不等于任何值,当然也包括,不等于自己。 console.log(NaN==NaN); 但是它是属于Number类型。 console.log(typeof(NaN)) 为此,我们可以通过与NaN有关的一些方法,进行判断得到的结果是否是NaN也就是isN 立即下载

[“1”, “2”, “3”].map(parseInt)

在学习前端中,我遇到了这么一道题。

var a = ["1", "2", "3"].map(parseInt);
console.log(a);	//	[1,NaN, NaN];

下面我们看一下 map 和 parse 这两种方法

1. map
  • map函数的参数是一个函数。而传入的函数里一般需要一个或者两个参数。即
var a = [1,2,3];
//一个参数
a.map(function(item){
	console.log(item);	//	1 2 3
})

//	两个参数
a.map(function(item,index){
	//	item 是值,index是下标
	console.log(item + " " + index); 
	//	1 0		2 1		3 2
})
2. parseInt
  • 用于解析字符串,并且返回一个整数
  • parseInt(string, radix) 其中string是传入的字符串,必选,而radix是基数,即让转化的整数以几进制返回。
  • radix:数字2-36之前的整型,默认使用10,表示十进制。这个参数的意义是指把前面的字符看作是多少进制的数字,所谓的基数。

parseInt(‘123’, 5) // 38
将’123’看作5进制数,返回十进制数38 => 15^2 + 25^1 + 3*5^0 = 38

  需要注意的是,如果radix在2-36之外会返回NaN。
  在没有指定基数,或者基数为 0 的情况下,JavaScript 作如下处理:
  1. 如果字符串 string 以"0x"或者"0X"开头, 则基数是16 (16进制).
  2. 如果字符串 string 以其它任何值开头,则基数是10 (十进制)。
  3. 如果字符串 string 以"0"开头, 基数是8(八进制)或者10(十进制),那么具体是
     哪个基数 由实现环境决定。ECMAScript 5 规定使用10,但是并不是所有的浏览器
     都遵循这个规定。因此,永远都要明确给出radix参数的值。

运行过程:

因为parse最多接收两个参数,则
传入数组中的value和index,结果如下:

parseInt('1', 0); // 1 (规定使用10来作为基数,相当于用十进制来表示1)
parseInt('2', 1); // NaN (radix传的是1,超出了radix的界限)
parseInt('3', 2); // NaN (以二进制来表示3是不可能的,因此返回NaN)
以上就是我的讲解。
练习:

如果各位读者觉得你懂了,给你出道题吧。

var a = ["1", "2", "1", "3"].map(parseInt);
console.log(a);

会输出多少呢?

PX4从放弃到精通(十九):串口驱动 文章目录前言一、创建进程二、编写驱动 前言 硬件: PIXHAWK4 USB转串口模块 软件: Ubuntu18.04 PX4 1.11.3固件 QGC地面站 串口助手 一、创建进程 参考:https://mbot1.blog.csdn.net/article/details/122587617 二、编写驱动 ......... 阅读详情

相关推荐

IC/FPGA笔试/面试题分析(七)建立时间和保持时间类型考题汇总分析

自从召集2020届校招同行加入新建立的“IC/FPGA校招笔试面试交流群“,见识到了很多关于建立时间和保持时间分析的题目,在为别人解答疑惑,以及别人为自己解答疑惑的同时,自己对于知识的理解更加深刻了。 对于建立时间而言,从单独的对触发器的建立时间和保持时间的分析到了对电路(系统)的建立时间到保持时间的分析,前者是核心,后者是扩展,后者建立在前者的基础之上进行推到得到,同时也是芯片内部实际遵循的时...

Reborn Lee 1万+

js 为什么计算结果老是出现NaN

可能原因: 1、操作的两个数,类型不一致 2、有一个值为NaN,计算後为NaNjs提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)。parseInt(“1234blue”); //returns 1234 parseInt(“0xA”); //returns 10 parseInt(“22.5”); //returns 22 parse

D_Boat的博客 6283

鸿蒙OS开机动画背后的秘密:从代码到视觉的完整解析(附源码分析)

本文深入解析了鸿蒙OS开机动画的系统级实现原理。从bootanimation服务的启动配置、与Render Service的协同,到基于VSync信号的帧率同步与绘制流水线,结合OpenHarmony源码进行了逐行解读。文章揭示了其事件驱动的优雅退出机制,并探讨了视频支持、多屏适配等高级特性与定制化可能,为开发者理解鸿蒙图形子系统提供了硬核技术视角。

sony5的博客 973

parseInt()函数返回NaN

当我从前台获取后台传入的数据时,数据一直显示NaN(not a number),后来重启过一遍就好了。 当然那是我最后使用的办法,项目启动时间有点长,不是很愿意。 顺手给出点用法吧: 在使用parseInt(string , radix) 一定会以字符串的形式去解析第一个参数,当不是字符串类型时尤其要注意类型转换时有没有可能出错。 radix:2~36之间的一个整数值,用于指定转换中采用...

精神病 8417

horizon之为connection服务器配置证书

打开connection1服务器(connection2 同connection1)再输入connection1的IP地址 可通过域名和IP地址进行登录。这时候用域名登录就发现证书已经没有警告了。win+R 调出“运行”,输入mmc。connection2 同上。如果还有报错请重启一下服务器。打开connection1。可以把这个先删掉 没用。打开DC_01服务器。右键选择证书颁发机构。友好名称只能是vdm。重启之后就没有报错了。

送个祝福给小豪的博客 2961

硬核拆解华为/大疆/小米硬件面试真题:手撕电路+考点思维导图(附答案)

设计一个增益为20dB、带宽≥100kHz的同相放大器,电源电压±5V,要求输出摆幅≥8V。12位ADC的参考电压2.5V,输入信号1kHz正弦波,峰峰值2V。输入24V转5V/10A的同步降压电路,开关频率500kHz,计算MOSFET的损耗并选择型号(需提供TI官网截图)。设计无人机图传系统,要求1080P@30fps,传输距离2km。FPGA设计中,100MHz时钟域到50MHz时钟域传输32位数据,给出同步方案并画时序图。“设计一个输入12V、输出5V/3A的同步降压电路,给出关键参数计算”

qq_63103361的博客 3539

解惑 ["1", "2", "3"].map(parseInt) 为何返回[1,NaN,NaN]

javascript中的parseInt与map函数都是常用的函数,可是 ["1", "2", "3"].map(parseInt) 为何返回不是[1,2,3]却是[1,NaN,NaN]? 这涉及到是否深入理解两个函数的格式与参数含义。 首先根据我对两个函数用法的了解,猜测是由于parseInt(string, radix) 的参数radix必须介于2~36之间,而且字符串string中的数字

freshlover的专栏 3万+

测站坐标系统 -- 东北天(ENU)坐标系、站心坐标系

测站坐标系统以观测站(或地面上某一个观测点为中心建立坐标系统,将这类坐标系称为测站坐标系统。测站坐标系通常以用户所在的位置点P为坐标原点三个坐标轴分别是相互垂直的东向北向和天向,因而测站坐标系又称为东北天(ENU)坐标系。由于测站坐标系以站心为坐标原点,因此也称为站心坐标系。如图所示,测站坐标系的天向与大地坐标系(LLA经纬度坐标系)在此点的高程方向一致。测站坐标系固定在地球上,本质上是一种地固坐标系。(1)以站心为坐标原点。(2)Z轴与站心点的椭球法线重合,向上为正。

qq_43381998的博客 1万+

为什么 ["1", "2", "3"].map(parseInt) 返回 [1,NaN,NaN]?

在 javascript 中["1","2","3"].map(parseInt)为何返回不是[1,2,3]却是[1,NaN,NaN]? 我们首先回顾一下parseInt()个map()两个函数的用法: parseInt() 函数 定义和用法 parseInt()函数可解析一个字符串,并返回一个整数。 语法 parseInt(string...

weixin_34400525的博客 677

SOC设计必看!Tessent DRC检查中最容易踩的5个坑(附解决方案)

本文针对SOC设计中Tessent DRC检查的常见问题,详细分析了5个最易忽视的陷阱,包括时钟域交叉、扫描链虚连、多电压域规则等,并提供专业解决方案。特别针对芯片设计中的DFT验证难点,分享了经过验证的调试方法和Tessent工具使用技巧,帮助工程师提升DRC检查效率。

weixin_29280657的博客 496

Android影像系统架构专家面试指南

传音控股招聘影像系统架构专家,要求8年以上开发经验,5年架构设计经验,精通Android Camera开发及性能优化。该职位需负责手机影像软件架构设计、技术选型及跨平台适配,重点解决"快稳省"体验优化。面试评估聚焦三大维度:技术方面考察HAL层架构设计、多帧合成优化等能力;系统开发关注低光降噪等场景的算力平衡;团队管理侧重跨部门协作与项目交付。候选人需展现对CamX-CHI等架构的深入理解,具备量化分析性能指标的能力,并能主导旗舰机影像项目全周期落地。

郑伟强dev的专栏 945

["1", "2", "3"].map(parseInt) 为什么返回[1,NaN,NaN]

javascript中的parseInt与map函数都是常用的函数,可是 [“1”, “2”, “3”].map(parseInt) 为何返回不是[1,2,3]却是[1,NaN,NaN]? 这涉及到是否深入理解两个函数的格式与参数含义。 首先根据我对两个函数用法的了解,猜测是由于parseInt(string, radix) 的参数radix必须介于2~36之间,而且字符串string中的数字不能...

逆水行舟,不进则退 848

【立创EDA-PCB设计基础】1.嘉立创EDA专业版软件安装+PCB基本概念+原理图绘制

本文详解PCB基本概念以及实现MCU最小系统原理图的绘制(原理图包括MCU芯片GD32F103C8T6、外部晶振、输出端口、USB输入口、5v转3v3稳压输出、复位按键、唤醒按键、LED)及嘉立创EDA专业版软件安装。为本专栏【立创EDA-PCB设计基础】后面章节实现PCB绘制做准备。

嵌入式阿齐Archie 3万+

["1", "2", "3"].map(parseInt)为什么返回 [1,NaN,NaN]

parseInt基本用法 定义: parseInt() 函数可解析一个字符串,并返回一个整数。 语法: parseInt(string, radix) 说明: string:必需。要被解析的字符串。 radix:可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。 如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开...

个人前端记录 1022

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

关于 ["1", "2", "3"].map(parseInt) 为什么返回 [1,NaN,NaN]?

console.log(["1", "2", "3"].map(parseInt)); 为什么没有返回[1,2,3]返回的却是[1,NaN,NaN]? 我们先单独看看map里面运行会有哪些数据 var a = ["1","2","3"]; a.map(function (value,index) { console.log("value:

controllerha的博客 1922

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

面试题:为什么 ["1", "2", "3"].map(parseInt) 返回 [1,NaN,NaN]?

在 javascript 中 ["1","2","3"].map(parseInt) 为何返回不是 [1,2,3] 却是 [1,NaN,NaN]? 我们首先回顾一下 parseInt() 个 map() 两个函数的用法: parseInt() 函数 定义和用法 parseInt() 函数可解析一个字符串,并返回一个整数。 语法 parseInt(string

美丽的泡沫 2629

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

为什么 ["1", "2", "3"].map(parseInt) 返回 [1,NaN,NaN] ---续

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010703975/article/details/50261441 最近碰到了[‘1’,’2’,’3’].map(parseInt)这种看似不起眼陷阱却极大的问题。...

ddwddw4的博客 267

[转载]JavaScript Puzzlers 解密:为什么 ["1", "2", "3"].map(parseInt) 返回 [1, NaN, NaN]?

JavaScript Puzzlers 解密:为什么 ["1", "2", "3"].map(parseInt) 返回 [1, NaN, NaN]? JavaScript Puzzlers!被称为 javascript 界的专业八级测验,感兴趣的 jser 可以去试试。 我试了一下, 36 道题只做对了 19 道, 算下来正确率为 53%,还没有及格。 第一题为[...

weixin_30888413的博客 98

JavaScript Puzzlers 解密(一):为什么 ["1", "2", "3"].map(parseInt) 返回 [1, NaN, NaN]?...

JavaScript Puzzlers! 被称为 javascript 界的专业八级测验,感兴趣的 jser 可以去试试。 我试了一下, 36 道题只做对了 19 道, 算下来正确率为 53%,还没有及格。 第一题为 ["1", "2", "3"].map(parseInt) 的返回值。 > ["1", "2", "3"].map(parseInt) [1, NaN,

justJavaC的专栏 344

["1", "2", "3"].map(parseInt) 答案是多少?

parseInt() 函数能解析一个字符串,并返回一个整数,需要两个参数 (val, radix), 其中 radix 表示要解析的数字的基数。【该值介于 2 ~ 36 之间,并且字符串中的数字不能大于radix才能正确返回数字结果值】; 但此处 map 传了 3 个 (element, index, array),我们重写parseInt函数测试一下是否符合上面的规则。 fu...

weixin_30750335的博客 174

["1","2","3"].map(parseInt)为什么是[1,NaN,NaN]

首先,要想理解这个结果,就必须先深入理解parseInt函数和map函数的含义。 parseInt() 用法:将传入的字符串解析成数值,并返回一个结果。 语法:parseInt(string,radix) string 必填。待转换的字符串参数。 radix 选填,若忽略次参数或传入0,则以十进制来解析。转换使用的基数(即多少进制)。取值范围在2~36之间,如果不...

weixin_30287169的博客 152
上一篇: 直接插入的 js 实现
下一篇: 弹性盒模型(flex-box)
apple_2021
博客等级 码龄8年 1529粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值