83-----JS基础-----包装类

一 代码

  • 包装类的区别和基本数据类型的区别是:包装类更像一个构造函数,构造完后是一个对象,而基本数据类型就是基本数据类型。

不难,简单看一下即可,开发时应该用到不多。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			/*
             * 不难,注意一下第5点即可。
             *
			 * 基本数据类型
			 * 	String Number Boolean Null Undefined
			 * 引用数据类型
			 * 	Object
			 * 
			 * 1. 在JS中为我们提供了三个包装类,通过这三个包装类可以将基本数据类型的数据转换为对象
			 * 	String()
			 * 		- 可以将基本数据类型字符串转换为String对象
			 * 	Number()
			 * 		- 可以将基本数据类型的数字转换为Number对象
			 *  Boolean()
			 * 		- 可以将基本数据类型的布尔值转换为Boolean对象
			 * 	2. 但是注意:我们在实际应用中不会使用基本数据类型的对象,
			 * 		如果使用基本数据类型的对象,在做一些比较时可能会带来一些不可预期的结果
             * 
             *  3. 包装类的区别和基本数据类型的区别是:包装类更像一个构造函数,构造完后是一个对象,而基本数据类型就是基本数据类型。
			 */
			
			// 4. 创建一些 包装类 类型的对象
			//num = 3;
			var num = new Number(3);
			var num2 = new Number(3);
			var str = new String("hello");
			var str2 = new String("hello");
			var bool = new Boolean(true);
			var bool2 = true;
			
			//向num中添加一个属性
			num.hello = "abcdefg";
			//console.log(str === str2);
			
			var b = new Boolean(false);
			/*if(b){
				alert("我运行了~~~");
			}*/
			
			/*
			 * 5. 方法和属性之能添加给对象,不能添加给基本数据类型,否则会出现属性丢失。
			 * 	当我们对一些基本数据类型的值去调用属性和方法时,
			 * 		浏览器会临时使用包装类将其转换为对象,然后在调用对象的属性和方法
			 * 		调用完以后,在将其转换为基本数据类型。
             * 
             *      所以有时候你像基本类型添加完属性后,打印该属性仍然是undifined。
             *      虽然开始转换为对象,但是最后又被转成基本数据类型,所以该属性是不存在的。
             *      看下面例子。
			 */

			var s = 123;
			s = s.toString();
			console.log(s);             // 123,这样转确实是字符串的123.

            // 但是添加属性的话,就肯定是错误的。
			s.hello = "你好";           // 首先s被转成对象,然后有s.hello="你好",但是最后又转成基本数据类型,所以hello属性没了,故输出undefined。
			console.log(s.hello);       // undefined
			console.log(typeof s);      // string
			
			
		</script>
	</head>
	<body>
	</body>
</html>

おすすめ

転載: blog.csdn.net/weixin_44517656/article/details/121399466