node.js – Ein unverständlicher Teil von JavaScript
ringa_lee
ringa_lee 2017-05-16 13:34:41
0
4
535

Ich lerne kürzlich JavaScript (NodeJs)
Ich habe ein Problem beim Durchlaufen eines JsonArrays festgestellt
Ich habe es damals so geschrieben:

Logisch gesehen sollte es falsch sein, so zu schreiben. Das solltest du Beurteilen Sie, ob es richtig ist. Es ist Null, aber ich habe es ausgeführt und es war tatsächlich erfolgreich, es wurde kein Fehler gemeldet und die Ausgabe war normal.
Schwarzes Fragezeichengesicht ...
Bitte sagen Sie mir, wie das funktioniert ...
Könnte es sein? wird das einen booleschen Wert zurückgeben? ? obj2=obj1.result[i]Ich habe JAVA schon einmal gelernt, aber ich habe das Gefühl, dass JavaScript etwas weniger streng ist als JAVA und meine Gedanken ein wenig eingesperrt sind ...

ringa_lee
ringa_lee

ringa_lee

Antworte allen(4)
我想大声告诉你

赋值表达式会返回所赋的值。也就是说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

phpcn_u1582

赋值运算符的返回结果就是这个被赋值的值,这个在各大类 C 的语言里,包括 Java 都是这样定义的,不足为奇。

Java 里条件判断只能用布尔值,而 JavaScript 不一样,这里需要一个布尔值你给的如果不是一个布尔值就会隐式转换成布尔值。

为情所困

javascript是弱类型的语言,会自动转的~

我想大声告诉你

一个等于号 是赋值的意思,等于你把obj1.result[i]赋给obj2了,所以一直成立

你可以去搜一下 = == ===的区别 看看题就懂了

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage