if($summary = get_post_summary()) { return $summary; }Ce à quoi je fais référence, c'est une affectation dans une condition. Counningly, cela peut également être fait en JavaScript, bien qu'il soit beaucoup moins courant:
if(summary = document.getElementById("post-summary")) { return summary.innerHTML; }À première vue, vous seriez pardonné de penser que c'est une faute de frappe! En effet, certains débogueurs signalent cela avec un avertissement, vous demandant si vous vouliez dire un test pour l'égalité (==) et le trompé comme affectation (=). Mais ce n'est pas une erreur - la clé pour le comprendre est de comprendre deux choses : Tout d'abord, l'affectation renvoie une valeur (la valeur que vous avez attribuée). Deuxièmement et surtout, la valeur qu'il renvoie évalue à vrai ou fausse et détermine finalement si la condition passe. Maintenant, dans le monde de l'évaluation et de la traversée Dom , cette technique est sûre et prévisible car les nœuds Dom existent ou qu'ils sont nuls - et Null est tenu d'évaluer en false . Ainsi, dans l'exemple de code ci-dessus, la condition évaluera à TRUE si l'élément "# post-Summary" existe, ou faux si ce n'est pas le cas. De même, vous pouvez utiliser la même astuce pour parcourir une hiérarchie inconnue, traversant les parents successifs en utilisant while (). Cet exemple construit un tableau de chaque nom de nœud entre une cible d'événement et le #Document:
var names = [], node = e ? e.target : event.srcElement; do { names.push(node.nodeName); } while(node = node.parentNode)Mais ailleurs dans JavaScript, vous pouvez vous retrouver dans un territoire beaucoup moins fiable, car la vraie ou la fausse de nombreuses valeurs se révèlent être pas du tout intuitive. Les nombres positifs et négatifs, par exemple, évaluent à TRUE sauf zéro et nan . Et bizarrement, un objet Créé avec le constructeur booléen toujours évalue à true, même s'il a été créé comme nouveau booléen (false)! Alors soyez averti! La syntaxe comme celle-ci n'est pas pour les timides; Il ne doit pas non plus être utilisé de manière cavalière, avec une excession excessive sur la conversion de type et la coulée de valeurs arbitraires. Mais bien utilisé dans des circonstances appropriées, il peut simplifier de nombreuses conditions pour produire du code plus rapide et plus maigre.
Crédit de la miniature: sbwoodside
Une affectation à l'intérieur d'une condition fait référence à la pratique de l'attribution d'une valeur à une variable dans une instruction conditionnelle telle qu'une instruction «if». Il s'agit d'une pratique courante dans de nombreux langages de programmation, notamment JavaScript, C et Python. Il permet un code plus concis car l'affectation et la vérification de la condition peuvent être effectuées en une seule ligne. Cependant, cela peut également conduire à la confusion et aux bogues potentiels s'ils ne sont pas utilisés avec soin, car l'opération d'attribution peut être confondue avec une opération de comparaison.
Les affectations dans des expressions conditionnelles peuvent conduire à une confusion et à des bogues potentiels. En effet, l'opérateur d'affectation (=) peut facilement être confondu avec l'opérateur d'égalité (==). En conséquence, une condition qui devait être une comparaison pourrait devenir par inadvertance une affectation, conduisant à un comportement inattendu dans le code. De plus, les affectations dans des conditions peuvent rendre le code plus difficile à lire et à comprendre, en particulier pour les programmeurs moins expérimentés.
Pour éviter les affectations dans les expressions conditionnelles, vous pouvez séparer l'affectation et la vérification de la condition en deux lignes de code distinctes. Par exemple, au lieu d'écrire si (x = getValue ()), vous pouvez écrire x = getValue (); si (x). Cela rend le code plus clair et réduit le risque de confusion ou de bogues.
Bien que généralement découragées, il existe des situations où les affectations dans des conditions peuvent être bénéfiques. Par exemple, dans une boucle où une valeur doit être mise à jour et vérifiée dans chaque itération, une affectation dans la condition peut rendre le code plus concis. Cependant, cela devrait être fait avec prudence et le code doit être clairement commenté pour éviter la confusion.
L'opérateur d'affectation (=) est utilisé pour attribuer une valeur à une variable. Par exemple, x = 5 attribue la valeur 5 à la variable x. D'un autre côté, l'opérateur d'égalité (==) est utilisé pour comparer deux valeurs. Par exemple, if (x == 5) vérifie si la valeur de x est égale à 5.
TypeScript, comme JavaScript, permet des affectations dans des conditions. Cependant, TypeScript a une vérification de type plus stricte qui peut aider à capter des erreurs potentielles causées par des affectations dans des conditions. Par exemple, si vous essayez d'attribuer une chaîne à une variable qui est censée être un nombre à l'intérieur d'une condition, TypeScript donnera une erreur de temps de compilation.
Un bogue commun causé par des affectations dans des conditions est un affectation non désigné lorsqu'une comparaison était prévue. Par exemple, si (x = 5) sera toujours vrai car il attribue 5 à x, plutôt que de vérifier si x est égal à 5. Cela peut entraîner un comportement inattendu dans le code.
Les problèmes de débogage causés par les affectations peuvent être tricains car le code peut ne pas donner de erreurs. Une approche consiste à vérifier soigneusement toutes les instructions conditionnelles pour s'assurer qu'ils utilisent les opérateurs corrects. L'utilisation d'un outil d'analyse de code statique ou d'un outil de code statique peut également aider à prendre ces problèmes.
NE TOUS LES Langages de programmation n'autorisent pas les affectations dans des conditions. Par exemple, Python n'autorise pas les affectations dans des conditions et donnera une erreur de syntaxe si vous essayez de le faire. Vérifiez toujours les règles de syntaxe du langage de programmation que vous utilisez.
Oui, il existe des alternatives aux affectations dans des conditions. Une alternative courante consiste à utiliser une variable temporaire pour maintenir la valeur qui doit être attribuée et vérifiée. Cela peut rendre le code plus clair et plus facile à comprendre. Une autre alternative consiste à utiliser une fonction qui renvoie une valeur, puis de vérifier cette valeur dans la condition.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3