Java教程

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

本文主要是介绍【九月打卡】第11天 BAT大牛带你横扫初级前端JavaScript面试(第二版),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

学习课程名称: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类型

识别出函数

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

深拷贝和浅拷贝

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

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


图片描述

这篇关于【九月打卡】第11天 BAT大牛带你横扫初级前端JavaScript面试(第二版)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!