e 1 年間 前
コミット
c382d7baf8
5 ファイル変更187 行追加1 行削除
  1. 1 1
      JS高级/7.类数组.html
  2. 42 0
      html5/10.深克隆3.html
  3. 75 0
      html5/7.json.html
  4. 28 0
      html5/8.深克隆1.html
  5. 41 0
      html5/9.深克隆2.html

+ 1 - 1
JS高级/7.类数组.html

@@ -28,7 +28,7 @@
         // document.getElementsByClassName
         // console.log(document.querySelectorAll("ul li"));
         var news = document.querySelectorAll("ul li");
-        new.push("000");
+        news.push("000");
         console.log(news,'news');
         // 类数组转成正常数组 
         let list = [...news];

+ 42 - 0
html5/10.深克隆3.html

@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Document</title>
+</head>
+<body>
+    <script>
+        var news = {
+            name: '赵家锐',
+            age: 29,
+            msg: {
+                address: '哈尔滨',
+                sex: '男'
+            }
+        }
+        var arr = ['list',[100,98]];
+        var arr = 1;
+        function deepClone(data) {
+            var temp = {};
+            if(typeof data == 'object') {
+               temp = Array.isArray(data) ? [] : {};
+               for(var key in data) {
+                if(typeof(data[key]) == 'object' ) {
+                    temp[key] = deepClone(data[key]);
+                } else {
+                    temp[key] = data[key];
+                }
+               }
+            } else {
+                temp = data
+            }
+            return temp;
+        }
+       var arr1 = deepClone(arr);
+       arr1[1][1] = 12;
+       console.log(arr1,'arr1');
+       console.log(arr,'arr');
+    </script>
+</body>
+</html>

+ 75 - 0
html5/7.json.html

@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Document</title>
+</head>
+<body>
+    <!-- 
+        JSON => JavaScript Object Natation
+                    对象  表示 数据结构
+     -->
+     <script>
+        // js对象
+        var obj = {
+            name: "zs"
+        }
+        /** json 对象
+         * var xxx = '{"属性名":"属性值"}'
+         * 注意:"单引号" 包含 "双引号"
+        */
+        var obj1 ='{"name":"ls"}';
+        console.log(obj,'3');
+        console.log(obj1);
+        var list = [
+            {name:'a',id:1},
+            {name:'ab',id:2},
+            {name:'abc',id:3}
+        ]
+        // 数组包对象
+        var newList = '[{"name":"a","address":"哈尔滨"},{"name":"b","address":"北京"},{"name":"c","address":"天津"}]'
+        console.log(newList,'1');
+
+        // 将JSON对象转成JS对象JSON.parse()
+        var news = JSON.parse(newList);
+        console.log(news,'2');
+        
+        // 将JS对象转成JSON对象 JSON.stringify()
+        var obj2 = JSON.stringify(obj);
+        console.log(obj2,'4')
+
+
+        /**
+         * 堆:引用数据类型
+         * 栈:基本数据类型 引用数据类型指针
+        */
+       // 深拷贝、深克隆:将一个变量的值赋给另一个变量 修改其中一个变量 原有的变量不发生改变
+       var obj3;
+       obj3 = obj1;
+       obj3 = '{"name":"w5"}';
+       console.log(obj1,'obj1');
+       console.log(obj3,'obj3');
+
+       // 浅拷贝、浅克隆:将一个变量的值赋给另一个变量 修改其中一个变量 原有的变量发生改变
+       var obj4;
+       obj4 = obj;
+       obj4.name = 'z6'
+       console.log(obj,'obj');
+       console.log(obj4,'obj4');
+
+       var person = {
+        name: '小明',
+        age: 18
+       }
+
+       var person1 = JSON.stringify(person);
+       var person2;
+       person2 = person1;
+        //person2.name = "LiLi"
+       person2 = '{"name":"LiLi","age":28}';
+       console.log(person1,'person1');
+       console.log(person2,'person2');
+     </script>
+</body>
+</html>

+ 28 - 0
html5/8.深克隆1.html

@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Document</title>
+</head>
+<body>
+    <script>
+        var person = {
+            name: '赵家锐',
+            age: 21
+        }
+        function deepClone(obj) {
+            var obj1 = {};
+            for(var key in obj) {
+                 obj1[key] = obj[key];
+            }
+            return obj1;
+        }
+       
+        var news = deepClone(person);
+        news.age = 26;
+        console.log(news,'news');
+        console.log(person,'person')
+    </script>
+</body>
+</html>

+ 41 - 0
html5/9.深克隆2.html

@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Document</title>
+</head>
+<body>
+    <script>
+        var news = {
+            name: '赵家锐',
+            age: 29,
+            msg: {
+                address: '哈尔滨',
+                sex: '男'
+            }
+        }
+
+        function deepClone(obj) {
+            // 定义一个空对象 用于接收深拷贝后的结果
+            var obj1 = {};
+            for(var key in obj) {
+                // 判断对象中的每一项是不是引用数据类型
+                if(typeof(obj[key]) == 'object'){
+                  // 是引用类型
+                    obj1[key] = deepClone(obj[key]);
+                } else {
+                    // 不是引用类型
+                    obj1[key] = obj[key];
+                }
+            }
+            return obj1;
+        }   
+        var new1 = deepClone(news);
+        new1.msg.address = '北京';
+        console.log(new1,'new1')
+        console.log(news,'news')
+        // console.log(deepClone(news))
+    </script>
+</body>
+</html>