node.js - Une partie incompréhensible de JavaScript
ringa_lee
ringa_lee 2017-05-16 13:34:41
0
4
489

J'apprends JavaScript (NodeJs) récemment
J'ai trouvé un problème lors de l'utilisation de for pour parcourir un JsonArray
Je l'ai écrit comme ceci à l'époque :

Logiquement parlant, cela devrait être une erreur d'écrire comme ça. Vous devriez. jugez si c'est vrai. est Null, mais je l'ai exécuté, et cela a réussi, aucune erreur n'a été signalée et le résultat était normal
Visage de point d'interrogation noir...
S'il vous plaît, dites-moi comment cela fonctionne...
Pourrait-il est-ce queobj2=obj1.result[i]renverra un booléen ? ?
J'ai déjà appris JAVA, mais j'ai l'impression que JavaScript est un peu moins rigoureux que JAVA, et mes pensées sont un peu emprisonnées...

ringa_lee
ringa_lee

ringa_lee

répondre à tous(4)
我想大声告诉你

Les expressions d'affectation renvoient la valeur attribuée. En d'autres termes, obj2=obj1.result[i] renverra obj1.result[i]. obj2=obj1.result[i]会返回obj1.result[i]

js是动态语言,它有隐私转换的特性,就是在该需要用到某种数据类型的时候,它会通过预先的规则来将传进来的值转换成特定的类型。

那么在刚刚赋值表达式obj2=obj1.result[i]中返回值是obj1.result[i],那js引擎就会对obj1.result[i]进行类型转换成Boolean类型。

如果你obj1.result[i]的值是除NaN,0,undefined,null,''之外的其他值,都会转换成true,否则则是false

js est un langage dynamique. Il a la fonctionnalité de conversion de confidentialité, c'est-à-dire que lorsqu'un certain type de données est nécessaire, il convertira la valeur entrante en un type spécifique via des règles prédéfinies. 🎜 🎜Ensuite, la valeur de retour dans l'expression obj2=obj1.result[i] qui vient d'être attribuée est obj1.result[i], puis le moteur js répondra à obj1 .result[i]convertit le type en type booléen. 🎜 🎜Si la valeur de votre obj1.result[i] est autre que NaN, 0, undefined, Les valeurs autres que null et '' seront converties en true, sinon elles seront false. 🎜
phpcn_u1582

Le résultat de retour de l'opérateur d'affectation est la valeur attribuée. Ceci est défini dans tous les principaux langages C, y compris Java.

Le jugement conditionnel en Java ne peut utiliser que des valeurs booléennes, mais JavaScript est différent. Une valeur booléenne est requise ici. Si la valeur que vous donnez n'est pas une valeur booléenne, elle sera implicitement convertie en valeur booléenne.

为情所困

Javascript est un langage faiblement typé et sera converti automatiquement~

我想大声告诉你

Un signe égal signifie affectation, ce qui signifie que vous avez attribué obj1.result[i] à obj2, donc c'est toujours vrai

Vous pouvez rechercher la différence entre = == === et vous comprendrez après avoir lu la question

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!