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...
Les expressions d'affectation renvoient la valeur attribuée. En d'autres termes,
obj2=obj1.result[i]
renverraobj1.result[i]
.obj2=obj1.result[i]
会返回obj1.result[i]
。js是动态语言,它有隐私转换的特性,就是在该需要用到某种数据类型的时候,它会通过预先的规则来将传进来的值转换成特定的类型。
那么在刚刚赋值表达式
obj2=obj1.result[i]
中返回值是obj1.result[i]
,那js引擎就会对obj1.result[i]
进行类型转换成Boolean类型。如果你
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'expressionobj1.result[i]
的值是除NaN
,0
,undefined
,null
,''
之外的其他值,都会转换成true
,否则则是false
obj2=obj1.result[i]
qui vient d'être attribuée estobj1.result[i]
, puis le moteur js répondra àobj1 .result[i]
convertit le type en type booléen. 🎜 🎜Si la valeur de votreobj1.result[i]
est autre queNaN
,0
,undefined
,Les valeurs autres que null
et''
seront converties entrue
, sinon elles serontfalse
. 🎜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