zl程序教程

您现在的位置是:首页 >  后端

当前栏目

js全局变量在其他方法中赋值后无法影响到该方法外的全局变量的值(奇葩问题)

JS方法 问题 无法 影响 其他 赋值 全局变量
2023-06-13 09:11:19 时间

大家好,又见面了,我是你们的朋友全栈君。

做个笔记,以防忘记 遇到一个奇葩问题(书写规范不会遇到此问题 ) 问题描述:

$(document).ready(function(){ 
     
    var strCookie=document.cookie;
    username="1";
    if (strCookie) {
        cookieVariables = strCookie.split(";");
        for (i = 0; i < cookieVariables.length; i++) {
        cookieName = cookieVariables[i].split("=");
        if (cookieName[0] === "username"){
            username=cookieName[1];
            alert(cookieName[1]);
        }   
    }
}
alert(username);
});

这样两次输出的username值不同第一个弹出的是Superman,第二个弹出“1” 解决办法: 将要赋的值通过一个function()方法的返回值获得

$(document).ready(function(){ 
     
    var strCookie=document.cookie;
    username=getname(username);
    function getname(username){ 
   
        if (strCookie) {
            cookieVariables = strCookie.split(";");
            for (i = 0; i < cookieVariables.length; i++) {
                cookieName = cookieVariables[i].split("=");
                if (cookieName[0] === username){
                   return cookieName[1];
                   alert("cookieName[1]");
                }       
            }
        }else{
            return "1";
        }
    }
alert(username);
});

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/137484.html原文链接:https://javaforall.cn