JavaScript中三种数据转换详解

JavaScript数值转换

JavaScript数据转换

  • 在JavaScript中提供了三个函数对非数值转换为数值:

Number(),parseInt(),parseFloart().

一.Number()

1.定义和用法

1.Number() 函数将对象参数转换为表示对象值的数字。(通俗来讲就是将为String类型的纯数字转化为Number,但是true和false会转化为1和0),所有的浏览器都支持该函数
2.使用方法

var num = new Number(value);

注意:如果该值无法转换为合法数字,则返回 NaN(非数字值)。

2.实例

1.纯数字字符串

var i = “10”
console.log(typeof(i)); // string
var j = Number(i);
console.log(typeof(j));// number

2.带有字母的字符串

var d = “10a”
console.log(Number(d),typeof(Number(d)));// NaN ‘number’

3.为true和false的时候

var i = true
console.log(Number(i),typeof(Number(i)));// 1 number
var j = false
console.log(Number(j),typeof(Number(j)));// 0 number

4.为Date函数的时候

var x3 = new Date();
console.log(Number(x3));//1635822629401
// 注释:如果参数是 Date 对象,则 Number() 函数返回自 UTC 1970 年 1 月 1 日午夜以来的毫秒数。

3.ES6新增Number 方法

ES 6 增加了以下两个 Number 对象的方法:

  • Number.isInteger(): 用来判断给定的参数是否为整数。
  • Number.isSafeInteger(): 判断传入的参数值是否是一个"安全整数"。

实例

Number.isInteger(10); // 返回 true
Number.isInteger(10.5); // 返回 false

二.parseInt()

1.定义和用法

用法(string是必须填写的,radix是可选的,代表要使用的数字系统的数字(从 2 到 36))

parseInt(string, radix)

parseInt()是专门处理将字符串转换成整数的,该函数在转换字符串时,更多的是看其是否符合数值模型。
使用规则为:忽略字符串前面的空格,直至找到第一个非空格字符,当是数字的时候就将数字保存,直到不是数字为主,如果第一个不是数字,则会返回NaN
当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。

当忽略参数 radix , JavaScript 默认数字的基数如下:

  • 如果 string 以 “0x” 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数(注意:如果里面含有abcdef的字母的时候就可以将字母转化为16进制的数字来进行解析)。
  • 如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。
  • 如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。
  • 注意:只返回字符串中的第一个数字!如果不能返回则显示为NaN
实例

console.log(parseInt(“3.99”)); //3
console.log(parseInt(3.99));//3
console.log(parseInt(3.19));//3
console.log(parseInt(“5556sdfasdfs”));//5556
console.log(parseInt(“5px”));//5
console.log(parseInt(“355year”));//355
console.log(parseInt(“010”));//10
console.log(parseInt(“0x10”));//16
console.log(parseInt(“10”, 16));//16(该种是将16进制的10转化为10进制)
console.log(parseInt(“AF”, 16));//175
console.log(parseInt(“AF”))//NaN

注意:旧浏览器由于使用旧版本的ECMAScript(ECMAScript版本小于ECMAScript 5,当字符串以"0"开头时默认使用八进制,ECMAScript 5使用的是十进制),所以在解析(“010”) 将输出8。

三.parseFloart()

1.定义和用法

parseFloat() 函数解析字符串并返回浮点数。

  • 此函数确定指定字符串中的第一个字符是否为数字。如果是,它会解析字符串直到到达数字的末尾,并将数字作为数字而不是字符串返回。

  • 注意:只返回字符串中的第一个数字,当遇到第二个小数点的时候或者不是数字的时候就会结束保存

  • 注释:允许前导和尾随空格。

  • 注释:如果第一个字符不能转换为数字,parseFloat() 返回 NaN。

paserFloart(String)

实例

console.log(parseFloat(“10”));//10
console.log(parseFloat(“10.11002”));//10.11002
console.log(parseFloat(“10.4122.22”));//10.4122
console.log(parseFloat(“10ccc.c22”));//10
console.log(parseFloat(“41a44.5555”));//41
console.log(parseFloat(“aaaa.002”));//NaN
console.log(parseFloat(“sdkckas”));//NaN
console.log(parseFloat(" 1111"));//111
console.log(parseFloat(" 55 1111"));//55
console.log(parseFloat(" 55. 6 1111"));//55

四.总结

parseFloart()与parseInt()类似,也是从第一个字符(位置0)开始解析每个字符,而且一直解析到字符串末尾,或者解析到遇到一个无效的浮点数字字符为止,也就是说,字符串的第一个小数点是有效的,而第二个小数点就是无效的,因此它后面的字符串将被忽略。举例来说,“11.22.33”将会被转换为11.22.

parseFloart()与parseInt()它始终都会忽略前导的零。parseFloart()可以识别前面讨论的所有浮点数值格式,也包括十进制整数格式。但十六进制的字符串则始终会被转换为0,由于parseFloart()只解析十进制,所以它没有用第二个参数指定基数的用法;最后注意一点:如果字符串包含的是一个可解析为整数的数(没有小数点,或者小数点后都是零),parseFloart()会返回整数 。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值