您的位置:首页 > Web前端 > JavaScript

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

2015-01-15 18:52 169 查看
数据类型的转换有两种: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" onclick="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" onclick="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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: