首页 > web前端 > js教程 > 正文

javascript 类型转换。

高洛峰
发布: 2016-10-12 11:37:02
原创
1189人浏览过

目录:
1 : 伪对象  
2 : 转换为字符串  
3 : 数字转字符串  
4 : 转换为数字  
5 : 转换为boolean  
6 : number()和parseint()的区别  
7 : string()和tostring()的区别 

1 : 伪对象 
伪对象:javascript是一门很有意思的语言,即便是基本类型,也是伪对象,所以他们都有属性和方法。
变量a的类型是字符串,通过调用其为伪对象的属性length获取其长度 。

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

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

2 : 转换为字符串 
无论是number,boolean还是string都有一个tostring方法,用于转换为字符串 

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

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

3 : 数字转字符串 
number转换为字符串的时候有默认模式和基模式两种 
<script><br/> var a=10; <br/> document.write(&#39;默认模式下,数字10转换为十进制的&#39;+a.tostring()); //默认模式,即十进制<br/> document.write("<br>"); <br/><br/> document.write(&#39;基模式下,数字10转换为二进制的&#39;+a.tostring(2)); //基模式,二进制<br/> document.write("<br>"); <br/> <br/> document.write(&#39;基模式下,数字10转换为八进制的&#39;+a.tostring(8)); //基模式,八进制<br/> document.write("<br>"); <br/><br/> document.write(&#39;基模式下,数字10转换为十六进制的&#39;+a.tostring(16)); //基模式,十六进制<br/> document.write("<br>"); <br/><br/></script>
运行效果:
默认模式下,数字10转换为十进制的10
基模式下,数字10转换为二进制的1010
基模式下,数字10转换为八进制的12
基模式下,数字10转换为十六进制的a

4 : 转换为数字
javascript分别提供内置函数 parseint()和parsefloat(),转换为数字

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

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

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

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

<script><br/> document.write("空字符串&#39;&#39;转换为布尔后的值:"+boolean("")); //空字符串<br/> document.write("<br>");<br/> document.write("非空字符&#39;hello javascript &#39;串转换为布尔后的值:"+boolean("hello javascript")); //非空字符串<br/> document.write("<br>");<br/> document.write("数字 0 转换为布尔后的值:"+boolean(0)); //0<br/> document.write("<br>");<br/> document.write("数字 3.14 转换为布尔后的值:"+boolean(3.14)); //非0 <br/> document.write("<br>");<br/> document.write("空对象 null 转换为布尔后的值:"+boolean(null)); //null<br/> document.write("<br>");<br/> document.write("非对象 new object() 转换为布尔后的值:"+boolean(new object())); //对象存在<br/> document.write("<br>");<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><br/> document.write("通过number() 函数转换字符串&#39;123&#39; 后得到的数字:"+number("123")); //正常的<br/> document.write("<br>");<br/> document.write("通过number() 函数转换字符串&#39;123abc&#39; 后得到的数字:"+number("123abc")); //包含非数字<br/> document.write("<br>");<br/> document.write("通过number() 函数转换字符串&#39;abc123&#39; 后得到的数字:"+number("abc123")); //包含非数字<br/> document.write("<br>");<br/><br/> document.write("通过parseint() 函数转换字符串&#39;123&#39; 后得到的数字:"+parseint("123")); //正常的<br/> document.write("<br>");<br/> document.write("通过parseint() 函数转换字符串&#39;123abc&#39; 后得到的数字:"+parseint("123abc")); //包含非数字,返回开头的合法<br/><br/>数字部分<br/> document.write("<br>");<br/> document.write("通过parseint() 函数转换字符串&#39;abc123&#39; 后得到的数字:"+parseint("abc123")); //包含非数字,以非数字开头,<br/><br/>返回nan<br/> document.write("<br>");<br/><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><br/> var a = null;<br/> document.write(&#39;string(null) 把空对象转换为字符串:&#39;+string(a)); <br/> document.write("<br>"); <br/> document.write(&#39;null.tostring() 就会报错,所以后面的代码不能执行&#39;); <br/> document.write(a.tostring()); <br/> document.write("因为第5行报错,所以这一段文字不会显示"); <br/></script>

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

Learn from yesterday, live for today, hope for tomorrow.

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号