JavaScript自定义getCookie函数运行异常,可读取document.cookie但取值失败
尝试读取Cookie取值时出现异常,无法拿到正确结果。已确认Cookie存储正常,通过document.cookie属性可正常访问,排除存储层面问题。
问题代码
function getCookie(name) { const value = `; ${document.cookie}`; const parts = value.split(`; ${name}=`); if (parts.length === 2) return parts.pop().split(';').shift(); } var value = getCookie(value); console.log(value); console.log(document.cookie); d = new Date('20 Oct 2022') function setCookie() { document.cookie = `value=10000; expires=${d.toUTCString()}`; console.log("cookie set!"); }
根因分析
- 调用
getCookie方法时传入的参数未加引号,属于基础语法错误 - 代码中
getCookie(value)里的value是未初始化的变量,值为undefined,而非需要查询的Cookie名称字符串"value",因此函数无法匹配到对应的Cookie项,返回空值
修复方法
将调用行修改为:
var value = getCookie("value");
修复后即可正常读取到key为value的Cookie值。
内容的提问来源于stack exchange,提问作者Lucas
相关产品推荐
相关产品推荐

