zoukankan      html  css  js  c++  java
  • 常见前端面试题02

    堆栈内存+闭包作用域

    堆:存储引用类型值的空间
    栈:存储基本类型值和指定代码的环境
    在这里插入图片描述
    答案:培训,对象的key数字和字符串等效

    在这里插入图片描述
    答案:珠峰,Symbol的特点,都是唯一的
    在这里插入图片描述
    答案:培训,key会转化成字符串[Obejct object]
    在这里插入图片描述
    答案:‘4’,alert弹出的会转化成字符串
    在这里插入图片描述
    答案:‘1’ ‘4’。
    在这里插入图片描述

    深拷贝浅拷贝

    引用数据类型一般的操作,如直接赋值,展开运算符都是进行了浅拷贝
    如果引用数据类型结构只有一层,可以用循环来进行深拷贝,或者用JSON.stryfing 来进行深拷贝。
    但使用转化为字符串的办法,当咱们数据里有函数以及正则的时候,会出现问题,所以这种方法是有局限性的。

    我们可以利用一个第三方的包来进行深拷贝,lodash里提供了进行深拷贝的api。
    我们来简单的实现的实现一个深拷贝函数。

     function deepCopy(obj) {
            let newObj = new Object();
            if (typeof obj !== "object") return obj;
            if (typeof obj == null) return null;
            if (obj instanceof RegExp) {
              return new RegExp(obj);
            }
            if (obj instanceof Date) {
              return new Date(obj);
            }
            for (let key in obj) {
              if (obj.hasOwnProperty(key)) {
                newObj[key] = deepCopy(obj[key]);
              }
            }
          }
    

        感谢您花时间阅读此篇文章,如果您觉得看了这篇文章之后心情还比较高兴,可以打赏一下,请博主喝上一杯咖啡,让博主继续码字……
        本文版权归作者和博客园共有,来源网址:https://blog.csdn.net/weixin_46498102 欢迎各位转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接
  • 相关阅读:
    IOS8定位
    ios通讯录基本操作2014-12月版
    ios悬浮按钮的实现
    MartinLiPageScrollView广告栏实现
    ios分享(友盟分享)
    vue2.0路由-适合刚接触新手简单理解
    git链接GitHub命令及基本操作
    Node
    JS数组sort()排序
    原生JS获取CSS样式并修改
  • 原文地址:https://www.cnblogs.com/jackson1/p/13780680.html
Copyright © 2011-2022 走看看