Js笔试题之parseInt()和.map()
parseInt()的几个例子
var b = parseInt("01");
alert("b="+b);
var c = parseInt("09/08/2009");
alert("c="+c);
结果:b=1,c=0
parseInt()用来解析字符串,返回整数,有几个特点:
1.无视被解析字符串最前和最后的空格,即:" 111 "和"111"是一样的
2.正规格式是parseInt(string,radix)。
第一个参数是被解析的字符串,第二个参数是进制(可不些)
第二个参数的特点:
①如果radix省略或为0,则按默认进制(十进制)进行解析
②radix为2~36之间的整数,如果在这个范围之外,返回NaN
③string的首字符为0,则默认解析为8进制。string首字符为0x(0X)则默认解析为16进制。其他情况默认为10进制。
④最好加上第二个参数,不然即使碰到首字符为0,应该以8进制方式进行,在某些浏览器下,如ff也会按10进制进行
3.解析从第一个可以解析的字符开始,到第一个不能解析的字符(如空格,标点符号等)结束。后面的字符不再解析。如果第一个字符就不可以解析,则返回NaN。
回到此题来分析
b的首字母是0,按8进制解析后面的数值,也就是8进制的1。自然返回值为1。
c的首字母是0,按8进制解析后面的数值,但是第二个字符9已经不是8进制数,也就是9是第一个不能解析的字符,parseInt("09/08/2009")相当于parseInt("0"),自然返回值是0
注:8也不是8进制数,最大到7
变形:
var c = parseInt("0119/08/2009");
alert("c="+c);
分析:
相当于parseInt("011"),0*8^2+1*8^1+1*8^0=0+8+1=9,输出结果为c=9
parseFloat()和parseInt()
parseInt()可以带参数,指定二进制、八进制或者十六进制(默认十进制),而parseFloat()不带参数,不能解析八进制、十六进制数,就只能按十进制进行。
再来看parseInt()和.map()结合的例子
["1", "2", "3"].map(parseInt) 返回值又是多少呢
map方法
array1.map(callbackfn[, thisArg])
对数组的每个元素,调用定义的回调函数,返回一个数组包含结果
参数:
array1:必须。一个数组对象
callbackfn:必须。最多接受三个参数(数组元素的值,数组元素的索引,包含该元素的数组对象)的回调函数
thisArg:可选。
即原例子相当于
[parseInt("1",0),parseInt("2",1),parseInt("3",2)]
分析:
1按十进制转换输出1
1不在2~36之间,输出NaN
字符串”3“里面没有合法的二进制数,输出NaN
所以最后结果是[1,NaN,NaN]
Js笔试题之parseInt()和.map()的更多相关文章
- 所在实习公司的JS笔试题
在班上无聊的时候看到了一份JS笔试题(我是电面进去的,没做过这份题~~),开始还觉得蛮简单......后来觉得还是很有意思的,贴出来一起看看. 题目一: if(!("a" in w ...
- 2016 JS 笔试题汇总:
1 1 1 CS&S(中软国际): 1 JavaScript 循环表达式: 2 JavaScript表达式boolean返回值: 3 网页中的事件/HTML 事件属性/JavaScript ...
- 容易答错的JS笔试题
1,考察this var length = 10 function fn(){ alert(this.length) } var obj = { length: 5, meth ...
- Js笔试题之千分位格式化
用js实现如下功能,将给定的数字转化成千分位的格式,如把“10000”转化成“10,000”,并考虑到性能方面的因素. 一.首先想到的办法,将数字转换为字符串(toString())再打散成数组(sp ...
- 蛮考验基础的JS笔试题(有坑小心!)
1. 考察this var length = 10 function fn(){ alert(this.length) } var obj = { length: 5, method: functi ...
- JS笔试题
JS 引用相关题目 以下代码输出什么? 为什么? var a = {n:1}; var b = a; a = {n:2}; a.x = a ; console.log(a.x); console.lo ...
- js笔试题一套(未完待续)
1.下面程序的运行结果是: function test(x, y, z) { alert(test.length); alert(arguments.length); alert(arguments. ...
- Js笔试题之返回只包含数字类型的数组
如js123ldka78sdasfgr653 => [123,78,653] 一般做法 分析: 1.循环字符串每个字符,是数字的挑出来拼接在一起,不是数字的,就给他空的拼个逗号 2.将新字符串每 ...
- Js笔试题之正则表达式
一.复习字符串的传统操作 如何获取一个字符串中的数字字符,并按数组形式输出,如 dgfhfgh254bhku289fgdhdy675gfh 输出[254,289,675] 分析:循环用charAt() ...
随机推荐
- 【Todo】Java新技术学习笔记-from某技术分析
看到这篇文章:http://mt.sohu.com/20160806/n462923089.shtml <十余年技术大牛告诉你,这些Java新技术不可错过> 虽然讲的比较泛,但是里面提到的 ...
- J2EE 第二阶段项目之部署项目、分工安排
SVN 先通过使用教程,和能够介绍了解svn. svn使用教程总结 ; svn功能介绍. 分工安排:我的任务就是项目统计. 1 效益统计 1 教育效益统计表 (教育效益统计表,增,改,查看,查 ...
- 图解javascript中this指向
JavaScript 是一种脚本语言,支持函数式编程.闭包.基于原型的继承等高级功能.JavaScript一开始看起来感觉会很容易入门,但是随着使用的深入,你会发JavaScript其实很难掌握,有些 ...
- C语言中的转义字符
转义字符 意义 ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) ,将当前位置移到前一列 008 \f 换页(FF),将当前位置移到下页开头 012 \n 换行(LF) ,将 ...
- 【CodeVS 1004】四子连棋
http://blog.csdn.net/u013598409/article/details/43924465 相比于一年半前,代码的掌控能力强了许多. #include <cstdio> ...
- ubuntu修改更新源为163
安装ubuntu后为了使下载及更新软件包更快,需要将自带的源更换为国内的源.以下以163为例: 1.首先备份下原始自带源: sudo cp sources.list /etc/apt/sources. ...
- 二级菜单jquery
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- ASP.NET MVC 5改进了基于过滤器的身份验证
ASP.NET MVC 5包含在最近发布的Visual Studio 2013开发者预览版中,它使开发人员可以应用身份验证过滤器,它们提供了使用各种第三方供应商或自定义的身份验证提供程序进行用户身份验 ...
- HTML5自学笔记[ 21 ]canvas绘图实例之马赛克
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- file类之目录
可以解决的问题是: 有时需要列出目录下指定类型的文件,比如java,txt等扩展名的文件,可以使用File类的下述两个方法,列出指定类型的文件. /* file类实现两个 ...