乐趣区

JavaScript基础

最新的 ECMAScript 标准定义了 7 种数据类型:。

  • Boolean:布尔类型,值为 true 或 false
  • String:字符串类型,值要使用双引号或者单引号括起来
  • Number:64 位双精度浮点型的数字数据类型
  • Null:null 值一直是一个被讨论点,通常来说,表示一个不存在或者无效 object 或者地址引用。语言实现中空引用的含义各不相同。
  • Undefined:一个原始值自动分配给刚刚声明的变量或没有实际参数的形式参数。
  • Symbol:ECMAScript 6 新定义
  • Object:指包含了数据和处理数据指令的数据结构(在 JavaScript 中除了基本数据类型以外的都是对象,数据是对象,函数是对象,正则表达式是对象)

以上 7 种数据类型中 Object 是引用数据类型,那么基本数据类型和引用类型的区别是啥呢?

基本数据类型是存放在栈中,他们存储的是对应的值,每个基本类型的在栈中的存储空间的大小是确定的

var x = 10
var y = x
    y = 20
console.log(x) // 10
console.log(y) // 20

栈内存中初始存放的值

变量
x 10

栈内存中添加 y,并把 x 的值赋值给 y

变量
x 10
y 10

修改 y 的值

变量
x 10
y 20

引用数据类型是存放在堆内存中的对象,在栈中其实是保存的是指向对内存的一个地址,通过这个地址来寻找对象

var animal = new Object()
var dog = animal
dog.bark = '汪汪'
console.log(animal.bark)

退出移动版