使用函数切换布尔值? [复制]

Posted

技术标签:

【中文标题】使用函数切换布尔值? [复制]【英文标题】:Toggle boolean using function? [duplicate] 【发布时间】:2016-10-07 14:59:19 【问题描述】:

我想创建一个函数来切换我的代码的任何布尔值,但我无法获得预期的结果:

function toggle(x)
  x=!x;

var test=false;
toggle(test);
alert(test);

为什么不返回true

【问题讨论】:

function toggle(x) 内部,您将局部变量x 设置为!x(并且该局部变量在方法结束后消失)。在大多数语言中,布尔值是简单类型,而不是对象或引用 您意识到在代码中调用toggle(x) 的任何地方都会更短,只需编写!x - 它的作用就是否定布尔值 【参考方案1】:

布尔数据类型按值传递。因此,对参数x 所做的任何更改都不会反映实际变量test。您需要从函数中返回更新后的值并将其分配回变量。

function toggle(x) 
    return !x;          // Return negated value


var test = false;
test = toggle(test);    // Assign the updated value back to the variable
alert(test);

但是,如comments中所说,还是使用比较好

test = !test;

【讨论】:

所有 类型在 javascript 中按值传递。引用对象时,值是对象引用,但仍是按值传递。

以上是关于使用函数切换布尔值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Bash 中使用布尔值编写 if/else? [复制]

SwiftUI - 如何切换核心数据中的所有布尔值

使用计时器切换布尔值?

如何在 Swift 中使用计时器切换布尔值

如何使用 Context 和 Hooks 切换布尔值?

Rails 4:使用 link_to 切换布尔值