javascript高级程序设计学习之数值转换 |Number(),parseInt(),parseFloat()

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

将非数值转换成数值的函数有三个:Number(),parseInt(),parseFloat();

小记tip:Number()可以用于任何数据类型;parseInt(),parseFloat()针对的是将字符串;

Number()的转换规则如下:主要举一些特殊例子;

第一类:null,undefined

 console.log(Number(null)) //返回的是0console.log(Number(undefined)) //返回的是NaN;

第二类:字符串

  /*************如果是字符串************/console.log(Number('-123')) //返回-123   //字符串只包含数字(包括字符串首个字符为加减号),则将其转换成十进制数字,并且如果首个字符为0则会忽略console.log(Number('+123'))  //返回123console.log(Number('123'))  //返回123console.log(Number('0123'))  //返回123//如果字符串中包含有效的浮点格式,则相对应的转换成对应的浮点数,和上述规则类似,首个字符为o则忽略console.log(Number('01.2')) //返回1.2console.log(Number('1.2')) //返回1.2//如果字符串包含有效的十六进制数,则转换成大小相同的十进制数console.log(Number('0xaf')) //返回175//如果字符串为空,则返回0;console.log(Number('')) //0//除去以上格式之外,则返回NaN;console.log(Number('0120sd'))  //NaN

第三类:object 按照javascript高级程序设计(第三版),如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值,如果转换的结果为NaN(非数值),则调用对象的toString()方法,然后依照前面的规则转换返回的值;下面来直接看测试代码:

        var ary_=new Array('20',25);console.log(ary_.valueOf());//['20',25]; 数组的实例对象 ,非数值console.log(ary_.toString())//20,25 字符串console.log(Number(ary_))  //NaNvar boolean=new Boolean(85)console.log(boolean.valueOf());//trueconsole.log(boolean.toString())//字符串trueconsole.log(Number(boolean))//1var date=new Date(2018,3,18)console.log(date.valueOf())  //1523980800000console.log(date.toString())  //Wed Apr 18 2018 00:00:00 GMT+0800 (中国标准时间)console.log(Number(date))  //1523980800000function test(){this.name='zh';}console.log(test.valueOf())//返回函数本身,非数值console.log(test.toString())//返回函数的字符串形式console.log(Number(test))//NaNvar num=new Number(52);console.log(num.valueOf())//数值52console.log(num.toString())//字符串‘52’console.log(Number(num))//数值52var obj={"name":"zh","age":"25","salary":20000}console.log(obj.valueOf());//返回本身,非数值console.log(obj.toString());//[object Object] 字符串console.log(Number(obj))  //NaNvar str=new String('sdsf52');console.log(str.valueOf())//'sdsf52' ,字符串的值console.log(str.toString())console.log(Number(str))//NaN

parseInt()转换规则

输入图片说明

tip:1:忽略字符串前面的空格,从第一个字符,如果第一个字符串不是数字字符或者负号,该函数就会返回NaN,一直解析到最后一个字符。如果中途遇到一个非数字的字符,则就会停止,例如parseInt('2025zh526'),返回的2025

tip2:parseInt()会识别整数的格式,是十进制还是八进制亦或十六进制;以0x开头的,并且后面是数字的为 十六进制;以0开头后面是数字的为八进制;但是在ECMAScript 5 js引擎下,parseInt()不具有解析八进制的能力,例如parseInt('050');返回的是50;

tip3:为了消除上述的困惑,parseInt()提供第二个参数,来确定是按照那种进制解析字符串,见如下例子

console.log(parseInt('ad'))   //NaN
console.log(parseInt('ad',16)) //173
console.log(parseInt('10',8))  //8
console.log(parseInt('10',12))  //12
console.log(parseInt('11',12))  //13  -->12+1
console.log(parseInt('3',2))  //NaN

["1","2","3"].map(parseInt) 面试题解惑

parseFloat()转换规则

tip1:parseFloat()只解析十进制值;

tip2:忽略字符串前面的空格,从第一个字符(如果第一个字符为0则会忽略),一直解析到字符串的尾部,直到解析到一个无效的浮点数字符为止,字符串的第一个小数点是有效的,第二个为无效,第二个小数点后面的字符会被忽略,下面见几个特殊的例子。

tip3:字符串包含一个整数,或者小数点后面都是0,则返回整数

        console.log(parseFloat('0dsfa'))//0;console.log(parseFloat('0xaf'))//0;console.log(parseFloat('052dsfa'))//52;console.log(parseFloat('dsd0dsfa'))//NaN;console.log(parseFloat('520'))//520;console.log(parseFloat('3.14e5'))//314000;console.log(parseFloat('052.0'))//52console.log(parseFloat('052.12.68'))//52.12console.log(parseFloat(''))//NaN

转载于:https://my.oschina.net/u/3407699/blog/1645043

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/452319.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git学习的最佳教程

身为网页设计师或者网页开发者的你,可能已经听说过Git这个正快速成长的版本控制系统。它由GitHub维护;GitHub是一个开放性的、存储众人代码的网站。如果你想学习如何使用Git,请参考本文。在文章最后,我们罗列了其他Git学习资源。 …

如何使用idea快速创建SpringBoot项目

文章目录一、二、三、四、五、一、 二、 三、 四、 五、

闪光css,CSS实现的一闪而过的图片闪光效果

只需要两个html元素和一个css变换,我就能创造出我自己的闪光效果。让我们来实现它!呈现光泽图片下面就是这张addy在他博客上使用的图片:比我需要的要大一些,但你可以把它裁剪一些。注意:左边的那张是纯白色的&#xff…

循序渐进学好编程,不要太急!!!

