详解JavaScript的数据类型以及数据类型的转换
作者:祝祝小樊
基本数据类型
字符串型数据
在JavaScript中,字符串型数据是用引号括起来的文本字符串。
在JavaScript中不区分“字符”和“字符串”,字符也被当做字符串处理。在字符串中可以包括用于特殊目的的字符。
<script type="text/javascript"> var hello = "你好"; //双引号 var name = 'fanyoh'; //单引号 alert(hello + name); </script>
数值型数据
JavaScript中用于表示数字的类型成为数字型,不像其他语言那样区分整型和浮点型。数字型用于双精度浮点值来表示数字数据,可以表示(-2^53 ~ +2^53)区间中的值。数字的值可以用普通记数法也可以使用科学记数法。表示方式:
10,10.1,0.1 表示数字
3e7,0.3e7 表示科学记数
复合数据类型
对象的概念
在面向对象的设计模式中,将数据和处理数据的方法捆绑在一起形成的整体称为对象。它封装了数据和操作数据的方法,使用时要先创建这个对象,用new运算符来调用对象的构造函数。
日期对象
JavaScript将与日期相关的所有特性封装进Date对象,主要用来进行一些与时间相关的操作,比如:获取当前系统时间,使用前要创建该对象的一个实例:
date = new Date(); //直接创建 date = new Date( val ); //指定日期创建 date = new Date(y , m , d[ , h, [ , min[ , sec[ , ms] ]]]); //指定日期创建
全局对象
全局对象是所有全局方法的拥有者,用来统一管理全局方法,全局方法也就是指全局函数。该对象不能使用new运算符来创建对象实例,所有的方法直接调用即可。
数学对象
数学对象(Math)封装了与数学相关的特性,包括一些常数和数学函数,主要使用一些简单的数学基本运算比如:正弦、余弦、正切、取绝对值等;(不需要用new关键字创建,直接使用即可)
字符串对象
String对象封装了与字符串有关的特性,主要用来处理字符串。通过String对象,可以对字符串进行剪切、合并、替换等等。可以调用该对象的构造函数创建一个实例,其实在定义一个字符串类型变量时也就创建了一个String对象实例。
调用String对象的方法或属性形式如“对象名.方法名”或“对象名.属性名”,构造函数如下:
String(strVal[]);
例:将文本串中将李白的《静夜思》的各个部分分别提取出来,并格式化输出。标题加粗,文本居中对齐,诗歌正文颜色显示灰色
<html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <script type="text/javascript"> var comment = "静夜思李白床前明月光,疑是地上霜。举头望明月,低头思故乡。"; var partial = comment.substring(0,3); //取出标题 partial = partial.bold(); //标题加粗 document.write("<p align=\"center\">");//输出HTML标签"<p>",并设置居中对齐 docunment.write(partial); //输出标题 partial = comment.slice(3,5); //取出作者 document.write("<br />"); //输出换行标签<br> document.write(partial); //输出作者 partial = comment.slice(5,17); //取出第一句诗文 partial = partial.fontcolor("gray"); //设置颜色为灰色 document.write("<br />"); document.write(partial); partial = comment.slice(17,29); //取出第二就诗文 partial = partial.fontcolor("gray"); //设置颜色为灰色 document.write("<br />"); document.write(partial); document.write("</p>"); </script> </body> </html>
数组
数组是JavaScript中另一个重要的基本数据类型。内部对象Array封装了所有和数组有关的方法和属性,其内存在多个数据段组合存储。可以形象的理解为一种有很多连续房间的楼层,每个房间都可以存放货物,提取货物时只需要其对应的房间号即可。
例:创建一个数组用于保存古代几位诗人的名字,通过遍历数组逐一输出每个诗人的名字
<html> <head> <meta charset="utf-8" /> <title>数组验证</title> </head> <body> <script type="text/javascript"> var poets = new Array("王维" , "杜甫" , "李白" , "白居易"); document.write("古代几位大诗人:<br/>"); //输出标题 for(n in poets){ document.write("<li>"+ poets[n]+ "</li>") } </script> </body> </html>
其他数据类型
函数
在JavaScript中,“函数”充当了两个角色,一个是运用在数据类型方法,另一个运用在子程序设计方面。关于函数这里不做过多介绍 后面深究。
空值
之前所讲过的每一种JavaScript数据类型都有自己的内容,而编程中需要一种类型来表示“什么都没有”。
Null类型就是为此目的而产生的。其表示一个空值。可以使用null和一个变量进行比较测试该变量是否拥有内容。通常用来判断对象或引用是否承购
<script type="text/javascript"> var x = 10; var y = null; if(x == null) { document.write("x的值是空值<br />"); } if(y == null) { document.write("y的值是空值<br />"); } </script>
不确定型
null值表示一个变量拥有空值。可以理解为已经把“空”给了某个变量,而不确定型undefined则表示一个变量什么都没有得到,连“null”都没有。通常用来判断一个变量是否已经或已经赋值。
数据类型的转换
隐式转换
在程序运行是,系统根据当前上下文的需要,自动将数据从一种类型转换为另一种类型的过程称为隐式转换。
如:document.write()和alert()时很多时候就发生了隐式转换,也就是无论你向这两个方法中输入什么类型的数据最后都会被转换为字符串类型数据。
显示转换
与隐式类型转换相对应的是显示类型转换。此过程需要手动转换到目标类型,要将某一类型的数据转换为另一个类型的数据需要用到特定的方法。
<html> <head> <meta charset="utf-8" /> <title>显示转换</title> </head> <body> <script type="text/javascript"> var priceOfApple = "3元"; var priceOfBanana = "3.5元"; priceOfApple = parseInt(priceOfApple); var priceOfBanana2 = parseInt(priceOfBanana); priceOfBanana = parseFloat(priceOfBanana); if(priceOfApple == 3 && priceOfBanana2 == 3 && priceOfBanana == 3.5) { document.write(priceOfApple + priceOfBanana2 + priceOfBanana); } else { document.write("没有得到预期结果"); } </script> </body> </html>
以上所述是小编给大家介绍的JavaScript的数据类型以及数据类型的转换详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!