How to toggle a boolean?

后端 未结 6 1241
醉话见心
醉话见心 2020-12-07 07:14

Is there a really easy way to toggle a boolean value in javascript?

So far, the best I\'ve got outside of writing a custom function is the ternary:<

相关标签:
6条回答
  • 2020-12-07 07:31
    bool = bool != true;
    

    One of the cases.

    0 讨论(0)
  • 2020-12-07 07:32

    If you don't mind the boolean being converted to a number (that is either 0 or 1), you can use the Bitwise XOR Assignment Operator. Like so:

    bool ^= true;   //- toggle value.
    


    This is especially good if you use long, descriptive boolean names, EG:

    var inDynamicEditMode   = true;     // Value is: true (boolean)
    inDynamicEditMode      ^= true;     // Value is: 0 (number)
    inDynamicEditMode      ^= true;     // Value is: 1 (number)
    inDynamicEditMode      ^= true;     // Value is: 0 (number)
    

    This is easier for me to scan than repeating the variable in each line.

    This method works in all (major) browsers (and most programming languages).

    0 讨论(0)
  • 2020-12-07 07:40
    bool = !bool;
    

    This holds true in most languages.

    0 讨论(0)
  • 2020-12-07 07:45
    bool === tool ? bool : tool
    

    if you want the value to hold true if tool (another boolean) has the same value

    0 讨论(0)
  • 2020-12-07 07:47

    Let's see this in action:

    var b = true;
    
    console.log(b); // true
    
    b = !b;
    console.log(b); // false
    
    b = !b;
    console.log(b); // true

    Anyways, there is no shorter way than what you currently have.

    0 讨论(0)
  • 2020-12-07 07:48

    I was searching after a toggling method that does the same, except for an inital value of null or undefined, where it should become false.

    Here it is:

    booly = !(booly != false)
    
    0 讨论(0)
提交回复
热议问题