详解JavaScript的数据类型以及数据类型的转换


Posted in Javascript onApril 20, 2019

基本数据类型

字符串型数据

在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的数据类型以及数据类型的转换详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript 面向对象全新理练之数据的封装
Dec 03 Javascript
jquery弹出关闭遮罩层实例
Aug 06 Javascript
JS页面延迟执行一些方法(整理)
Nov 11 Javascript
为开发者准备的10款最好的jQuery日历插件
Feb 04 Javascript
AngularJs  Understanding Angular Templates
Sep 02 Javascript
node.js Sequelize实现单实例字段或批量自增、自减
Dec 08 Javascript
Node.js设置CORS跨域请求中多域名白名单的方法
Mar 28 Javascript
JS库之ParticlesJS使用简介
Sep 12 Javascript
Nuxt.js开启SSR渲染的教程详解
Nov 30 Javascript
js实现开关灯效果
Mar 30 Javascript
Vue实现导航栏的显示开关控制
Nov 01 Javascript
js+html+css实现手动轮播和自动轮播
Dec 30 Javascript
详解key在Vue列表渲染时究竟起到了什么作用
Apr 20 #Javascript
函数式编程入门实践(一)
Apr 20 #Javascript
vue路由对不同界面进行传参及跳转的总结
Apr 20 #Javascript
详解Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
Apr 20 #Javascript
详解vue使用$http服务端收不到参数
Apr 19 #Javascript
ajaxfileupload.js实现上传文件功能
Apr 19 #Javascript
AjaxFileUpload.js实现异步上传文件功能
Apr 19 #Javascript
You might like
在smarty中调用php内置函数的方法
2013/02/07 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
PHP编程实现的TCP服务端和客户端功能示例
2018/04/13 PHP
jquery实现的超出屏幕时把固定层变为定位层的代码
2010/02/23 Javascript
IE6下出现JavaScript未结束的字符串常量错误的解决方法
2010/11/21 Javascript
微信小程序 五星评价功能的实现
2017/03/09 Javascript
微信小程序 navbar实例详解
2017/05/11 Javascript
在使用JSON格式处理数据时应该注意的问题小结
2017/05/20 Javascript
jquery实现用户登陆界面(示例讲解)
2017/09/06 jQuery
vue router学习之动态路由和嵌套路由详解
2017/09/21 Javascript
jQuery NProgress.js加载进度插件的简单使用方法
2018/01/31 jQuery
layui前端框架之table表数据的刷新方法
2018/08/17 Javascript
JS面试题大坑之隐式类型转换实例代码
2018/10/14 Javascript
详解多页应用 Webpack4 配置优化与踩坑记录
2018/10/16 Javascript
vue 页面跳转的实现方式
2021/01/12 Vue.js
[01:45]2014DOTA2 TI预选赛预选赛 大神专访第二弹!
2014/05/20 DOTA
Python Series从0开始索引的方法
2018/11/06 Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
2019/07/10 Python
python3检查字典传入函数键是否齐全的实例
2020/06/05 Python
基于pycharm 项目和项目文件命名规则的介绍
2021/01/15 Python
Python爬虫制作翻译程序的示例代码
2021/02/22 Python
html5实现移动端适配完美写法
2017/11/16 HTML / CSS
实习自我鉴定模板
2013/09/28 职场文书
十佳教师事迹材料
2014/01/11 职场文书
浙大毕业生自荐信
2014/01/26 职场文书
《登鹳雀楼》教学反思
2014/04/09 职场文书
党员活动日总结
2014/05/05 职场文书
社区党员志愿服务活动方案
2014/08/18 职场文书
十佳青年事迹材料
2014/08/21 职场文书
大一新生检讨书
2014/10/29 职场文书
机器人总动员观后感
2015/06/09 职场文书
青年文明号创建口号大全
2015/12/25 职场文书
Python趣味挑战之给幼儿园弟弟生成1000道算术题
2021/05/28 Python
Linux安装apache服务器的配置过程
2021/11/27 Servers
关于ObjectUtils.isEmpty() 和 null 的区别
2022/02/28 Java/Android
Win11安全功能升级:内置防网络钓鱼功能
2022/04/08 数码科技