如何在JS函数中否定bool值?

16 浏览
0 Comments

如何在JS函数中否定bool值?

我正在编写一些脚本,当尝试在函数内部取反布尔值时遇到了问题。我的意思是这样的:

var test = true;
function changeThisBoolPlease(asd){
  asd=!asd;
}
alert(test);
  changeThisBoolPlease(test);
alert(test);

弹出的结果是true,然后是true。

有什么想法吗?难道JS的引用不完美吗?

编辑:

好的,这只是我函数的一部分:

function przesun(kolor, figury, castlings, x1, y1, x2, y2, strona) {
    kolor = nowaPozycjaKolor(kolor,x1, y1, x2, y2);
    figury = nowaPozycjaFigur(figury,x1, y1, x2, y2);
    strona = !strona;
}

实际上我无法返回这个值。该怎么办?

0
0 Comments

在JavaScript中,有时候我们需要在函数内部对bool值进行取反操作。然而,有一些开发者可能会在实际操作中遇到问题,即无法正确地对bool值进行取反。

造成这个问题的原因是作用域问题。在上述代码中,我们定义了一个名为`changeThisBoolPlease`的函数,并在函数内部使用了`!`运算符对传入的参数进行取反操作。然而,在函数外部定义的`test`变量并没有被正确地取反。

为了解决这个问题,我们需要将函数的返回值赋值给`test`变量。具体做法是将`changeThisBoolPlease(test)`的结果赋值给`test`,即`test = changeThisBoolPlease(test);`。这样,`test`变量就被正确地取反了。

以下是完整的代码示例:

var test = true;
function changeThisBoolPlease(asd){
    return !asd;
}
alert(test);
test = changeThisBoolPlease(test);
alert(test);

通过以上的代码,我们可以看到`test`变量在第一个`alert`语句中的值为`true`,而在第二个`alert`语句中的值为`false`,说明我们成功地对bool值进行了取反操作。

总结起来,要在JavaScript函数内部对bool值进行取反操作,我们需要正确地处理作用域问题,并将函数的返回值赋值给相应的变量。这样我们就可以在函数内部正确地对bool值进行取反了。

0
0 Comments

问题的原因是JavaScript中的对象是按值传递的,而不是按引用传递的。在这个例子中,你甚至没有传递一个对象,而是一个原始值类型。如果你想要一个引用,你需要将它包装在对象元素中。

解决方法是创建一个包含要传递的值的对象,并在函数中修改该对象的属性。这样就可以通过引用来修改原始值。

以下是一个示例代码:

var test = { val: true };
function changeThisBoolPlease(asd){
    asd.val=!asd.val;
}
alert(test.val);
changeThisBoolPlease(test);
alert(test.val);

在这个示例中,我们创建了一个名为`test`的对象,其中包含一个名为`val`的属性,其值为`true`。

然后,我们定义了一个名为`changeThisBoolPlease`的函数,它接受一个参数`asd`。

在函数中,我们通过取反操作符`!`来修改`asd`对象的`val`属性的值。

最后,我们在函数调用前后使用`alert`函数来显示`test.val`的值,以验证是否成功修改了原始值。

,要在JavaScript函数中对布尔类型进行取反操作,可以通过将布尔值包装在对象中,并在函数中修改对象的属性来实现。

0
0 Comments

如何在JS函数中否定bool?

问题的出现原因:

在问题描述的示例中,你只是改变了`asd`的值。

解决方法:

1. 尝试以下代码:

var test = true;
function changeThisBoolPlease(asd){
    return !asd;
}
alert(test);
test = changeThisBoolPlease(test);
alert(test);

2. 另一种方式(不推荐),可以使用以下代码:

var test = true;
function changeTestBoolPlease(){
    test = !test;
}
alert(test);
changeTestBoolPlease();
alert(test);

0