继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【九月打卡】第11天 BAT大牛带你横扫初级前端JavaScript面试(第二版)

慕数据9484764
关注TA
已关注
手记 49
粉丝 3
获赞 2

学习课程名称:BAT大牛带你横扫初级前端JavaScript面试(第二版)
章节名称:课程介绍(新版)
讲师姓名:双越


课程内容:

  1. 值类型和引用类型
  2. typeof和深拷贝
  3. 变量计算

类型基础及背后的工作原理

数据在内存中的分配及传递,值类型和引用类型在内存分配与传递上的区别

在内存分配上:首先要了解内存中栈和堆的概念

栈:先进后出,从上往下的内存结构

堆:后进先出,从下往上的内存结构

当A变量为值类型时,把A赋值给变量B,尝试改变A的值,B不会随之改变,两者互不影响(不干涉);

而A为引用类型时,尝试上述相同赋值操作,之后改变B下面属性的值,则A随之改变;

引用类型为啥就必须赋值内存地址?

主要原因:还是考虑到性能和存储的问题;值类型占有空间比较小,直接赋值上去没有问题,另外赋值上去,相互也没有影响。引用类型在实际工作中,通常都是非常大的,如果直接像值类型一样,赋值上去,首先会太大了,还有就是赋值的时候,会太慢了;所以值类型和引用类型被严格的分离出来,它们的存储机制,赋值机制,拷贝机制也都分离出来。基于内存的空间和CPU计算的耗时来去做的区分,并不是故意为难,不得已而为之。

typeof运算符

可以识别所有值类型

  1. String类型
  2. Number类型
  3. Boolean类型
  4. Null类型
  5. Undefined类型
  6. Symbol类型

识别出函数

判断是否是引用类型(不可再细分)

深拷贝和浅拷贝

浅拷贝 :只复制指向某个对象的指针,而不复制对象本身,相当于是新建了一个对象,该对象复制了原对象的指针,新旧对象还是共用一个内存块

深拷贝:是新建一个一模一样的对象,该对象与原对象不共享内存,修改新对象也不会影响原对象


图片描述

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP