recherche

Maison  >  Questions et réponses  >  le corps du texte

node.js - Une partie incompréhensible de JavaScript

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_leeringa_lee2830 Il y a quelques jours529

répondre à tous(4)je répondrai

  • 我想大声告诉你

    我想大声告诉你2017-05-16 13:36:41

    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. 🎜

    répondre
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 13:36:41

    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.

    répondre
    0
  • 为情所困

    为情所困2017-05-16 13:36:41

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

    répondre
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-16 13:36:41

    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

    répondre
    0
  • Annulerrépondre