javascript基础(基本数据类型转换)(六)

本文详细介绍了JavaScript中五种基本数据类型的相互转换方法,包括如何将数据类型转换为String、Number和Boolean,以及在不同场景下使用的具体技巧。

1.转换成String类型:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			
			/*
			 	JS中一共有5种基本数据类型
			 		String
			 		Number
			 		Boolean
			 		Null
			 		Undefined
			 	- 所谓的类型转换就是值将其他的数据类型转换为String Number 或 Boolean
			 	- 强制类型转换
			 		- 转换为String
			 		- 转换为Number
			 		- 转换为Boolean
			 * */
			
			/*
			 	将其他的数据类型转换为String
			 		- 方式一:
			 			- 调用被转换数据类型的toString()方法
			 			- toString()方法不会改变原变量的值,而是将值转换为字符串并返回
			 			- 由于null和undefined中没有toString()方法,
			 				所以不能调用toString()将他们转换为字符串
			 				
			 		- 方式二:		
			 			- 调用String()函数
			 			- 将被转换的数据做为参数传递给String()
			 			- 原理:
			 				- 对于具有toString()方法的类型来说,
			 					String()会调用它们的toString()方法来将其转换为字符串
			 				- 对于null和undefined来说,
			 					会将null 直接转换为 "null"
			 					将undefined 直接转换为 "undefined"
			 			
			 	
			 	调用 XXX的YYY方法就是 XXX.YYY()
			 	document.write();
			 	console.log();
			 	
			 	调用XXX函数就是XXX()
			 	alert()
			 		
			 * */
			
			var a = 123; //"123"
			
			//调用a的toString()方法来将a转换为字符串
			a = a.toString();
			
			a= true;
			a = a.toString();
			
			a = undefined;
			//由于Undefined中没有toString()方法,所以以下代码会报错
			//a = a.toString();
			
			/*a = null;
			a = a.toString();*/
			
			
			a = 10;
			
			//调用String()函数来将a转换为字符串
			a = String(a);
			
			a = null;
			a = String(a);
			
			a = undefined;
			a = String(a);
//			a = a.toString();
			console.log(a);
			console.log(typeof a);
			
		</script>
	</head>
	<body>
	</body>
</html>
2.转换为Number
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			
			var a = 15;
			
			/*
			 	对于数字来说,toString()方法,除了可以将一个数字转换为字符串以外,
			 		它还可以将一个数字转换为指定进制的字符串
			 	在数值的toString()方法中,可以传递一个进制的整数作为参数,
			 		这样数值将会被转换为指定进制的数字的字符串
			 * */
			a = a.toString(16);
			
			/*console.log(a);
			console.log(typeof a);*/
			
			
			/*
			 	转换为Number
			 		- 方式一:
			 			- 使用Number()函数
			 			- 转换的情况:
			 				1.对于字符串来说
			 					- 如果字符串是一个合法的数字,则将其转换为对应的数字
			 					- 如果字符串不是一个合法的数字,则转换为NaN
			 					- 如果字符串是一个空串或纯空格的字符串,则转换为0
			 					
			 				2.对于布尔值来说
			 					- true转换为1
			 					- false转换为0
			 					
			 				3.对于Null
			 					- null转换为0
			 					
			 				4.对于Undefined
			 					- undefined转换为NaN
			 * */
			
			var b = "123px";//NaN
			b = "123";//123
			b = "abc";//NaN
			b = ""; //0
			b = "    "; //0
			
			//调用Number()函数将b转换为数字
			b = Number(b);
			
			//布尔值
			b = true; //1
			b = false; //0
			b = Number(b);
			
			//Null
			b = null;
			b = Number(b);
			
			//Undefined
			b = undefined;
			b = Number(b);
			
			console.log("b="+b);
			console.log(typeof b);
//			
			
			/*
			 * 除了使用Number()函数,JS中还为我们提供了两个函数,
			 * 	专门用来将一个字符串转换为数字的
			 *  parseInt()
			 * 		- 将一个字符串转换为整数
			 * 		- 使用该函数解析字符串时,它会从字符串的左侧开始解析,
			 * 			直到解析到最后一个有效的整数位
			 * 	parseFloat()
			 * 		- 将一个字符串转换为小数
			 * 		- parseFloat()和parseInt()类似
			 * 			不同的是它可以解析到有效的小数位
			 */
			
			var c = "456px"; //456
			
			c = "789a678b456"; //789
			
			c = "123.456"; //123
			
			/*
			 * 像"070"这样的字符串,火狐 chrome等浏览器会当成10进制数字进行解析,转换为70
			 * 	但是IE8,会将其当成8进制的数字解析,解析为56
			 * 
			 * 在使用parseInt时,可以传递以进制作为参数,来说明数字的进制
			 */
			c = "070";
			
			//调用parseInt将其转换为Number
			c = parseInt(c,10);
			
			/*console.log(c);
			console.log(typeof c);*/
			
			var d = "123.45px";//123.45
			d = "123.45.67"; //123.45
			d = "hello123"; //NaN
			
			d = parseFloat(d);
			
//			console.log(d);
//			console.log(typeof d);
//			
			
		</script>
	</head>
	<body>
	</body>
</html>

3.转换为Boolean

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			
			/*
			 * 转换为Boolean
			 * 	- 使用Boolean()函数
			 * 	- 转换的情况:
			 * 		- 对于数字
			 * 			- 除了0和NaN剩下都是true
			 * 
			 * 		- 对于字符串
			 * 			- 除了空串剩下的都是true
			 * 
			 * 		- null和undefined都是false
			 * 
			 * 		- 对象默认都是true
			 */
			
			var a = 1; //true
			a = -100; //true
			a = Infinity; //true
			a = 0; //false
			a = NaN; //false
			
			//调用Boolean()来将a转换为Boolean
			a = Boolean(a);
			
			a = "hello"; //true
			a = "false"; //true
			a = ""; //false
			a = "   "; //true
			a = "0"; //true
			a = Boolean(a);
			
			a = null;
			a = Boolean(a);
			
			a = undefined;
			a = Boolean(a);
			
			console.log(a);
			console.log(typeof a);
			
			
		</script>
	</head>
	<body>
	</body>
</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咸鸭蛋炒饭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值