js全局变量在其他方法中赋值后无法影响到该方法外的全局变量的值(奇葩问题)
2017-07-20 13:53
417 查看
做个笔记,以防忘记
遇到一个奇葩问题(书写规范不会遇到此问题
)
问题描述:
这样两次输出的username值不同第一个弹出的是Superman,第二个弹出“1”
解决办法:
将要赋的值通过一个function()方法的返回值获得
遇到一个奇葩问题(书写规范不会遇到此问题
)
问题描述:
$(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); });
相关文章推荐
- 解决ajax的success方法无法给外部变量赋值的问题
- js闭包解决ajax无法给外部变量赋值的问题
- jquery中各个方法调用不到+全局变量在局部无法赋值
- 遇到的问题-----------定义一个全局变量,在page_load里赋值,但在其他按钮中调用仍为空
- ajax请求成功后无法在success方法里给外部变量赋值的问题
- JS,全局变量,ajax中赋值,在其他闭包里没有拿到值
- jquery中的$.post()方法无法给变全局变量的问题
- Ajax获取回调函数无法赋值给全局变量的问题
- ajax请求获取的数据无法赋值给全局变量问题总结
- 遇到的问题-----------定义一个全局变量,在page_load里赋值,但在其他按钮中调用仍为空
- js特殊例子--方法内重新定义了变量在后面就会前面的为undifined,后面没有定义就用全局的--各种专业文献上的“闭包”(closure)定义非常抽象,很难看懂。我的理解是,闭包就是能够读取其他函
- 关于ajax回调无法给全局变量赋值的问题
- 全局变量的赋值以及类的默认构造函数问题
- c# 读取其他程序正打开的文件的时“正由另一进程使用,因此该进程无法访问该文件。"的问题解决方法
- AJAX回调函数内部给全局变量赋值的问题与解决
- js中全局变量的问题
- js中多个Date对象变量间赋值互相影响
- JS可方便定义全局方法,并设定返回值以提高利用率,方便其他地方处理相同的功能
- VS2008编译环境下全局const变量在其他编译模块中引用注意的问题
- jquery ajax 异步调用方法中不能给全局变量赋值的原因及解决办法