zoukankan      html  css  js  c++  java
  • 深拷贝和浅拷贝

    数据类型:

    简单数据类型:Number,String,Boolean,Undefined,Null

    复杂数据类型:Object(对象,Array)

    深拷贝和浅拷贝:

    浅拷贝:拷贝后不会生成新的数据,而是拷贝引用,修改拷贝后的数据会影响原数据

    深拷贝:拷贝数据后会生成一份新的数据,修改拷贝后的数据不会影响原数据

    浅拷贝方法:

    1.直接赋值

    2.Object.assign()

    3.Array.prototype.concat()

    4.Array.prototype.slice()

    深拷贝方法:

    JSON.parse(JSON.stringify()),局限性:不能处理拷贝的数据中的函数

    数据类型检测的方法:

    1.typeof

      返回数据类型的字符串:"number","string","boolean","undefined","function","object"

      局限性:对象,数组和空类型都返回Object

    2.instanceof

      A instanceof B 判断A是否是B的实例,返回ture/false  

     3.Object.prototype.toString.call(检测对象).slice(8,-1)

     检测Null:

     检测数组:

     检测对象:

     检测函数:

    for...in循环数组和对象 :

     循环对象输出的i为key值:

    循环数组输出的i为下标:

     

    用代码实现一个深拷贝:

     1.封装类型检测函数:

     2.封装克隆函数

     经过检查,实现了一个深拷贝

  • 相关阅读:
    多屏共享
    md5-linux_shell
    2017年会所得
    linux无线网络配置_转
    (转)台式机华硕主板双显卡切换,怎么舒服怎么来
    Apache FtpServer 实现文件的上传和下载
    (转载)Windows 上搭建Apache FtpServer
    Eclipse常用设置
    博客园文章样式修改
    黑马公社学习
  • 原文地址:https://www.cnblogs.com/zxmonster/p/11982147.html
Copyright © 2011-2022 走看看