纵有疾风起
人生不言弃

JS基础类型与引用类型

  • 基本类型值(数值、字符串、布尔值、null和undefined):指的是保存在栈内存中的简单数据段;
  • 引用类型值(对象、数组、函数、正则):指的是那些保存在堆内存中的对象,变量中保存的实际上只是一个指针,这个指针执行内存中的另一个位置,由该位置保存对象。
    两种访问方式:
  • 基本类型值:按值访问,操作的是他们实际保存的值;
  • 引用类型值:按引用访问,当查询时,我们需要先从栈中读取内存地址,然后再顺藤摸瓜地找到保存在堆内存中的值;
    JS基础类型与引用类型插图

    两种类型复制:

  • 基本类型变量的复制:从一个变量向一个变量复制时,会在栈中创建一个新值,然后把值复制到为新变量分配的位置上;

    JS基础类型与引用类型插图1
  • 引用类型变量的复制:复制的是存储在栈中的指针,将指针复制到栈中未新变量分配的空间中,而这个指针副本和原指针执行存储在堆中的同一个对象;
    复制操作结束后,两个变量实际上将引用同一个对象;因此改变其中的一个,将影响另一个;

    JS基础类型与引用类型插图2

文章转载于:https://www.jianshu.com/p/482e4484dc78

原著是一个有趣的人,若有侵权,请通知删除

未经允许不得转载:起风网 » JS基础类型与引用类型
分享到: 生成海报

评论 抢沙发

评论前必须登录!

立即登录