javascript 数字字符串与数字的转换

数据类型的转换有两种:1:隐式的转换;2:显示的转换。


由于js是弱类型的语言,定义变量不需要指定明确的类型,且类型可以随时更换。

例如:

<script type="text/javascript">
var a="hello";//这里为字符串

a=200;//这里为数字类型 Int

a={};//这里为对象

a=new Array();//这里为数组
</script>

1:那么若是数字字符串和数字相加会怎么样呢?

当运算符“+”两边一个是数字类型,一个是字符串类型时,js引擎规定进行字符串连接运算而非算术加运算

<script type="text/javascript">
    var a="12";
    var b="15";
    console.log(a+b);//out:1215
</script>
2:从页面元素取值相加又是什么情况呢?

<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>
	<input type="text" id="a"/>
	<input type="text" id="b"/>

	<input type="button" οnclick="add();" value="相加"/>
</body>
<script type="text/javascript">
	function add(){
		var a=document.getElementById('a').value;
		var b=document.getElementById('b').value;
		console.log(a+b);//a,b字符串的链接
	}
</script>
</html>
这里只是进行的简单的拼接。


所以,对于计算结果的运算,要进行数组类型的转换。

显示的转换

在javascript中,有以下3种方法可以将数据显示转换成数字型。

1:Number(value) :可以将value转换成整数或浮点数。

2:parseInt(value):可以将value转换成整数。

3:parseFloat(value):可以将value转换成浮点数

Number():若不可以转换成数字型,返回NaN。

parseInt(),parseFloat():转换数据时,只转化第一个无效字符之前的所有字符。

例如:

<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>
	<input type="text" id="a"/>
	<input type="text" id="b"/>

	<input type="button" οnclick="add();"/>
</body>
<script type="text/javascript">
function add(){
        var a=document.getElementById('a').value;//input 12 | 12.9
        var b=document.getElementById('b').value;//input 2 | 2.4
        //parseInt();
        var c=parseInt(a)+parseInt(b);
        console.log(c);//out:14 | 14
        //parseFloat();
        var d=parseFloat(a)+parseFloat(b);
        console.log(d);//out:14 | 15.3
        //Number()
        var e=Number(a)+Number(b);
        console.log(e);//out:14 | 15.3
    }
</script>
</html>

隐式的转换

这个看一段代码:

<script type="text/javascript">
	var a="12";
	var b="15";
	console.log(b-a);//out:3
</script>
“ - ”运算会把字符串a,b隐式的转换成数字再进行算术减法运算。利用这个特性,可以很方便的将String转换成Number


总结:

数字+字符串:数字转换成字符串。

数字+布尔值:true转换成1,flase 转换成0.

字符串+布尔值:布尔值转换成字符串true或false.【教科书上的】



学习文章:http://www.cnblogs.com/snandy/archive/2011/03/18/1987940.html


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值