let const var相关、js数据类型

let const var相关、js数据类型

let const var相关

var

  • ES5的变量声明方式,在变量未赋值的时候,值为undefined。存在变量提升,即变量可以在声明之前调用,不过值是undefined。
  • 作用域——var的作用域为方法作用域;只要在方法内定义了,整个方法内的定义变量后的代码都可以使用。

let

  • ES6的变量声明方式,不存在变量提升,在变量声明前调用会报错。
  • 作用域——let的作用域为块级作用域,通常let比var的作用域方位要小。
  • let禁止重复声明变量,会报错;var可以重复声明。

const

  • ES6的变量声明方式,声明变量时必须初始化(必须赋值,不能使用null占位),在后面出现的代码中不能再修改该常量的值。
  • 作用域——块级作用域。
  • const实际上保证的,并不是变量的值不得改动,而是变量指向的内存地址不得改动。(因此可以修改对象中的值)

js数据类型(八大数据类型)

基本数据类型

  • Number
  • String
  • Boolean
  • null
  • undefined
  • symbol(ES6新增)
  • bigint(ES6新增)

引用数据类型

  • object(object、array、function等)

两种数据的存储方式:

基本数据类型直接存储在栈中,占据空间小,大小固定,属于被频繁使用的数据。栈是存储基本数据类型和执行代码的空间。

引用数据类型是存储在堆内存中的,占据空间大,大小不固定。引用数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址,当解释器寻找引用值的时候,会检索栈中的地址,取得地址后从堆中获得实体。


两种数据类型的区别:

  • 堆比栈空间大,栈比堆运行速度快。
  • 堆内存是无序存储,可以根据引用地址直接获取。
  • 基本数据类型比较稳定,相对来说占用内存小。
  • 引用数据类型大小是动态的,而且是无限的。
posted @ 2022-08-18 21:17  笔下洛璃  阅读(49)  评论(0)    收藏  举报