Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.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代码更小或更高效吗?_Javascript_Performance_Coding Efficiency - Fatal编程技术网

您能使这个JavaScript代码更小或更高效吗?

您能使这个JavaScript代码更小或更高效吗?,javascript,performance,coding-efficiency,Javascript,Performance,Coding Efficiency,使用纯香草JavaScript,您可以将其缩小吗?或者更有效? 它是Jquery的“$”函数的“副本”。虽然工作原理不同,但代码如下: function $(id,from = document) { if(!'#.<'.includes(id.charAt(0))) id = '#' + id; if (id.charAt(0) == '<') id = id.charAt(id.length-1) == '>' ? id.substring(1,id.len

使用纯香草JavaScript,您可以将其缩小吗?或者更有效? 它是Jquery的“$”函数的“副本”。虽然工作原理不同,但代码如下:

function $(id,from = document) {
    if(!'#.<'.includes(id.charAt(0))) id = '#' + id;
    if (id.charAt(0) == '<') id = id.charAt(id.length-1) == '>' ? id.substring(1,id.length-1) : id.substring(1,id.length);
    return from.querySelectorAll(id).length == 1 ? from.querySelectorAll(id)[0] : from.querySelectorAll(id).length == 0 ? false : from.querySelectorAll(id);
}
function$(id,from=document){

如果(!'#.至少可以将
的结果从.querySelectorAll(id)
提取到变量中,而不是多次计算它


在另一个例子中,正如Barmar所建议的,将这个函数调用的结果缓存在它之外的某个地方,并保持这个函数简单而愚蠢(KISS).

与其尝试优化此函数,不如对调用者进行处理,让他们缓存函数的结果,而不是不必要地调用它。这不是我投票将此问题作为主题外的问题结束,因为它属于codereview.stackexchange.com