软件开发人员是一个日新月异的领域—–IT中的大师,今天的编程方式与明天的编程或许截然不同,技术在不断地革新,新语言、新平台的如雨后春笋般出现、更好的解决方案的冒出,因此我们需要跟得上节奏,我们别无选择&#xf…

x230无线网卡驱动服务器版,ThinkPad X230网卡驱动

ThinkPad X230网卡驱动是一款专为ThinkPad X230打造的无线网卡驱动程序,当然,这款驱动也支持其他机型,包括ThinkPad X220,X220i,X220 Tablet,X220i Tablet等等,如果您的笔记本电脑属于下列所列机型中的一款,欢迎您来欧…

学成在线--0.项目概述

文章目录0.前言1.功能架构2.技术架构3.技术栈4.开发步骤0.前言 当前市场的在线教育模式多种多样,包括:B2C、C2C、B2B2C等业务模式,学成在线采用B2B2C业务模式,即向 企业或个人提供在线教育平台提供教学服务,老师和学生…

【Java学习】JDBC可以再深一点理解

JDBC驱动程序 JDBC驱动程序是JDBC API中实现定义的接口。JDBC是java语言中的与数据库连接的接口。也就是说JDBC是Java API,使得Java可以与数据库进行连接,而JDBC驱动程序是JDBC API,驱动JDBC进一步与数据库进行交互。 例如:使用JD…

wordpress 评论ajax,WordPress教程 WordPress实现提交评论ajax翻页效果教程

WordPress提交评论ajax翻页的效果会很大的提高用户体验度,虽然我们一般的个人WordPress博客评论也不会有很多,但是用户体验至上嘛,所以WordPress主题站小编为大家分享WordPress实现提交评论ajax翻页效果教程,希望能给大家能用得上…

Lombok的使用方法

文章目录0.Lombok简介1.在项目中添加Lombok的依赖2.在IDEA开发工具中添加Lombok插件0.Lombok简介 Lombok是一个实用的java工具,使用它可以消除java代码的臃肿,Lombok提供一系列的注解,使用这些注解可 以不用定义getter/setter、equals、构造…

世上最伟大的十个公式,质能方程排名第五

英国科学期刊《物理世界》曾让读者投票评选了“最伟大的公式”,最终榜上有名的十个公式既有无人不知的112,又有著名的Emc2;既有简单的-圆周公式,又有复杂的欧拉公式…… 从什么时候起我们开始厌恶数学?这些东西原本…

2000服务器文件共享,Win2000 Server实现对共享文件的监控

病毒的出现,使我们在共享文件时变得异常小心。那么,有没有办法监控共享文件的使用情况并加以管理呢?有,用Windows 2000 Server的文件共享监控功能就可以实现。Windows 2000 Server的共享管理功能在“计算机管理”中,它…

学成在线--1.CMS接口开发

文章目录0.定义CMS1.CMS页面管理2.需求分析3.模型类介绍4.定义请求及响应类型5.定义接口6.创建CMS工程结构7.Dao1)创建Dao,继承MongoRepository2)编写测试类分页查询测试添加删除修改8.Service9.Controller10.接口开发规范0.定义CMS 1&#…

django 进阶

django进阶 django的分页器 基础语法: View Code简单练习: View Code实例应用: View Code自定义分页: View Codeform表单系统 原生form View CodeDjango表单系统中,所有的表单类都作为django.forms.Form的子类创建&…

如何减小与“大牛”的差距

为什么同样的时间有的人可以漂亮的完成工作,而有些人废了很大的力气也没有完成? 前者我们常常称之为“大牛”,后者我们常常叫他们“菜鸟”。当然“大牛”都是相对而言的,“大牛”也不可能方方面面都非常厉害,换句话说大…

武侠乂怎么修改服务器,武侠乂怎么操作 按键功能详细介绍

武侠乂将在7月27日开启限量测试了,入手前的第一件事情当然要熟悉操作按键了,下面给大家带来的是武侠乂按键介绍,一起来看看吧。武侠乂将在7月27日开启限量测试了,玩家们马上就能体会到武侠吃鸡的快感,除了吃鸡模式外还…

09-完整性约束

本节重点: not null 与 defaultuniqueprimaryauto_incrementforeign key一、介绍 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性 主要分为: PRIMARY KEY (PK) #标识该字段为该表的主键&#x…

学成在线--2.CMS前端页面查询开发

文章目录0.思路总结1.创建CMS模块的目录架构2.创建页面并配置路由1)在page目录新建page_list.vue,扩展名为.vue。2)在cms的router下配置路由。3)在base目录下的router导入cms模块的路由3.使用Table组件完善页面内容4.Api调用服务器…

学成在线--3.CMS页面管理开发(自定义条件查询)

文章目录0.需求分析1.服务端--Dao2.服务端--Service3.服务端--Controller4.前端1)page_list.vue中增加查询表单2)page_list.vue中添加数据模型对象3)在钩子方法中构建siteList站点列5.Api调用1)修改 cms.js,向服务端传…

动态生成表格、隐藏表格、选中删除任意行、jquery、输入验证

PS: 游戏公司后台开发,工作模式:996。 于是写博客这事也荒废了.... 想想还是写一点吧。 呵呵,请不要笑话我注释写这么多,习惯了,我上班写代码都是有注释的。 我建两个相似的表是为了,给后台使…

安装 PrestaShop 1.6 - 详细的安装指南

2019独角兽企业重金招聘Python工程师标准>>> 详细的安装指南 下载和解压 PrestaShop 程序代码包 你可以从 PrestaShop 官方下载最新的版本,下载地址为:http://www.prestashop.com/en/download. 这里你只有一个选项,只能下载最新的…