Что !! (не нет) оператор в JavaScript?

Итак, есть ли способ сделать это с помощью функции из SDK?

Нет, извините.

Было бы возможно прослушивать события «запуск / завершение деятельности» с каким-то приемником на конкретное приложение (мой) и отслеживать историю стека?

Вы можете использовать registerActivityLifecycleCallbacks() на Application, если вы собираетесь поддерживать API уровня 14 и выше (ака, Android 4.0 +).

2804
задан kevinji 13 August 2013 в 21:20
поделиться

12 ответов

Приводит oObject к логическому значению. Если это было false (например, 0, null , undefined и т. Д.), Это будет false , в противном случае true .

!oObject  //Inverted boolean
!!oObject //Non inverted boolean so true boolean representation

Итак, !! - это не оператор, это просто оператор ! дважды.

Пример из реального мира «Проверка версии IE»:

let isIE8 = false;  
isIE8 = !! navigator.userAgent.match(/MSIE 8.0/);  
console.log(isIE8); // returns true or false 

Если вы ⇒

console.log(navigator.userAgent.match(/MSIE 8.0/));  
// returns either an Array or null  

но если вы ⇒

console.log(!!navigator.userAgent.match(/MSIE 8.0/));  
// returns either true or false
2579
ответ дан 22 November 2019 в 19:47
поделиться

Я подозреваю, что это пережиток C ++, где люди переопределяют! оператор, но не оператор bool.

Таким образом, чтобы получить отрицательный (или положительный) ответ в этом случае, вам сначала нужно использовать! оператор, чтобы получить логическое значение, но если вы хотите проверить положительный случай, используйте !!.

8
ответ дан 22 November 2019 в 19:47
поделиться

Это просто логический оператор NOT, дважды - он используется для преобразования чего-либо в логическое значение, например:

true === !!10

false === !!0
51
ответ дан 22 November 2019 в 19:47
поделиться

Кажется, что оператор !! приводит к в двойном отрицании.

var foo = "Hello World!";

!foo // Result: false
!!foo // Result: true
21
ответ дан 22 November 2019 в 19:47
поделиться

Преобразует суффикс в логическое значение.

30
ответ дан 22 November 2019 в 19:47
поделиться

!! преобразует значение вправо его эквивалентного логического значения. (Подумайте о способе бедняков «приведения типов»). Его намерение обычно состоит в том, чтобы донести до читателя, что код не заботится о том, какое значение находится в переменной, а какое это «истинное» значение . 1117849]

95
ответ дан 22 November 2019 в 19:47
поделиться

!!foo applies the unary not operator twice and is used to cast to boolean type similar to the use of unary plus +foo to cast to number and concatenating an empty string ''+foo to cast to string.

Instead of these hacks, you can also use the constructor functions corresponding to the primitive types (without using new) to explicitly cast values, ie

Boolean(foo) === !!foo
Number(foo)  === +foo
String(foo)  === ''+foo
67
ответ дан 22 November 2019 в 19:47
поделиться

Это двойная операция , а не . Первый ! преобразует значение в логическое и инвертирует его логическое значение. Второй ! инвертирует логическое значение обратно.

24
ответ дан 22 November 2019 в 19:47
поделиться

! является "логическим не", которое по существу приводит значение "enable" к его логической противоположности. Секунда ! переворачивает это значение. Итак, !! enable означает «не включать», что дает вам значение enable как логическое.

18
ответ дан 22 November 2019 в 19:47
поделиться

It's not a single operator, it's two. It's equivalent to the following and is a quick way to cast a value to boolean.

val.enabled = !(!enable);
12
ответ дан 22 November 2019 в 19:47
поделиться

Это ужасно непонятный способ выполнить преобразование типа.

! - это НЕ . Итак, ! True равно false , а ! False равно true . ! 0 равно истина , а ! 1 - ложь .

Итак, вы конвертируете значение в логическое значение, затем инвертировать, а затем снова инвертировать.

// Maximum Obscurity:
val.enabled = !!userId;

// Partial Obscurity:
val.enabled = (userId != 0) ? true : false;

// And finally, much easier to understand:
val.enabled = (userId != 0);
826
ответ дан 22 November 2019 в 19:47
поделиться

Бросать Ваши переменные JavaScript к булевской переменной,

var firstname = "test";
//type of firstname is string
var firstNameNotEmpty = !!firstname;
//type of firstNameNotEmpty is boolean

ложь javascript для"", 0, неопределенный и пустой

JavaScript верен для числа другой затем нуль, не пустые строки, {}, [] и новая Дата () так,

!!("test") /*is true*/
!!("") /*is false*/
0
ответ дан 22 November 2019 в 19:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: