JavaScript类型转换
2017-07-07 本文已影响0人
草木不语只深深绿
类型转换
- 伪对象
伪对象概念:javascript是一门很有意思的语言,即便是基本类型,也是伪对象,所以他们都有属性和方法。
<script>
var a="hello javascript";
document.write("变量a的类型是:"+(typeof a));
document.write("<br>");
document.write("变量a的长度是:"+a.length);
</script>
- 转换为字符串
无论是Number,Boolean还是String都有一个toString方法,用于转换为字符串。
<script>
var a=10;
document.write("数字 "+a+" 转换为字符串"+a.toString());
var b=true;
document.write("布尔 "+b+" 转换为字符串"+b.toString());
var c="hello javascript";
document.write("字符串 "+c+" 转换为字符串 "+c.toString());
</script>
- 数字转字符串
Number转换为字符串的时候有<b>默认模式</b>和<b>基模式</b>两种
<script>
var a=10;
document.write('默认模式下,数字10转换为十进制的'+a.toString()); //默认模式,即十进制
document.write('基模式下,数字10转换为二进制的'+a.toString(2)); //基模式,二进制
document.write('基模式下,数字10转换为八进制的'+a.toString(8)); //基模式,八进制
document.write('基模式下,数字10转换为十六进制的'+a.toString(16)); //基模式,十六进制
</script>
- 转换为数字
javascript分别提供内置函数 parseInt()和parseFloat(),转换为数字。
<b>注:如果被转换的字符串,同时又数字和字符构成,那么parseInt会一直定位数字,直到出现非字符。 所以"10abc" 会被转换为 10</b> - 转换为Boolean
使用内置函数Boolean() 转换为Boolean值。
1.当转换字符串时:非空即为true
2.当转换数字时:非0即为true
3.当转换对象时:非null即为true
<script>
document.write("空字符串''转换为布尔后的值:"+Boolean("")); //空字符串
document.write("非空字符'hello javascript '串转换为布尔后的值:"+Boolean("hello javascript")); //非空字符串
document.write("数字 0 转换为布尔后的值:"+Boolean(0)); //0
document.write("数字 3.14 转换为布尔后的值:"+Boolean(3.14)); //非0
document.write("空对象 null 转换为布尔后的值:"+Boolean(null)); //null
document.write("非对象 new Object() 转换为布尔后的值:"+Boolean(new Object())); //对象存在
</script>
- Number()和parseInt()的区别
Number()和parseInt()一样,都可以用来进行数字的转换。区别在于,当转换的内容包含非数字的时候,Number() 会返回NaN(Not a Number)。
parseInt() 要看情况,如果以数字开头,就会返回开头的合法数字部分,如果以非数字开头,则返回NaN。 - String()和toString()的区别
String()和toString()一样都会返回字符串,区别在于对null的处理
String()会返回字符串"null"
toString() 就会报错,无法执行