zsydgithub 1 рік тому
батько
коміт
1e06d7cbbf
3 змінених файлів з 148 додано та 0 видалено
  1. 66 0
      8_html5/10_本地存储.html
  2. 48 0
      8_html5/11_本地存储2.html
  3. 34 0
      8_html5/9_深拷贝2.html

+ 66 - 0
8_html5/10_本地存储.html

@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+  <meta charset="UTF-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <title>Document</title>
+</head>
+
+<body>
+  <!-- cookie sessionstorage  localstorage -->
+  <!-- cookie  大小 4k -->
+
+  <script>
+    document.cookie = "name = 'zs'"
+
+    var date = new Date()
+    date.setDate(date.getDate() + 1)
+    console.log(date)
+    console.log(date.toUTCString())
+
+    document.cookie = "password='123';expires=" + date.toUTCString
+
+    function setCookie(key, value, expires) {
+      var date = new Date()
+      date.setDate(date.getDate() + expires)
+      document.cookie = key + '=' + value + ';expires=' + date.toUTCString()
+    }
+    setCookie('addres', 'harbin', 2)
+
+
+    function getCookie(key) {
+      var cookie = document.cookie
+      // console.log(cookie)
+
+      /* 
+        创建一个arr  存放分开的数组
+        .split()方法 把字符串拆分成数组
+        ["name='zs'", " password='123'", ' addres=harbin']
+      */
+      var arr = cookie.split(';')
+      // console.log(arr)
+      for(var i=0;i<arr.length;i++){
+        // console.log(arr[i])
+        var tmp = arr[i].split('=')
+        // console.log(tmp)
+        /* trim() 用于删除字符串当中的头尾空白符 */
+        if(tmp[0].trim() == key){
+          return tmp[1]
+        }
+      }
+    }
+    console.log(getCookie('password'))
+
+
+    function delCookie(key){
+      var date = new Date()
+      date.setDate(date.getDate() -1 )
+      document.cookie = key + '=null;expires=' + date.toUTCString()
+    }
+    delCookie('name')
+  </script>
+</body>
+
+</html>

+ 48 - 0
8_html5/11_本地存储2.html

@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+  <meta charset="UTF-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <title>Document</title>
+</head>
+
+<body>
+  <script>
+    /* 
+      localStorage  大小5M
+      一直存储  除非手动删除
+
+    */
+    localStorage.isLogin = true
+    console.log(localStorage.isLogin)
+
+    /* sessionStorage  大小5M  会话窗口关闭失效 */
+    // sessionStorage.age = 18
+
+    /*
+      共同点:都是保存在浏览器端,且同源的。
+
+        区别:
+        cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。
+        ⽽sessionStorage和localStorage不会⾃动把数据发给服务器,仅在本地保存。 
+        cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下。
+        存储⼤⼩限制也不同,cookie数据不能超过4k,同时因为每次http请求都会携带cookie,
+        所以cookie只适合保存很⼩的数据,如会话标识。
+        sessionStorage和localStorage虽然也有存储⼤⼩的限制,但⽐cookie⼤得多,可以达到5M或更⼤。
+        ⽣命周期不同,sessionstorage:关闭浏览器就删除, 
+        localstorage:⼀直有,除⾮⼿动删除,
+        Cookie:可以设置过期时间 
+
+        
+        sessionStorage:仅在当前浏览器窗⼝关闭前有效,⾃然也就不可能持久保持;
+        localStorage:始终有效,窗⼝或浏览器关闭也⼀直保存,因此⽤作持久数据;
+        cookie只在设置的cookie过期时间之前⼀直有效,即使窗⼝或浏览器关闭。
+        作⽤域不同, sessionStorage不在不同的浏览器窗⼝中共享,即使是同⼀个⻚⾯;
+        localStorage在所有同源窗⼝中都是共享的;cookie也是在所有同源窗口中都是共享
+    */
+  </script>
+</body>
+
+</html>

+ 34 - 0
8_html5/9_深拷贝2.html

@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <title>Document</title>
+</head>
+<body>
+  <script>
+    function deepClone(data){
+      var tmp = {}
+      if( typeof data == 'object'){
+        tmp = Array.isArray(data) ? [] : {}
+        for(key in data){
+          if(typeof data == 'object'){
+            tmp[key] == deepClone(data[key])
+          } else {
+            tmp[key] = data[key]
+          }
+        } 
+      } else {
+        tmp = data
+      }
+      return tmp
+    }
+    var a = ['lisi',18]
+    var b = deepClone(a)
+    b[0]='zs'
+    console.log(b)
+    console.log(a)
+  </script>
+</body>
+</html>