webveuje/javascriptpress/4.javascript基础.md
2021-01-08 09:33:23 +08:00

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)

栈堆

wechatimg104

所有的变量都是在栈里面 但是如果创建引用类型的时候会在堆创建 然后只赋值对象地址给栈里面的变量

这个得详细讲一下

当创建变量的时候 会在栈创建一个位置 对应变量名 值为undefined

赋值的时候 会赋值栈里面的值

创建对象的时候 会在堆里面创建一个空间 存储对象 赋值的时候赋的是堆里面的内存地址 就是在堆里面的名字

根据以上的规则 当将一个指向对象的变量赋值给另一个变量的时候 因为只会赋值栈里面的值 所以赋值的是内存地址

修改的时候修改的是同一个内存的对象 所以就会出现修改一个另一个也会同时改变的

作业

  • 为什么对象是引用的
  • 引用类型与基础类型有什么区别