Skip to content
静心静心
HOME
DoubtfulCases
github icon
  • JAVASCRIPT

    • 封装Ajax
      • 面试题
        • 模块化JQuery
          • 深拷贝和浅拷贝
            • 深拷贝和浅拷贝问题
            • 有趣的javascript
              • 原型链
                • FAjax copy
                  • Javascrpt 中 方法
                    • JS获取数组的最后一项
                      • js正则正方向查找
                        • js重要
                          • 数字滚动
                            • 纯css手风琴
                              • JS设置全局变量
                                • JS 寄生式组合继承

                                author iconYYtimer icon大约 1 分钟

                                此页内容
                                • 深拷贝和浅拷贝问题

                                # 深拷贝和浅拷贝问题

                                # 1、深拷贝

                                JSON.parse(JSON.stringify);
                                
                                
                                深拷贝:在堆中重新分配内存,不同的地址,相同的值,互不影响
                                可以实现深拷贝。
                                
                                1
                                2
                                3
                                4
                                5

                                # 2、浅拷贝

                                • 浅拷贝:仅仅是复制了引用,彼此之间的操作会互相影响
                                //第一个
                                    // let a = [1, 2, 3, 4];
                                    // let b = a.slice();
                                    // console.log(System);
                                    // console.log(System.identityHashCode(b));
                                    // console.log(a === b);  false
                                    // a[0] = 5;
                                    // console.log(a); 
                                    // console.log(b); 
                                    //第二个
                                    // let a = [1, 2, 3, 4];
                                    // let b = a.concat();
                                    // console.log(a === b);  false
                                    // a[0] = 5;
                                    // console.log(a);
                                    // console.log(b);
                                    // // //第三个
                                    let a = [[1, 2], 3, 4];
                                    let b = a.slice();
                                    console.log(a === b);  false
                                    a[0][0] = 0;
                                    console.log(a);
                                    console.log(b);
                                
                                1
                                2
                                3
                                4
                                5
                                6
                                7
                                8
                                9
                                10
                                11
                                12
                                13
                                14
                                15
                                16
                                17
                                18
                                19
                                20
                                21
                                22
                                23

                                # 3、基本数据类型

                                ECMAScript中的数据类型可分为两种:
                                
                                基本类型:undefined,null,Boolean,String,Number,Symbol
                                引用类型:Object,Array,Date,Function,RegExp等
                                
                                不同类型的存储方式:
                                
                                基本类型:基本类型值在内存中占据固定大小,保存在栈内存中
                                引用类型:引用类型的值是对象,保存在堆内存中,而栈内存存储的是对象的变量标识符以及对象在堆内存中的存储地址
                                
                                作者:棕小渐
                                链接:https://juejin.cn/post/6844903608010407944
                                来源:掘金
                                著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
                                
                                1
                                2
                                3
                                4
                                5
                                6
                                7
                                8
                                9
                                10
                                11
                                12
                                13
                                14
                                edit icon编辑此页open in new window
                                上一页
                                模块化JQuery
                                下一页
                                有趣的javascript
                                傻瓜都能写出计算机可以理解的代码。唯有能写出人类容易理解的代码的,才是优秀的程序员。
                                Copyright © 2022 YY

                                该应用可以安装在您的 PC 或移动设备上。这将使该 Web 应用程序外观和行为与其他应用程序相同。它将在出现在应用程序列表中,并可以固定到主屏幕,开始菜单或任务栏。此 Web 应用程序还将能够与其他应用程序和您的操作系统安全地进行交互。

                                详情