这里有新鲜出炉的 Javascript 教程,程序狗速度看过来!
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
下面小编就为大家带来一篇老生常谈 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() 就会报错,所以后面的代码不能执行
来源: http://www.phperz.com/article/17/0522/331268.html