gpt4 book ai didi

javascript - JavaScript 如何解析链式三元表达式?

转载 作者:行者123 更新时间:2023-11-29 19:34:21 26 4
gpt4 key购买 nike

我正在阅读 jQuery source code for jQuery.filter我偶然发现了一堆

jQuery.filter = function( expr, elems, not ) {
var elem = elems[ 0 ];

if ( not ) {
expr = ":not(" + expr + ")";
}

return elems.length === 1 && elem.nodeType === 1 ?
jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :
jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
return elem.nodeType === 1;
}));
};

所以简而言之,我们有

return "a" && "b" ? "c" ? "d" : "e" : "f";

每个字符串可以是不同的值

我的问题不是如何破译这段代码,而是我的大脑正在打结试图评估这里使用的逻辑。

谁能帮我理解 JavaScript 如何计算这个返回表达式?

最佳答案

条件运算符是右结合的,逻辑运算符有更高的优先级,所以:

return "a" && "b" ? "c" ? "d" : "e" : "f";

等同于:

return ( ("a" && "b") ? ("c" ? "d" : "e") : "f" );

或完整:

if ("a" && "b") {
if ("c") {
return "d";
} else {
return "e";
}
} else {
return "f";
}

引用

关于javascript - JavaScript 如何解析链式三元表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25901945/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com