作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.JavaScript源代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>基本数据类型和引用数据类型</title>
</head>
<script type="text/javascript">
/**
* 基本数据类型:
* String(字符串)
* Number(数值)
* Boolean(布尔值)
* Null(空值)
* Undefined(未定义)
*
* 引用数据类型:
* Object(对象)
*
* JS中的变量都是保存到栈内存中的,只不过引用数据类型和基本数据类型对应的值有所区别:
* 基本数据类型的值直接在栈内存中存储,值与值之间是独立存在的,修改一个变量不会影响其它的变量;
* 引用数据类型(对象)是保存在堆内存中的,每创建一个新的对象就会在堆内存中开辟一个新的空间,而变量保存的是对象的内存地址(对象的引用);
*
*/
a = 2020;
b = a;
console.log(a);
console.log(b);
//对基本数据类型进行修改
a = a + 100;
console.log(a);
console.log(b);
var obj1 = new Object();
obj1.name = "尹正杰";
var obj2 = obj1;
console.log(obj1.name);
console.log(obj2.name);
//对引用数据类型进行修改
obj2.name = "Jason Yin";
console.log(obj1.name);
console.log(obj2.name);
//将obj1的引用地址设置为null,并不会影响到obj2
obj1 = null;
console.log(obj1);
console.log(obj2);
var x = 100,y=100;
/**
* 当比较两个基本数据类型时,就是比较值
*/
console.log(x == y);
var obj3 = new Object(),obj4 = new Object();
obj3.name = "齐天大圣孙悟空";
obj4.name = "齐天大圣孙悟空";
/**
* 当比较两个引用数据类型时,它们比较的是对象的内存地址,也就是说,两个对象存储的数据是一样的,但它们的内存地址不同,返回的依旧是flase。
*/
console.log(obj3 == obj4);
</script>
<body>
</body>
</html>
二.浏览器打开以上代码渲染结果