JavaScript中的数据类型转换
来源:互联网 发布:淘宝上好看的女装店 编辑:程序博客网 时间:2024/06/10 11:54
数据类型转换
数值类型的转换
l isNaN()函数
JS 提供了 isNaN()函数,用来判断这个值到底是不是 NaN。isNaN()函数在接收到一个值之后,会尝试将这个值转换为数值。
<script type="text/javascript">
document.write("a"*10);
</script>
<script type="text/javascript">
document.write(isNaN("a"*10)); //true
</script>
alert(isNaN(25)); //false,25是一个数值
alert(isNaN('25')); //false,'25'是一个字符串数值,可以转成数值
alert(isNaN('Lee')); //true,'Lee'不能转换为数值
alert(isNaN(true)); //false true 可以转成成 1
l 非数值转换为数值
有 3 个函数可以把非数值转换为数值:Number()、parseInt()和parseFloat()。Number()函数是转型函数,可以用于任何数据类型,而另外两个则专门用于把字符串转成数值。
alert(Number(true)); //1,Boolean类型的 true和 false分别转换成 1和 0
alert(Number(25)); //25,数值型直接返回
alert(Number(null)); //0,空对象返回 0
alert(Number(undefined)); //NaN,undefined返回 NaN
如果是字符串,应该遵循一下规则:
1.只包含数值的字符串,会直接转成成十进制数值,如果包含前导 0,即自动去掉。
alert(Number('456')); //456
alert(Number('070')); //70
2.只包含浮点数值的字符串,会直接转成浮点数值,如果包含前导和后导 0,即自动去掉。
alert(Number('08.90')); //8.9
3.如果字符串是空,那么直接转成成 0。
alert(Number('')); //0
4.如果不是以上三种字符串类型,则返回 NaN。
alert(Number ('ge123'));
alert(Number ('123 ge '));
由于 Number()函数在转换字符串时比较复杂且不够合理,因此在处理整数的时候更常用的是parseInt()。
alert(parsetInt('456zhen')); //456,会返回整数部分
alert(parsetInt('zhen456zhen')); //NaN,如果第一个不是数值,就返回NaN
alert(parseInt('12zhen56zhen')); //12,从第一数值开始取,到最后一个连续数值结束
alert(parseInt('56.12')); //56,小数点不是数值,会被去掉
alert(parseInt('')); //NaN,空返回 NaN
parseInt()除了能够识别十进制数值,也可以识别八进制和十六进制。
alert(parseInt('0xA')); //10,十六进制
alert(parseInt('070')); //56,八进制
alert(parseInt('0xAzhen')); //10,十六进制,zhen被自动过滤掉
JavaScript 为 parseInt()提供了第二个参数,用于解决各种进制的转换。
alert(parseInt('0xAF')); //175,十六进制
alert(parseInt('AF',16)); //175,第二参数指定十六进制,可以去掉 0x 前导
alert(parseInt('AF')); //NaN,理所当然
alert(parseInt('101010101',2)); //314,二进制转换
alert(parseInt('70',8)) //56,八进制转换
parseFloat()是用于浮点数值转换的,和 parseInt()一样,从第一位解析到非浮点数值位置。
alert(parseFloat('123zhen')); //123,去掉不是别的部分
alert(parseFloat('0xA')); //0,不认十六进制
alert(parseFloat('123.4.5')); //123.4,只认一个小数点
alert(parseFloat('0123.400')); //123.4,去掉前后导
alert(parseFloat('1.234e7')); //12340000,把科学技术法转成普通数值
字符串类型的转换
toString()方法可以把值转换成字符串。
var box = 11;
var box = true;
alert(box.toString());
alert(typeof box.toString());
toString()方法一般是不需要传参的,但在数值转成字符串的时候,可以传递进制参数。
var box = 10;
alert(box.toString()); //10,默认输出
alert(box.toString(2)); //1010,二进制输出
alert(box.toString(8)); //12,八进制输出
alert(box.toString(10)); //10,十进制输出
alert(box.toString(16)); //a,十六进制输出
随机改变页面的背景颜色:
</html>
<script type="text/javascript">
var a=Math.ceil(Math.random()*15).toString(16);
var b=Math.ceil(Math.random()*15).toString(16);
var c=Math.ceil(Math.random()*15).toString(16);
var d=Math.ceil(Math.random()*15).toString(16);
var e=Math.ceil(Math.random()*15).toString(16);
var f=Math.ceil(Math.random()*15).toString(16);
var color="#"+a+b+c+d+e+f;
document.body.bgColor=color;
</script>
如果在转型之前不知道变量是否是 null 或者 undefined 的情况下,我们还可以使用转型函数String(),这个函数能够将任何类型的值转换为字符串。
var box = null;
alert(String(box));
PS:如果值有 toString()方法,则调用该方法并返回相应的结果;如果是null 或者undefined,则返回"null"或者"undeinfed"。
把数字转换为字符串的方法:
a) 一个数字用在一个字符串连接表达式中,数字就会先自动转换为字符串
var s="年龄"+20;
在数字后面 加上一个空的字符串,也可以转换 var s=20+’ ’;
b) 使用String()函数进行转换:String(数字);
c) 把数字转换为字符串的另一种方法是使用toString()函数。数字.toString()该函数有一个可选的参数表示要转换的进制,例如:
i. var n=17;
ii. binary_string=n.toString(2); hex_string="0x"+n.toString(16);
d) 数字.toFixed(小数的位数):该方法可以将小数转换为指定位数的小数的字符串,进行四舍五入,不足补0。 如,n.toFixed(2); n=123.456;
var s=2342.12312.toFixed(2);
e) 数字.toPrecision(数字的位数) 其中,包括整数位数、小数位数,而且能够四舍五入。例如:
var s=2423.345.toPrecision(6);
alert(s);
2.4.3 布尔类型的转换
虽然 Boolean 类型的字面量只有true 和false 两种,但Javascript 中所有类型的值都有与这两个Boolean 值等价的值。
a) 如果布尔值用在数字环境中,true就转换为数字1,false就转换为数字0
b) 如果布尔值用在字符串环境中,true就转换为字符串“true”,false就转换为字符串“false”
c) 如果数字用在一个本该布尔值的地址,数字0或NaN就会转换为false,否则就会转为true
if(1){
alert("hello");
}
d) 空字符串被转换为false 否则就转换为 true
e) 空值或未定义的值也会转换为false,而任何非空对象、数组或函数都转换为true
f) Boolean()可以将括号中的内容转换为布尔值
var hello = 'Hello World!';
var hello2 = Boolean(hello);
alert(typeof hello2);
上面是一种显示转换,属于强制性转换。而实际应用中,还有一种隐式转换。比如,在if 条件语句里面的条件判断,就存在隐式转换。
var hello = 'Hello World!';
if (hello) {
alert('如果条件为 true,就执行我这条!');
} else {
alert('如果条件为 false,就执行我这条!');
}
以下是其他类型转换成 Boolean
- javascript中的数据类型转换
- JavaScript中的数据类型转换
- javascript中的数据类型转换
- 11.Javascript中的数据类型转换
- JavaScript 中的数据类型相互转换
- 关于JavaScript中的不同数据类型转换判断
- javascript数据类型转换javascript
- JavaScript数据类型及数据类型转换
- JavaScript数据类型以及数据类型转换
- JavaScript中的3中强制转换数据类型的方法
- javaScript中的将其他数据类型转换为Number类型
- javascript 数据类型转换
- JavaScript 数据类型转换
- javascript 数据类型转换
- javascript 数据类型转换
- javascript 数据类型转换
- javascript数据类型转换
- javascript数据类型转换
- flex 中通过httpservice 向后台请求的3中方式
- MYSQL学习第二天---数据类型等
- JAVA CAS原理深入分析
- SpringMVC学习笔记(一)
- SpringMVC学习笔记(二)
- JavaScript中的数据类型转换
- 多重背包--二进制优化
- SpringMVC学习笔记(三)
- scanf函数使用大全
- java并发编程学习(2)
- 关于使用VS实现MFC串口通信
- 支持向量机通俗导论(理解SVM的三层境界)
- Activity启动模式及Intent 常用Flag
- 音视频数据处理(-2)linux下自定义bmp头输出bmp的信息