在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); }