web-gelistirme-sc.com

Bir boole nasıl değiştirilir?

Bir boolean değeri değiştirmenin gerçekten kolay bir yolu var mı javascript?

Şimdiye kadar, özel bir işlev yazmanın dışında elde ettiğim en iyisi üçlüdür:

bool = bool ? false : true;
353
Chris Dutrow
bool = !bool;

Bu, çoğu dilde geçerlidir.

792
Jordan

Booleanın bir sayıya dönüştürülmesinin sakıncası yoksa (bu, 0 veya 1'dir), Bitwise XOR Assignment Operator kullanabilirsiniz. Bunun gibi:

bool ^= true;   //- toggle value.


Uzun, tanımlayıcı boolean isimler kullanıyorsanız, bu özellikle iyidir, 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)

Bu, tarama yapmam için, her bir satırdaki değişkeni tekrarlamaktan daha kolaydır.

Bu yöntem tüm (ana) tarayıcılarda (ve çoğu programlama dilinde) çalışır.

77
Brock Adams
bool = bool != true;

Davalardan biri.

9
Feeco

Bunu eylemde görelim:

var b = true;

console.log(b); // true

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

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

Her neyse, şu an sahip olduğunuzdan daha kısa bir yol yoktur.

4
student

null ya da undefined nin başlangıç ​​değeri dışında, false olması gereken aynı değiştirme yöntemini araştırıyordum.

İşte burada:

booly = !(booly != false)
1
HeyJude
bool === tool ? bool : tool

eğer değerin doğru kalmasını istiyorsanız, tool (başka bir boole) aynı değere sahipse

1
Ardhi