parseint

[\"1\", \"2\", \"3\"].map(parseInt)`返回的结果是[1,2,3]?

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-27 05:38:03
今天刷到一道面试题,["1", "2", "3"].map(parseInt)返回的结果是什么呢?可能大家第一个想到的是 [1,2,3],但是,我可以明确的告诉你,这是结果错的!真正的答案是 [1,NaN,NaN] 由于map()接收的回调函数可以有3个参数:callback(currentValue, index, array),通常我们仅需要第一个参数,而忽略了传入的后面两个参数。不幸的是,parseInt(string, radix)没有忽略第二个参数,导致实际执行的函数分别是: parseInt('1', 0); // 1, 按十进制转换 parseInt('2', 1); // NaN, 没有一进制 parseInt('3', 2); // NaN, 按二进制转换不允许出现2 故`["1", "2", "3"].map(parseInt)`返回的结果是 [1,NaN,NaN] 假如你想使用parseInt来把["1", "2", "3"]转化为[1,2,3],代码可以像以下这样写 ["1", "2", "3"].map(function parseInt2(x) {return parseInt(x)}); 执行结果如下 假如你只是单纯想把["1", "2", "3"]转化为[1,2,3],代码可以像以下这样写 ["1", "2", "3"].map(Number);

[\"1\", \"2\", \"3\"].map(parseInt)

二次信任 提交于 2019-12-27 05:37:54
为什么["1", "2", "3"].map(parseInt) 为 1,NaN,NaN; parseInt() parseInt ( ) 函数可解析一个字符串,并返回一个整数。 parseInt(string, radix) 参数 描述 string 必需。要被解析的字符串。 radix 可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。 如果 省略该参数或其值为 ‘0‘,则数字将以 10 为基础来解析 。如果它以 ‘”0x”‘ 或 ‘”0X”‘ 开头,将以 16 为基数。 如果该参数 小于 2 或者大于 36,则 ‘parseInt()‘ 将返回 ‘NaN‘ 。 map 方法 对数组的每个元素调用定义的回调函数并返回包含结果的数组。 array.map(callbackfn, thisArg]) 参数 定义 array 必需。一个数组对象。 callbackfn 必需。一个接受**最多* *三个参数 的函数。对于数组中的每个元素,‘map‘ 方法都会调用 ‘callbackfn‘ 函数一次。 thisArg 可选。可在 ‘callbackfn‘ 函数中为其引用 ‘this‘ 关键字的对象。如果省略 ‘thisArg‘,则 ‘undefined‘ 将用作 ‘this‘ 值。 回调函数语法 回调函数的语法如下所示: function callbackfn(value,

[\"1\", \"2\", \"3\"].map(parseInt)?

故事扮演 提交于 2019-12-27 05:37:35
["1", "2", "3"].map(parseInt)得到什么? 答案是:[1, NaN, NaN]. 原因:主要是下面这3点 1. map函数传递参数的定义 2. parseInt函数针对于radix这个参数的理解 3. 二进制当中没有"3"这个数码 接下来具体看一下是为什么 -------------------------------------------------分割线------------------------------------------------------------------ 昨天收到网友的留言,觉得确实之前的思路有一点乱,这里整理一下思路,重新写一下。希望可以帮助到后面看到这篇文章的同学。 这个问题我们最开始可能以为的答案会是 [1, 2, 3] 为什么会产生这种想法,因为我们通常使用map函数的时候都会传入一个函数,这个函数一般只使用1-2个参数,如下所示: var arr = ["1", "2", "3"].map(function(item){    // 这个地方只传入一个参数 return item; }); console.log(arr); // ["1", "2", "3"] var arr = ["1", "2", "3"].map(function(item, index){    // 这个地方传入两个参数

[\"1\", \"2\", \"3\"].map(parseInt) 结果

狂风中的少年 提交于 2019-12-27 05:37:25
// 下面的语句返回什么呢: ["1", "2", "3"].map(parseInt); // 你可能觉的会是[1, 2, 3] // 但实际的结果是 [1, NaN, NaN] // 通常使用parseInt时,只需要传递一个参数. // 但实际上,parseInt可以有两个参数.第二个参数是进制数. // 可以通过语句"alert(parseInt.length)===2"来验证. // map方法在调用callback函数时,会给它传递三个参数:当前正在遍历的元素, // 元素索引, 原数组本身. // 第三个参数parseInt会忽视, 但第二个参数不会,也就是说, // parseInt把传过来的索引值当成进制数来使用.从而返回了NaN. function returnInt(element) { return parseInt(element, 10); } ['1', '2', '3'].map(returnInt); // [1, 2, 3] // 意料之中的结果 // 也可以使用简单的箭头函数,结果同上 ['1', '2', '3'].map( str => parseInt(str) ); // 一个更简单的方式: ['1', '2', '3'].map(Number); // [1, 2, 3] // 与`parseInt` 不同

50道JavaScript基础面试题(附答案)

谁说胖子不能爱 提交于 2019-12-27 04:53:25
https://segmentfault.com/a/1190000015288700 1 介绍JavaScript的基本数据类型 Number、String 、Boolean 、Null、Undefined Object 是 JavaScript 中所有对象的父对象 数据封装类对象:Object、Array、Boolean、Number 和 String 其他对象:Function、Arguments、Math、Date、RegExp、Error 新类型:Symbol 2 说说写JavaScript的基本规范? 1) 不要在同一行声明多个变量 2) 使用 ===或!==来比较true/false或者数值 3) switch必须带有default分支 4) 函数应该有返回值 5) for if else 必须使用大括号 6) 语句结束加分号 7) 命名要有意义,使用驼峰命名法 3 jQuery使用建议 1) 尽量减少对dom元素的访问和操作 2) 尽量避免给dom元素绑定多个相同类型的事件处理函数,可以将多个相同类型事件 处理函数合并到一个处理函数,通过数据状态来处理分支 3) 尽量避免使用toggle事件 4 Ajax使用 全称 : Asynchronous Javascript And XML 所谓异步,就是向服务器发送请求的时候,我们不必等待结果,而是可以同时做其他的事情

纯js实现颜色16进制到rgb格式

随声附和 提交于 2019-12-25 22:53:11
// 利用parseInt 和 slice toString将16进制颜色转成rgb格式 // 思路:将16进制的颜色从下标1开始,利用slice方法,每隔两位取出 var div1 = document.querySelector("div"); var color = "#ab0000"; var str="rgb(" var r = parseInt(color.slice(1,3),16).toString(); //ff slice不包括end var g = parseInt(color.slice(3,5),16).toString(); //00 var b = parseInt(color.slice(5,7),16).toString(); //ff str += r+","+g+","+b+")"; console.log(str); //rgb(171,0,0) div1.style.width = 1+"rem"; div1.style.height = 1+"rem"; div1.style.backgroundColor = str; 来源: https://www.cnblogs.com/wanghao1994/p/12099477.html

I want to be able to convert numbers into text according to the ASCII decimal table

一曲冷凌霜 提交于 2019-12-25 08:23:54
问题 I am trying to make it so that I can take individual three-character substrings and convert them to integers under the conditions tht the length of the String is a multiple of three. The integers into which the partioned substrings are converted are supposed to function as relative positions in an array that contains all the printing characters of the ASCII table. String IntMessage = result.toString(); if { (IntMessage.substring(0,1)=="1" && IntMessage.length()%3==0) for(j=0;j < IntMessage

Is using parseInt extraenous if unnecessary?

懵懂的女人 提交于 2019-12-25 07:40:09
问题 I am a beginner to coding and JavaScript but I am doing a practice exercise and I came across something I am unsure about. var nameLength = parseInt(fullName.length); var nameLength = fullName.length; I used the first line not even thinking it would already be an integer, so should I still have included the parseInt or not? 回答1: Yes, remove var nameLength = parseInt(fullName.length); Below is your explanation: The parseInt() method in JavaScript is used to turn the integer value of a string

NumberFormatException for valid number String

╄→尐↘猪︶ㄣ 提交于 2019-12-25 06:31:05
问题 I'm making a program that needs to receive data over the internet. It's doing so using DatagramSockets and receiving DatagramPackets. This all works fine, and the byte array it receives is the exact one I would expect. However, when I try to convert the byte array to a string, and subsequently to an integer, very strange things happen. Running the code below gives a NumberFormatException on the parseInt line: String length = new String(data, 1, data.length-1); System.out.println("length = "

NumberFormatException for valid number String

眉间皱痕 提交于 2019-12-25 06:30:06
问题 I'm making a program that needs to receive data over the internet. It's doing so using DatagramSockets and receiving DatagramPackets. This all works fine, and the byte array it receives is the exact one I would expect. However, when I try to convert the byte array to a string, and subsequently to an integer, very strange things happen. Running the code below gives a NumberFormatException on the parseInt line: String length = new String(data, 1, data.length-1); System.out.println("length = "