热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JavaScript跟踪全局变量?-JavaScriptkeeptrackofglobalvariable?

ImtryingtousethequestionIDvariabletokeeptrackofsomequestionsandanswers.ButitseemsI

Im trying to use the questionID variable to keep track of some questions and answers. But it seems I have problem with that the variable lose its memory, for each time I run my function ? thats what I think anyway.

我试图使用questionID变量来跟踪一些问题和答案。但是,每次运行我的函数时,似乎我都有变量丢失内存的问题?这就是我的想法。

When i ask for: color, and then follow up with an answer of: pink, purple or green, it jumps to the last statement; else if(questiOnID== -1) which is not my intention.

当我要求:颜色,然后跟进答案:粉红色,紫色或绿色,它跳到最后一个声明;否则if(questiOnID== -1)这不是我的意图。

How can I fix this behaviour ? I run the script locally.

我该如何解决这个问题?我在本地运行脚本。

var questiOnID= -1;

function askQ() {
    var findme = document.getElementById('askBox').value.toLowerCase();
    var dOntUnderstand= new Array();
    dontUnderstand[0] = "Excuse me, What did You say ?";
    dontUnderstand[1] = "Sorry, I cant understand You now. ^_^";
    dontUnderstand[2] = "Sorry!, I got to go now... CU !";
    dontUnderstand[3] = "ohh... Can you repeat that one more time ?";
    var randomIndex = Math.round(Math.random() * 3);
    if (findme.match(/(age|old)/)) {
        document.getElementById('bubble').innerHTML = "ohh,, I am " +
            obj1.age + " years old, How old are You ?";
    }
    if (!isNaN(findme)) {
        document.getElementById('bubble').innerHTML = "ohh.. that's kinda old !";
    }
    if (findme.match(/(color)/)) {
        document.getElementById('bubble').innerHTML = "My favourite color " +
            " is Purple, What's yours ?";
        questiOnID= 6;
    }
    if (findme.match(/(pink|purple|green)/) && questiOnID== 6) {
        document.getElementById('bubble').innerHTML = "well...that's cute !!";
        questiOnID= -1;
    }
    if (findme.match(/(hi|hello)/)) {
        document.getElementById('bubble').innerHTML = "Hi there, nice to meet You !";
    } else if (questiOnID== -1) {
        document.getElementById('bubble').innerHTML = dontUnderstand[randomIndex];
    }
}

2 个解决方案

#1


0  

 if(findme.match(/(pink|purple|green)/) && questiOnID== 6){
              document.getElementById('bubble').innerHTML = "well...that's cute !!";
      // You're setting it to -1.
      questiOnID= -1;
  }

Also, why not limit your pollution of the global object by making questionID a property of the askQ function.

此外,为什么不通过使questionID成为askQ函数的属性来限制对全局对象的污染。

askQ.questiOnID= 6

askQ.questiOnID= 6

#2


1  

I'd start by addint this to the top and bottom of your function:

我首先将addint添加到函数的顶部和底部:

console.log('starting', questionID);


console.log('ending', questionID);

Then use your debug log to see what is going on... or you could add a watch and step through your code using firebug or chrome

然后使用调试日志查看正在发生的事情......或者您可以使用firebug或chrome添加监视并逐步执行代码

Also wondering why you are not using jQuery...

还想知道你为什么不使用jQuery ...


推荐阅读
  • 本文介绍了在Java中检查字符串是否仅包含数字的方法,包括使用正则表达式的示例代码,并提供了测试案例进行验证。同时还解释了Java中的字符转义序列的使用。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ... [详细]
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • 本文讨论了一个关于正则的困惑,即为什么一个函数会获取parent下所有的节点。同时提出了问题是否是正则表达式写错了。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • Givenasinglylinkedlist,returnarandomnode'svaluefromthelinkedlist.Eachnodemusthavethe s ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • 本文介绍了关系型数据库和NoSQL数据库的概念和特点,列举了主流的关系型数据库和NoSQL数据库,同时描述了它们在新闻、电商抢购信息和微博热点信息等场景中的应用。此外,还提供了MySQL配置文件的相关内容。 ... [详细]
  • STL迭代器的种类及其功能介绍
    本文介绍了标准模板库(STL)定义的五种迭代器的种类和功能。通过图表展示了这几种迭代器之间的关系,并详细描述了各个迭代器的功能和使用方法。其中,输入迭代器用于从容器中读取元素,输出迭代器用于向容器中写入元素,正向迭代器是输入迭代器和输出迭代器的组合。本文的目的是帮助读者更好地理解STL迭代器的使用方法和特点。 ... [详细]
  • 本文详细介绍了使用C#实现Word模版打印的方案。包括添加COM引用、新建Word操作类、开启Word进程、加载模版文件等步骤。通过该方案可以实现C#对Word文档的打印功能。 ... [详细]
  • node.jsurlsearchparamsAPI哎哎哎 ... [详细]
author-avatar
张逸紫惟雨
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有