Javascript 为什么可以';不要使用“!!”!!document.getElementsByClassName&&;函数(){return document.getElementsByClassName(obj)}”;用于简化代码
当我想检查Explorer是否存在getElementsByClassName时。 我在代码下使用,它工作得很好 函数getClass(obj){ if(document.getElementsByClassName){ 返回文档.getElementsByCassName(obj) }Javascript 为什么可以';不要使用“!!”!!document.getElementsByClassName&&;函数(){return document.getElementsByClassName(obj)}”;用于简化代码,javascript,Javascript,当我想检查Explorer是否存在getElementsByClassName时。 我在代码下使用,它工作得很好 函数getClass(obj){ if(document.getElementsByClassName){ 返回文档.getElementsByCassName(obj) } }//很好地工作这个问题: function getClass(obj) { !!document.getElementsByClassName && ( return documen
}//很好地工作这个问题:
function getClass(obj) {
!!document.getElementsByClassName && ( return document.getElementsByClassName(obj) );
}//work badly
function getClass(obj) {
!!document.getElementsByClassName && function() {
return document.getElementsByClassName(obj)
};
}
不能将return
用作逻辑表达式的一部分
这个问题是:
function getClass(obj) {
!!document.getElementsByClassName && ( return document.getElementsByClassName(obj) );
}//work badly
function getClass(obj) {
!!document.getElementsByClassName && function() {
return document.getElementsByClassName(obj)
};
}
实际上,您不必返回任何内容,只需创建一个未分配给任何内容的匿名函数,因此默认的未定义的
您可以通过将return
置于逻辑条件之前来执行类似操作
function getClass(obj) {
return !!document.getElementsByClassName && document.getElementsByClassName(obj);
}
老实说,这些短路技巧其实并不简单,我建议只使用选项1或三元运算符
function getClass(obj) {
return document.getElementsByClassName ?
document.getElementsByClassName(obj) :
null;
}
这个问题是:
function getClass(obj) {
!!document.getElementsByClassName && ( return document.getElementsByClassName(obj) );
}//work badly
function getClass(obj) {
!!document.getElementsByClassName && function() {
return document.getElementsByClassName(obj)
};
}
不能将return
用作逻辑表达式的一部分
这个问题是:
function getClass(obj) {
!!document.getElementsByClassName && ( return document.getElementsByClassName(obj) );
}//work badly
function getClass(obj) {
!!document.getElementsByClassName && function() {
return document.getElementsByClassName(obj)
};
}
实际上,您不必返回任何内容,只需创建一个未分配给任何内容的匿名函数,因此默认的未定义的
您可以通过将return
置于逻辑条件之前来执行类似操作
function getClass(obj) {
return !!document.getElementsByClassName && document.getElementsByClassName(obj);
}
老实说,这些短路技巧其实并不简单,我建议只使用选项1或三元运算符
function getClass(obj) {
return document.getElementsByClassName ?
document.getElementsByClassName(obj) :
null;
}
此外,在功能上,即使在“修复”之后,如果getElementsByClassName
不可用,它也不会执行它应该执行的操作。此外,在功能上,即使在“修复”之后,如果getElementsByClassName
不可用,它也不会执行它应该执行的操作。