JS中,将其他类型转换为number的四种方法

JS中,有四种基本数据类型string、number、Boolean、undefined,以及一种引用类型object。
将其他数据类型转换为number一共有四种方法,分别是:

第一种方法:使用Number()函数

转化代码如下

<script type="text/javascript">
		
			var a = true;
			a = Number(a);
			console.log(typeof a);
			console.log(a);
			//使用Number()函数进行转换,纯数字可以直接转换为数字
			//但是字符串里有非数字,则会转化为NaN
			//字符串里面若为空,则转换为0
			//布尔值,true转换为1,false转换为0
			//null转换为数字0,undefined转换为NaN
		
		</script>

NaN的意思是not a number,这是一个非数字
一定要记住:只有Number()函数,没有toNumber()方法

第二种方法:使用parseInt()或者parseFloat()

转化代码如下

<script type="text/javascript">
		
			a = "678.5px";
			a = parseFloat(a);
			console.log(typeof a);
			console.log(a);
			//parseInt()和parseFloat(),专门转换字符串
			//可以将字符串中有效的整数或者浮点数取出来,从左往右,遇非数字,
			//舍弃后边所有,故第一个若为非数字,则返回NaN
			//parseFloat(),如果遇到有两个点,则舍弃第二个点,以及后面内容
			//对非string使用,会将其转换为string,然后再操作,会返回NaN
		
		</script>

特殊情况
如"070"这种字符串,转换类型时,浏览器可能会当成8进制解析,也可能会当成10进制解析,此时需要在parseInt()中加入第二个参数,用于表示进制,用逗号隔开

若字符串为一个点".",则parseInt()和parseFloat()都会返回NaN
若字符串点后边有数字,parseInt()会返回NaN,parseFloat()会在第一个点的前边加一个0。如".8.7",parseInt()会返回NaN,parseFloat()会返回0.8

第三种方法:隐式转换1

第一种隐式转换,就是使用运算符减、乘、除的其中一种,在不改变原值的情况下,和number类型的值做运算,具体代码如下

<script type="text/javascript">
		
			var a = "123";
			a = a - 0;
			console.log(typeof a);
			console.log(a);
		
		</script>

若字符串中的是纯数字,则直接返回该数值
若字符串中不是纯数字,则返回NaN
若字符串为空,则返回0
转换布尔型,则true返回1,false返回0
转换undefined,则返回NaN

第四种方法:隐式转换2

第二种隐式转换,就是在被转换的值前边,加入一个负号,或者正号
代码如下:

<script type="text/javascript">
		
			var a = "123";
			a = +a;
			console.log(typeof a);
			console.log(a);
		
		</script>

转换后的值,和第一种隐式转换相同
但是若使用负号,则浏览器会对值进行取反,此时需要在前边再加一个负号,不过需要用括号将两个负号分开,或者需要将值加一,即写成 -(-a)或者-a+1

以上就是,将其他类型转换为number的四种方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值