面试题总结(一)

js有几种类型

两种:简单数据类型和引用数据类型

简单数据类型包括:Number、String、Boolean、Null、 Undefined、Symbol(ES6)

引用数据类型包括:数组,对象,函数

简单数据类型与引用数据类型的区别

简单数据类型包括:Number、String、Boolean、Null、 Undefined、Symbol(ES6)

引用数据类型包括:数组,对象,函数

区别:简单数据类型是直接按值存放在栈中,也可以直接按值访问;引用数据类型是存放在堆里的对象,它在栈中存放的是堆里面的引用地址,访问也是访问引用地址,不是直接访问值。

堆和栈的区别

栈内存:引擎执行代码时工作的内存空间,除了引擎,也用来保存基本值和引用类型值的地址。 栈内存是内存中用于存放临时变量的一片内存块。当声明一个基本变量时,它就会被存储到栈内存中。
栈内存的特点:存取速度快,但不灵活,同时由于结构简单,在变量使用完成后就可以将其释放,内存回收容易实现。

堆内存:用来保存一组无序且唯一的引用类型值,可以使用栈中的键名来取得。
我们在访问引用类型时,需要在栈内存中查找 对应的地址,在去堆内存中取得真正的值,访问速度自然不及栈内存。
堆内存的特点:使用灵活,可以动态增加或删除空间,但是存取比较慢

深浅拷贝以及实现深浅拷贝的方法

深拷贝:拷贝数据,改变旧对象的数据的时候,新对象的数据不会改变

浅拷贝:拷贝引用地址,改变旧对象的数据的时候,新对象的数据也会跟着改变

实现深拷贝的方法: 1. JSON.parse(JSON.stringify()) 2. 递归for-in 3. jQuery $.extend() 4. _.cloneDeep()

实现浅拷贝的方法: 1. 剩余(扩展)运算符 2. concat() 3. Object.assign() 4. slice()

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容