美文网首页js css html
面试题总结(一)

面试题总结(一)

作者: 欢宝吖_ | 来源:发表于2022-10-15 12:50 被阅读0次

    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()

    相关文章

      网友评论

        本文标题:面试题总结(一)

        本文链接:https://www.haomeiwen.com/subject/tbdlzrtx.html