Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使一个变量根据另一个变量的布尔状态记忆一个值_Javascript - Fatal编程技术网

Javascript 使一个变量根据另一个变量的布尔状态记忆一个值

Javascript 使一个变量根据另一个变量的布尔状态记忆一个值,javascript,Javascript,有没有办法在Javascript中实现一个“闩锁”函数,根据第二个变量“y”(布尔类型,用户交互)的状态存储数值变量“x”(不断自动计数)的值?大概是这样的: x = // count up constantly, x1 = store the x value when -> y = is "false" (EVEN IF it becomes "true" again) 问题是,当“y”返回到“true”状态时,“x1”将丢失存储的值并再次变为“未定义”,我需要该值在以后进行数学运算(

有没有办法在Javascript中实现一个“闩锁”函数,根据第二个变量“y”(布尔类型,用户交互)的状态存储数值变量“x”(不断自动计数)的值?大概是这样的:

x = // count up constantly,
x1 = store the x value when ->
y = is "false" (EVEN IF it becomes "true" again)
问题是,当“y”返回到“true”状态时,“x1”将丢失存储的值并再次变为“未定义”,我需要该值在以后进行数学运算(减法)。有人知道如何解决这个问题吗(我对Javascript很在行)

这里是我到目前为止所获得的代码:

    var x = // this value change constantly
      function latchON() {
          var x1;
       if (!y) {
           x1 = x;    
           return x1;
       }
      }

z = latchON() - x // this is operation  I need perform, but result "NaN", because x1 is "undefined" when y become "true"...
对不起,如果我不能很好地解释,对不起,我的英语也不好(不是我的母语)


编辑-感谢所有试图帮助我的人。我最终设法解决了这个问题,使用cookies存储值(我花了一个星期的时间试图记住它:(但后来没有……),按照本页上的一些说明进行操作

不太确定您想做什么,但是这个怎么样

var x = // this value change constantly
var x1 = 0
function latchON() {
    if (!y) {
        x1 = x;     
    }
    return x1;
}

不要在评论中添加更正,只需编辑问题即可。;-)多做一点解释可能有助于操作。;-)在这里,您在函数外部定义x1,因此其值将自上次更改后保持不变。在您的版本中,x1是一个没有初始值的局部变量,因此如果y为真,则会得到NaN。此外,从您编写的内容来看,您总是希望函数返回一个值,因此return语句应该放在if块之外。