JavaScript 之 数值转换

//Number
console.log(Number(100))//100
console.log(Number(true))//1
console.log(Number(null))//0
console.log(Number(undefined))//Nan
console.log(Number('true'))//Nan
console.log(Number('0'))//0
console.log(Number('2'))//2
console.log(Number('2.1'))//2.1
console.log(Number(''))//0
console.log(Number('0005'))//5
console.log(Number('轉12'))//Nan
console.log(Number({name:'hi'}))//Nan
console.log(Number({name:true}))//Nan
console.log(Number({name:1}))//Nan
// 如果是对象,则调用对象的 valueOf()方法,然后依照前面的规则转换返回的值。如果转换
// 的结果是 NaN,则调用对象的 toString()方法,然后再次依照前面的规则转换返回的字符
// 串值,这里是后者
//
// 由于 Number()函数在转换字符串时比较复杂而且不够合理,因此在处理整数的时候更常用的是
// parseInt()函数。 parseInt()函数在转换字符串时,更多的是看其是否符合数值模式。它会忽略字
// 符串前面的空格,直至找到第一个非空格字符。如果第一个字符不是数字字符或者负号, parseInt()
// 就会返回 NaN;也就是说,用 parseInt()转换空字符串会返回 NaN(Number()对空字符返回 0)。如
// 果第一个字符是数字字符, parseInt()会继续解析第二个字符,直到解析完所有后续字符或者遇到了
// 一个非数字字符。
console.log('字符串转换成数值用parseInt()')
console.log(parseInt('true'))//Nan
console.log(parseInt('0'))//0
console.log(parseInt('2'))//2
console.log(parseInt('2.1'))//2
console.log(parseInt(''))//Nan
console.log(parseInt('05'))//5
console.log(parseInt('轉12'))//Nan
console.log(parseInt('12轉'))//12
console.log(parseInt("070"))// 70(ES5),56(八进制数,ES3)
console.log(parseInt("70")) // 70(十进制数)
console.log(parseInt("0xf")) // 15(十六进制数)
//因为ES5引擎中 parseInt()已经不具有解析八进制值的能力,因此前导的零会被认为无效,从而将这个值当成"70",结果就得到十进制的 70。
console.log('使用parseInt(要转换的内容,进制基数)');
console.log(parseInt('10',2))//2
console.log(parseInt('070',8))//56
console.log(parseInt('10',10))//10
console.log(parseInt('AF',16))//175
//parseFloat()從第一個字符開始解析到最後一個字符,遇到第二個小數點終止解析,六进制格
// 式的字符串则始终会被转换成 0。由于 parseFloat()只解析十进制值,因此它没有用第二个参数指定基数的用法。
console.log('parseFloat()');
console.log(parseFloat('0.23.14'));//0.23
console.log(parseFloat('0.23ss'));//0.23
console.log(parseFloat('010.23ss'));//10.23
console.log(parseFloat('0xf'));//0
console.log(parseFloat('23.12e5'));//2312000


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值