J'ai une requête pour améliorer la manière d'écrire le code dans ES6.
J'appelle une fonction lorsque ma variable est définie sur FALSE
Initialement, this.myVariable
est défini sur true
mais sous une certaine logique, il devient false
et j'appelle une fonction lorsque mon booléen est false
if(!this.myVariable) { this.onClearSearch(); }
Je suis nouveau dans ES6 Donc je veux savoir s'il existe un moyen d'écrire ceci d'une meilleure manière ou d'une seule ligne. Cela pourrait être une toute petite logique, mais cela pourrait me permettre de mieux comprendre pour améliorer mon code et ma logique.
Remarque: Ma solution fonctionne également.
p>
3 Réponses :
Il n'y a pas de syntaxe magique dans es6 / 7/8 qui améliorera le morceau de code que vous nous avez montré.
Je pense qu'il existe des syntaxes alternatives que vous connaissez probablement déjà.
Je vous recommanderais personnellement les styles A ou B, car ils sont faciles à comprendre et rapides à écrire.
function onClearSearch() { console.log('call'); } const myVariable = false; // Writting style A if (!myVariable) { onClearSearch(); } // Writting style B if (myVariable == false) { onClearSearch(); } // Writting style C if (myVariable == false) onClearSearch(); // Writting style D myVariable || onClearSearch(); // Writting style E myVariable ? void 0 : onClearSearch(); // Writting style F myVariable ? _ : onClearSearch();
L'idiome suivant est assez courant dans le code React pour le rendu conditionnel:
!this.myVariable && this.onClearSearch()
Si vous voulez vérifier exactement la valeur false
, vous pouvez le faire comme ceci:
if (this.myVariable === false) { this.onClearSearch(); }
Notez que j'ai utilisé le comparateur triple égal ( ===
) pour vérifier la valeur et aussi taper.
Vous pouvez aussi bien sûr faire la même chose que vous l'avez fait avec ! this.myVariable
mais que serait également vrai pour les valeurs "fausses" comme 0
ou ''
(la chaîne vide).
Si c'est ce que vous vouliez dire, je vous recommande pour vérifier les concepts de Truthy et Falsy en JavaScript.
Il n'y a rien de spécifique à ECMAScript 2016 ici aussi ECMAScript est un standard Javascript, pas dactylographié