如何通过运算符“&&”检查Javascript对象的生存性?

如何通过运算符“&&”检查Javascript对象的生存性?,javascript,Javascript,我的朋友告诉我,这段代码用于检查Javascript对象的生存: 示例:我有两个对象,每个对象有两个名为“a”和“b”的属性 var obj1 = {a:0,b:0} var obj2 = {a:3,b:4} 对于值为all属性为0且“obj2”的obj1,have child属性的值为整数,并且我将“obj1”设为检查表达式的第一个运算符,则我得到的结果失败 if((obj1.a && obj1.b)&& obj2){ document.write(&

我的朋友告诉我,这段代码用于检查Javascript对象的生存:

示例:我有两个对象,每个对象有两个名为“a”和“b”的属性

var obj1 = {a:0,b:0}
var obj2 = {a:3,b:4}
对于值为all属性为0且“obj2”的obj1,have child属性的值为整数,并且我将“obj1”设为检查表达式的第一个运算符,则我得到的结果失败

if((obj1.a && obj1.b)&& obj2){
    document.write("success")
}else{
   document.write("failed")
}
否则,如果我将obj1设为第二个运算符,则得到的结果是成功,如下所示:

if((obj2.a && obj2.b)&& obj1){
    document.write("success")
}else{
document.write("failed")
}
谁能给我解释一下原因吗

var obj1={a:0,b:0} var obj2={a:3,b:4} ifobj1.a&&obj1.b&&obj2{ document.writesuccess }否则{ document.writefailed } document.write ifobj2.a&&obj2.b&&obj1{ document.writesuccess }否则{ document.writefailed } 谁能给我解释一下原因吗

你在观察

本节中的if表达式:

var obj1 = { a: 0, b: 0 };
var obj2 = { a: 3, b: 4 };

if( ( obj1.a && obj1.b ) && obj2 ) {
是:

……这实际上是:

( 0 && 0 ) && aNonNullObject

==

( false && false ) && true

==

( false ) && true

==

false
另一个例子是:

if( ( obj2.a && obj2.b ) && obj1 ) {
…是:

( 3 && 4 ) && aNonNullObject

==

( true && true ) && true

==

( true ) && true

==

true
这是因为0、null、未定义和空字符串都是假字符串。 而非零数字、非空对象和非空字符串是真实的。 也

用于检查Javascript对象的生存状态

生存不是JavaScript中使用的一个术语,也不是一般编程中使用的一个术语,所以我敢打赌你的朋友不是JavaScript编程专家,我想你已经养成了使用document.write的习惯,所以我建议你不要对他们说的任何话都不加批判

对象生命周期和生命周期是编程中使用的术语,但它们与您所问的问题无关

谁能给我解释一下原因吗

你在观察

本节中的if表达式:

var obj1 = { a: 0, b: 0 };
var obj2 = { a: 3, b: 4 };

if( ( obj1.a && obj1.b ) && obj2 ) {
是:

……这实际上是:

( 0 && 0 ) && aNonNullObject

==

( false && false ) && true

==

( false ) && true

==

false
另一个例子是:

if( ( obj2.a && obj2.b ) && obj1 ) {
…是:

( 3 && 4 ) && aNonNullObject

==

( true && true ) && true

==

( true ) && true

==

true
这是因为0、null、未定义和空字符串都是假字符串。 而非零数字、非空对象和非空字符串是真实的。 也

用于检查Javascript对象的生存状态

生存不是JavaScript中使用的一个术语,也不是一般编程中使用的一个术语,所以我敢打赌你的朋友不是JavaScript编程专家,我想你已经养成了使用document.write的习惯,所以我建议你不要对他们说的任何话都不加批判

对象生存期和生存期是编程中使用的术语,但它们与您所问的问题无关。

使用

var obj1={a:0,b:0}; var obj2={a:3,b:4}; 如果obj1.hasOwnProperty'a'和&obj1.hasOwnProperty'b'和&obj2{ document.writesuccess;//成功 }否则{ 文件。已编写; } 使用

var obj1={a:0,b:0}; var obj2={a:3,b:4}; 如果obj1.hasOwnProperty'a'和&obj1.hasOwnProperty'b'和&obj2{ document.writesuccess;//成功 }否则{ 文件。已编写; }
你说生存是什么意思?你说生存是什么意思?解释得很好。解释得很好。