HTML5笔记

163 阅读2分钟

1 标签

2 表单

3音频

4视频

5属性

6 图片懒加载

7 json

   前后端数据交互的数据类型 是一个字符串
   var tmp=JSON.stringfy(tmp) 把对象类型改为了字符串类型
   var tmp=JSON.parse(tmp) 把字符串类型改为对象类类型
   浅拷贝/浅克隆: 把A赋值给B 如果修改A或B的内容 另一方也改变
   深拷贝/深克隆; 把A赋值给B 如果修改A或B的内容 另一方没有改变
     第一种方法var arr1=[1,2,3]  
     var a='xm'
     var obj2=JSON.stringfy(obj)
     obj2=JSON.parse(obj2)
     obj2.age=4
      第二种方法
    function deepclone(obj){
        
        if(typeof(obj)!='object'){
            return obj  
        }else{
           var tep =Array.isArray(obj)?[]:{}
            for(var key in obj){
                if(typeof(obj[key])==='object'){
                    tep[key]=deepclone(obj[key]) 
                } else {
                    tep[key]=obj[key] 
                }  
            }  
            return tep
        }
   
    }

本地存储cookie

  //  设置cookie的方式 document.cookie
  //  存储大小为4k 过期时间 如果不设置 关闭窗口就过期了
  //expires=  设置过期时间
  //设置时间要通过dete.setDate设置时间
  document.cookie="name='zs'"
  document.cookie='token=123'
  var date=new Date()
  date.setDate(date.getDate()+1)
  document.cookie='channer=123;expires='+date.toUTCString
  //设置cookie的函数
  function setcookie(key,value,expires){
      //创建日期对象
      var date=new Date()
      date.setDate(date.getDate()+expires*1) //防止过期时间传入的是一个字符串
      document.cookie=key+'='+value+';expires='+date.toUTCString
  }
  //设置一个设置cookie的函数
  function getcookie(key){
      var cookie=document.cookie  //得到一个字符串
      var arr=cookie.split(';')    //设置一个数组去接受
      for(var i=0;i<arr.length;i++){
          var tep=arr[i].split('=')
          if(tep[0].trim()=key){// trim 去掉字符串前后的空格
              return tep[1]
          }
      }

  }
  //删除cookie
  function decookie(key){
      var date=new Date()
      date.setDate(date.getDate()-1)
      document.cookie=key+'=null'+';expires='+date.toUTCString
  }

本地存储2

<script>
    //都属于本地存储
    //localStorage 存储大小为5M 会一直存储在本地  除非手动删除
    //sessionStorage 存储大小5M 浏览器关闭之后就失效了
    localStorage
    sessionStorage
    //设置localStorage
    localStorage.islogin=true
    localStorage.setItem('tag',123)
    //获取locaStorage
    localStorage.islogin
    localStorage.getItem('tag')
    //设置获取sessionStorage 与 locaStorage方法相同
    //如果在浏览器中设置了sessionStorage,重新打开浏览器设置的sessionStorage消失
    //代码中设置的sessionStorage,重新打开浏览器中sessionStorage不消失
</script>

历史管理

JS是单线程的  浏览器是多线程的
    异步加载
    defer 先渲染结构,遇到js开始加载同时结构继续渲染,渲染完之后执行JS
    async 先渲染结构,遇到js开始加载同时结构继续渲染,js加载完之后立马执行js,js执行完结构渲染
    原生JS历史记录传参获取
    1.hash
    oBtn.onclick=function(){
        var tag=Math.random()
        oDiv.innerText=tag
        location.hash=tag
    }
    window.onhashchange=function(){
        obtn.inneerText=location.hash
    }  监听hash的改变
    2.堆栈
    oBtn.onclick=function(){
        var tag=Math.random()
        oDiv.innerText=tag
        history.pushState(tag,'')  第一个参数是要追加的东西,第二个是页面标签名字,可以为空,不可以不填
    }
    
    window.onpopstate=function(e){
    op.innerText=e.state
    }