第二篇:关于数据类型转换

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_37252943/article/details/54317300

在上一篇的博文中第四点里面写到了五种数据类型,接下来这篇就详细点说一下这五种数据类型。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			var a = 1;
			var b = 'aaa';
			var c = true;
			var d;
			e;
		</script>
	</head>
	<body>
	</body>
</html>

在上面的代码中,分别创建了四个变量a、b、c、d。
  • a变量,也就是字面上的意思,是个数字类型。
  • b变量,在单引号里面有aaa这个内容,就是为字符串类型。
  • c变量内容为true,也就是判断用,所以是Boolean布尔类型。
  • d变量并没有任何的内容,所以他是一个空类型。
  • 至于最后一种未定义类型,可以理解为未被创造。当你想要输出一个名为e的变量的时候,浏览器就会告诉你e是未定义的,所以可以理解为未被创造。

下面,再说一下强制类型转换

var a = '666';
var b = parseInt(a);
var c = typeof(b);
alert(b);
alert(c);

在上面的代码中,a变量是一个字符串类型(注意的是666这个数字已经被单引号给括住了,所以是字符串类型),当新建一个变量b,并且把通过parseInt方法转换类型的a变量传到b里面的时候,b变量就会变成一个内容为666的数字类型数据了。


var aa = '666aaa';
var bb = parseInt(aa);
var cc = typeof(bb);
alert(bb);
alert(cc);

而第二段,aa这个变量里面掺杂了英文,肯定是一个字符串了。当变量aa通过parseInt方法转换类型之后,传给bb,变量bb就会变成一个内容只有666的数字类型数据。所以,parseInt方法的另外一个作用就是将以数字开头的字符串去掉字符之后转换为数字类型数据。但这里要注意一个问题,这个方法的作用范围是以数字开头的字符串,所以当一个以字符开头的字符串转换类型后得出的,是一个NAN(not a number),而且,当数字之间被字符隔开了,后面的数字也就无法被获取了。


var aaa = 666.66;
var bbb = parseInt(aaa);
var ccc = typeof(bbb);
alert(bbb);
alert(ccc);

再看第三段。aaa是一个有小数的数字类型数据,当通过parseInt方法转换过后再赋给bbb之后,bbb的内容就是一个内容为666的数字类型数据。因而parseInt方法还有一个作用就是去除小数。


var d = '5';
var e = 4;
alert(d-e);
alert(typeof(d-e));
//隐式类型转换  -  *  /  %  ==
//+不会转换,只会拼接         ===为恒等号,只会判断

最后一段。变量d是字符串类型(原因参照上文),而变量e是数字类型。当用d减去e之后,输出的结果是1,也就是数字类型的数据。那么问题就来了,为什么不同的数据类型可以相互进行减法呢?原因就在于减号‘-’。在进行减法运算的时候,系统会自动地将两边的数据类型转换为数字类型(当然,前提是两个数据转换类型后都必须要有结果,不能为NAN),然后再进行减法运算。所以,这里就涉及了一个知识,叫做隐式类型转换。而执行隐式类型转换的运算符号就只有  -  *  /  %  ==   这几个了。而加号+只会将两边的数据进行拼接并形成一个新的字符串。另外一个恒等符===,只会进行比较,不会将两边的数据进行类型转换。所以当上面的d和e用恒等符进行比较的结果就是false。


总结来说,这次介绍的主要就是parseInt方法的三个运用和隐式类型转换符号。下篇将会介绍上篇里提及的代码结构。

呃,如果本文内容有错误,下方评论吧。。。

猜你喜欢

转载自blog.csdn.net/weixin_37252943/article/details/54317300