1.4 KiB
1.4 KiB
javascript基础
基础类型与引用类型
类型之前是有区别的 什么叫基础类型 什么叫引用类型呢?
基础类型
- string
- number
- boolean
- null
- undefined
基础类型在传递值的时候会复制自己
var name = "啦啦啦";
var name1 = name;
name1 = "喵喵喵";
alert(name);
alert(name1);
引用类型
- array
- obgect
- function
var obg = {name:"啦啦啦"}
var bog1 = obg
obg1.name = "喵喵喵"
alert(obg.name)
alert(obg1.name)
栈堆
所有的变量都是在栈里面 但是如果创建引用类型的时候会在堆创建 然后只赋值对象地址给栈里面的变量
这个得详细讲一下
当创建变量的时候 会在栈创建一个位置 对应变量名 值为undefined
赋值的时候 会赋值栈里面的值
创建对象的时候 会在堆里面创建一个空间 存储对象 赋值的时候赋的是堆里面的内存地址 就是在堆里面的名字
根据以上的规则 当将一个指向对象的变量赋值给另一个变量的时候 因为只会赋值栈里面的值 所以赋值的是内存地址
修改的时候修改的是同一个内存的对象 所以就会出现修改一个另一个也会同时改变的
作业
- 为什么对象是引用的
- 引用类型与基础类型有什么区别