基本数据类型和引用数据类型的区别:

编辑器所开发的代码都是推送到浏览器。浏览器再解析代码。代码就相当于浏览器的工人,为浏览器提供好多功能(展示和交互);
浏览器得到代码后开始解析代码,在浏览器的后台开辟一个工作空间叫栈内存(全局作用域 =>window),来从上到下解析我们js代码。将基本数据类型存在当前栈里边,解析到引用数据类型的时候,他会接着做另一个辅助工作,在浏览后台开辟一个堆内存(私有作用域),来储存我们的代码字符;

解析代码需要---工作环境---栈内存(作用域) --- 全局作用域
var  obj  = {
    name'zx',
    age26
};
//创建一个对象,创建一堆内存引用地址,赋值给我们变量 obj;
var obj2 obj;

// 创建一个变量,obj2;给他赋值obj的数据引用地址,所以现在两个变量,指向同一个数据的引用地址;
obj2.name '三剪子';
console.log(obj.name);// '三剪子'

obj2.add 'apple';
console.log(obj.add); //'apple'
基本数据类型和引用数据类型的区别:所以obj2改变了函数的内容,obj也会改变;
基本数据类型和引用数据类型的区别:_第1张图片

var num 6; //基本数据类型的值 只是单纯的赋值 , 在栈内工作,不会产生堆
var num2 num; // 只是单纯的获得栈内值 1
num 3; // 只是将当前变量的值给覆盖修改了;num没有地址只有值
console.log(num2);  //6
// 没有指向问题(没有堆内存,没有引用数据类型)变量之间就不会互相影响。
下图为引用数据类型在浏览器中的解析:应用数据类型只是引用了堆内存的地址;

你可能感兴趣的:(JS类)