虚位以待(AD)
虚位以待(AD)
首页 > 网页特效 > JavaScript > 老生常谈javascript的类型转换

老生常谈javascript的类型转换
类别:JavaScript   作者:码皇   来源:互联网   点击:

下面小编就为大家带来一篇老生常谈javascript的类型转换。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

目录:

1 : 伪对象 
2 : 转换为字符串 
3 : 数字转字符串 
4 : 转换为数字 
5 : 转换为Boolean 
6 : Number()和parseInt()的区别 
7 : String()和toString()的区别

1 : 伪对象

伪对象:javascript是一门很有意思的语言,即便是基本类型,也是伪对象,所以他们都有属性和方法。

变量a的类型是字符串,通过调用其为伪对象的属性length获取其长度 。

    <script> var a="hello javascript";
    document.write("变量a的类型是:"+(typeof a));
    document.write("<br>");
    document.write("变量a的长度是:"+a.length);
    </script>

运行效果:
变量a的类型是:string
变量a的长度是:16

2 : 转换为字符串

无论是Number,Boolean还是String都有一个toString方法,用于转换为字符串

    <script> var a=10;
    document.write("数字 "+a+" 转换为字符串"+a.toString());
    document.write("<br>");
    var b=true;
    document.write("布尔 "+b+" 转换为字符串"+b.toString());
    document.write("<br>");
    var c="hello javascript";
    document.write("字符串 "+c+" 转换为字符串 "+c.toString());
    document.write("<br>");
    </script>

运行效果:
数字 10 转换为字符串10
布尔 true 转换为字符串true
字符串 hello javascript 转换为字符串 hello javascript

3 : 数字转字符串

Number转换为字符串的时候有默认模式和基模式两种

    <script> var a=10;
    document.write('默认模式下,数字10转换为十进制的'+a.toString());
    //默认模式,即十进制 document.write("<br>");
    document.write('基模式下,数字10转换为二进制的'+a.toString(2));
    //基模式,二进制 document.write("<br>");
    document.write('基模式下,数字10转换为八进制的'+a.toString(8));
    //基模式,八进制 document.write("<br>");
    document.write('基模式下,数字10转换为十六进制的'+a.toString(16));
    //基模式,十六进制 document.write("<br>");
    </script>

运行效果:
默认模式下,数字10转换为十进制的10
基模式下,数字10转换为二进制的1010
基模式下,数字10转换为八进制的12
基模式下,数字10转换为十六进制的a

4 : 转换为数字

javascript分别提供内置函数 parseInt()和parseFloat(),转换为数字

注:如果被转换的字符串,同时又数字和字符构成,那么parseInt会一直定位数字,直到出现非字符。 所以"10abc" 会被转换为 10

思考题: 字符串"10abc8" 又会被转换为多少呢?

    <script> document.write("字符串的"10"转换为数字的:"+parseInt("10"));
    //转换整数 document.write("<br>");
    document.write("字符串的"3.14"转换为数字的:"+parseFloat("444 3.14"));
    //转换浮点数 document.write("<br>");
    document.write("字符串的"10abc"转换为数字的:"+parseInt("10abc"));
    //判断每一位,直到发现不是数字的那一位 document.write("<br>");
    document.write("字符串的"hello javascript"转换为数字的:"+parseInt("h5555ello javascript"));
    //如果完全不包含数字,则返回NaN - Not a Number document.write("<br>");
    </script>

运行效果:
字符串的"10"转换为数字的:10
字符串的"3.14"转换为数字的:444
字符串的"10abc"转换为数字的:10
字符串的"hello javascript"转换为数字的:NaN

5 : 转换为Boolean

使用内置函数Boolean() 转换为Boolean值
当转换字符串时:
非空即为true
当转换数字时:
非0即为true
当转换对象时:
非null即为true

    <script> document.write("空字符串''转换为布尔后的值:"+Boolean(""));
    //空字符串 document.write("<br>");
    document.write("非空字符'hello javascript '串转换为布尔后的值:"+Boolean("hello javascript"));
    //非空字符串 document.write("<br>");
    document.write("数字 0 转换为布尔后的值:"+Boolean(0));
    //0 document.write("<br>");
    document.write("数字 3.14 转换为布尔后的值:"+Boolean(3.14));
    //非0 document.write("<br>");
    document.write("空对象 null 转换为布尔后的值:"+Boolean(null));
    //null document.write("<br>");
    document.write("非对象 new Object() 转换为布尔后的值:"+Boolean(new Object()));
    //对象存在 document.write("<br>");
    </script>

运行效果:
空字符串''转换为布尔后的值:false
非空字符'hello javascript '串转换为布尔后的值:true
数字 0 转换为布尔后的值:false
数字 3.14 转换为布尔后的值:true
空对象 null 转换为布尔后的值:false
非对象 new Object() 转换为布尔后的值:true

6 : Number()和parseInt()的区别 

Number()和parseInt()一样,都可以用来进行数字的转换

区别在于,当转换的内容包含非数字的时候,Number() 会返回NaN(Not a Number)

parseInt() 要看情况,如果以数字开头,就会返回开头的合法数字部分,如果以非数字开头,则返回NaN

    <script> document.write("通过Number() 函数转换字符串'123' 后得到的数字:"+Number("123"));
    //正常的 document.write("<br>");
    document.write("通过Number() 函数转换字符串'123abc' 后得到的数字:"+Number("123abc"));
    //包含非数字 document.write("<br>");
    document.write("通过Number() 函数转换字符串'abc123' 后得到的数字:"+Number("abc123"));
    //包含非数字 document.write("<br>");
    document.write("通过parseInt() 函数转换字符串'123' 后得到的数字:"+parseInt("123"));
    //正常的 document.write("<br>");
    document.write("通过parseInt() 函数转换字符串'123abc' 后得到的数字:"+parseInt("123abc"));
    //包含非数字,返回开头的合法数字部分 document.write("<br>");
    document.write("通过parseInt() 函数转换字符串'abc123' 后得到的数字:"+parseInt("abc123"));
    //包含非数字,以非数字开头,返回NaN document.write("<br>");
    </script>

运行效果:

通过Number() 函数转换字符串'123' 后得到的数字:123
通过Number() 函数转换字符串'123abc' 后得到的数字:NaN
通过Number() 函数转换字符串'abc123' 后得到的数字:NaN
通过parseInt() 函数转换字符串'123' 后得到的数字:123
通过parseInt() 函数转换字符串'123abc' 后得到的数字:123
通过parseInt() 函数转换字符串'abc123' 后得到的数字:NaN

7 : String()和toString()的区别

String()和toString()一样都会返回字符串,区别在于对null的处理
String()会返回字符串"null"
toString() 就会报错,无法执行

    <script> var a = null;
    document.write('String(null) 把空对象转换为字符串:'+String(a));
    document.write("<br>");
    document.write('null.toString() 就会报错,所以后面的代码不能执行');
    document.write(a.toString());
    document.write("因为第5行报错,所以这一段文字不会显示");
    </script>

运行效果:
String(null) 把空对象转换为字符串:null
null.toString() 就会报错,所以后面的代码不能执行

以上就是小编为大家带来的老生常谈javascript的类型转换全部内容了,希望大家多多支持脚本之家~

相关热词搜索: javascript的类型转换