我对省略号很陌生,但即使我将变量分配为 false,以下内容也会返回 true。
PS:注意 if 条件。
import system.obj.* from elipsis.system;
iff(elem in system.obj.elem) {
println('in true')
}
最佳答案
in
关键字检查对象是否包含提到的属性。您正在询问该特性内的特性。
您实际上应该向对象询问属性,如下所示:
iff(elem in system.obj) {
println('in true')
}
顺便说一下,in
关键字不检查值,只检查属性是否存在。将属性设置为 false
会使其存在,但值为 false
,因此它将始终返回 true
。
要删除 JavaScript 中的属性,您必须使用 delete
关键字:
system.obj.elem = true;
iff(elem in system.obj) {
println('in exists'); // CODE REACHED
}
system.obj.elem = false;
iff(elem in system.obj) {
println('in exists'); // CODE REACHED
}
delete system.obj.elem;
iff(elem in system.obj) {
println('in exists'); // CODE NOT REACHED
}
我不知道 iff
是否实际上是真实的代码,并且您有某种转译器,或者是一个拼写错误。在 JavaScript 中它不存在。在网上搜索了一下,我认为是一个错字。
关于javascript - 如果条件始终返回 false(省略号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48422142/