js -> 数据类型

69 阅读2分钟

js 算是一个野蛮生长的语言,历史原因的导致 js的数据类型会有某些个特殊的情况

1:从大的方向来分 js数据类型分为基础数据类型和引用数据类型

基础数据类型有7种 分为Number String Boolean Undefined Null BigInt Symbol

引用类型 包括Array Function 等

js 中最大的让人难以理解的其实就是Undefined和Null类型

  • null 是最早设计的,作为一种空引用类型,用来表示变量没有指向任何对象。

  • undefined 则是在后来的版本中引入的,用来表示 未初始化的变量没有返回值的函数

js早期的时候 变量未赋值时会得到 undefined 作为默认值,但这种行为并没有明确的标识符来表示 比如 在js 中对于定义一个变量未进行赋值默认是undefined 还有函数的未定义返回值 也是默认undefined 读取对象中某个变量未进行赋值 这时候也是undefined,这个可以说是js 默认的一个值的机制 后面才专门引入了 Undefined 类型来区分 *未初始化的变量 和 空引用类型

基础数据类型在栈内存 值不可改变 引用类型在堆内存 存储的是一个引用地址 可以改变(这个可以改变的场景分成两种 一种是本身将引用类型的值进行改变)比如const b={c:3} b.c=4 另外一种是比如 const b={d:5} const c=b 将某个引用类型进行赋值这时候赋值的仅仅只是引用地址而不是像基础类型将重新在栈中开辟一个内存空间 并且重新赋值过来 所以这时候对于c.d=7 的改变 就会影响到原来引用类型对象里面的值