2010-09-23 3 views

Répondre

8

Il convertit votre valeur à un type booléen:

var x = '1'; 
var y = !!x; 

// (typeof y === 'boolean') 

Notez également les éléments suivants:

var x = 0; 
var y = '0';  // non empty string is truthy 
var z = ''; 

console.log(!!x); // false 
console.log(!!y); // true 
console.log(!!z); // false 
1

Il convertit en booléen

4

Il convertit la valeur à une valeur du booléen tapez en le niant deux fois. Il est utilisé lorsque vous voulez vous assurer qu'une valeur est une valeur booléenne et non une valeur d'un autre type.

Dans JS, tout ce qui concerne les booléens accepte des valeurs d'autres types, et certains peuvent même renvoyer des valeurs non booléennes (par exemple, || et &&). Cependant, ! renvoie toujours une valeur booléenne, de sorte qu'il peut être utilisé pour convertir des objets en booléen.

0

est un "non pas" arg

couramment utilisé pour convertir (raccourci) les valeurs de chaîne bool

comme ça ..

if (!! 'true') {alert (» son vrai ')}

+0

'if (!! 'false') {alert ('its true')}' alerte toujours '' true''. –

+0

Pour ajouter au commentaire de Daniel, les chaînes non-vides en javascript sont toujours considérées comme «véridiques». Une chaîne nulle ou vide sera considérée comme "falsifiée" lors du lancement. Peut-être que vous vouliez écrire 'if (!! true) {alert ('c'est vrai')}'? – Funka

+0

vous avez raison, désolé le pauvre/réponse courte .. :) La réponse de Daniel est plus complète – user5199217

2

C'est une paire de logical not operators.

Il convertit une valeur Falsey (comme 0false ou) à true puis false et une valeur truthy (comme true ou "hello") à false puis true.

Le résultat net est que vous obtenez une version booléenne de n'importe quelle valeur.