在js中將map對象轉換成json 和 js對cookie的操作


在js中將map對象轉換成json

//msp轉objectlet obj= Object.create(null);
for (let[k,v] of map) {
    obj[k] = v;
}//object轉json
JSON.stringify(obj);

  

js對cookie的操作

cookie是網站為了標識用戶身份而存儲在用戶本地終端上的數據,一般這些數據都會進行加密,以防止數據篡改而造成用戶信息泄露。cookie數據始終在同源的http請求中攜帶,他會在服務器和瀏覽器之間進行數據交互時進行來回傳遞。 對cookie不僅瀏覽器端可以進行操作,服務器端也可以進行操作,在這里只說一下瀏覽器端對於cookie的存取及刪除操作。

添加cookie

在說操作之前,首先需要了解一下cookie是如何存儲的,我們隨便打開一個網站,在控制台輸入document.cookie

我們發現cookie的存儲方式是key=value; key=value的形式存儲的,這里面全都是在有效期內的cookie。了解了存儲方式,我們就可以進行set操作了:

let setCookie=(key, value, days) =>{
    let now = new Date();
    let expires = '';
    let formatValue = '';
    if(days){
       now.setTime(now.getTime() + days * 24 * 60 * 60 * 1000);
        expires = ";expires=" + now;
       }
    if(!key){
       return false
    }
    try{
        formatValue  = JSON.stringify(value);
    }catch(e){
        console.log(e);
        return false;
    }
    document.cookie = key + "=" + formatValue + expires;
}

我們設置的過期時間以天為單位,當你想關閉瀏覽器時就cookie就直接失效,則可不傳入days,當不對cookie設置任何正、負或0時間,也就是說對expire不設置,他就會在瀏覽會話結束時過期。

獲取cookie值

上面已經說過了document中存儲cookie的形式了,而且過期的cookie不會出現在document.cookie中,這樣我們在獲取的時候只需要將其進行格式化即可:

let getCookie=key=> {
    //如果cookie中有數據  才可以獲取數據
    if (document.cookie) {
      let cookieInfo = document.cookie;
      //cookie中可能會包含一些 額外的數據,這些數據特點是由   分號和空格間隔的
      //所以 先將 分號和空格  替換掉   替換成  ;
      let arr = cookieInfo.replace(/;\s/g, ';').split(";");
      let item,brr
      for (let i = 0; i < arr.length; i++) {
        item = arr[i].split("=");
        if (item[0] === key) {
          brr = item[1];
          return JSON.parse(brr);//如果找到 我們想要的鍵,將值轉成數組返回
        }
      }
      //如果cookie中 沒有我們想獲取的鍵值,直接返回一個空數組
      return [];
    }
    //如果cookie中沒有數據,直接返回一個空數組
    return [];
  }

刪除cookie

刪除cookie最簡單的辦法就是給cookie的過期時間設置一個過去的時間,讓他過期就好:

let removeCookie=key=> {
    setCookie(key, "", -1);
  }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM