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

js全局变量在其他方法中赋值后无法影响到该方法外的全局变量的值(奇葩问题)做个笔记,以防忘记遇到一个奇葩问题(书写规范不会遇到此问题)问题描述:$(document).ready(function(){varstrCookie=document.cookie;username=”1″;if(strCookie){cookieVariables=strCookie.split(“;”);

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

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

问题描述:

$(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);
});
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号