使用函数切换布尔值? [复制]
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 中按值传递。引用对象时,值是对象引用,但仍是按值传递。以上是关于使用函数切换布尔值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章