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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • rabbitmq优先级队列_rabbitmq主从模式

    rabbitmq优先级队列_rabbitmq主从模式优先级队列:此队列中的消息可以拥有优先级属性,在发送有优先级属性的消息到此队列时,优先级属性能够生效。优先级高的消息得以提早消费,消息优先级的最大值由队列的属性决定。超出队列的最大值按最大值算。Map<String,Object>priority=newHashMap<String,Object>();priority.put(“x-max-priority…

    2022年9月23日
    0
  • 什么是java单例模式?[通俗易懂]

    什么是java单例模式?[通俗易懂]关于java单例模式的文章早已是非常多了,本文是对我个人过往学习java,理解及应用java单例模式的一个总结。此文内容涉及java单例模式的基本概念,以及什单例模式的优缺点,希望对大家有所帮助。什么是java单例模式?单例模式是保证类的实例是单例的一种常见设计模式。单例模式的优点:(1)首先肯定是节省内存资源,不管多频繁的通过暴露的方法创建实例,都能保证创建的对象在系统内存中是同一实例对象;(2)灵活性,由于所有实例的创建都由该类控制,所有该类可以灵活的更改实例化过程;(3)实例的

    2022年8月11日
    4
  • urlencode()与urldecode()

    urlencode()与urldecode()

    2021年10月21日
    40
  • 如何成为一名黑客(新手入门到大师全集)

    如何成为一名黑客(新手入门到大师全集)学前感言:1.这是一条坚持的道路,三分钟的热情可以放弃往下看了.2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发.3.有时多google,baidu,我们往往都遇不到好心的大神,谁会无聊天天给你做解答.4.遇到实在搞不懂的,可以先放放,以后再来解决.基本方向:1.web安全方面(指网站服务器安全方面,进行渗透测试,检测漏洞以及安全…

    2022年5月26日
    37
  • SQL优化最干货总结 – MySQL(2020最新版)[通俗易懂]

    MySQL-SQL优化干货总结(吐血版),别辜负了自己的梦想,欢迎白嫖、点赞、收藏。

    2022年4月6日
    41
  • java怎么输入字符串和一行字符串

    java怎么输入字符串和一行字符串1输入字符串遇到空格或者换行结束Scannersc=newScanner(System.in);Stringstr=newString();str=sc.next();2输入一行字符串,可以包括空格Scannersc=newScanner(System.in);Stringstr=newString();str=sc.nextLine();

    2022年7月16日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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