Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么可以';不要使用“!!”!!document.getElementsByClassName&&;函数(){return document.getElementsByClassName(obj)}”;用于简化代码_Javascript - Fatal编程技术网

Javascript 为什么可以';不要使用“!!”!!document.getElementsByClassName&&;函数(){return document.getElementsByClassName(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

当我想检查Explorer是否存在getElementsByClassName时。 我在代码下使用,它工作得很好

函数getClass(obj){ if(document.getElementsByClassName){ 返回文档.getElementsByCassName(obj) }
}//很好地工作这个问题:

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
不可用,它也不会执行它应该执行的操作。