jQuery源代码中的奇怪代码:var != var ? x : y;

在深入研究jQuery源代码时,你可能会发现一些看起来有些奇怪的代码。例如,以下代码:

--- - - --
--- - - ---
--- - - -- -- -- - ------- - --------

尤其是那个 (a != b) ? "Hello" : "World" 部分。这是一个JavaScript中的三元运算符,也称为条件运算符。它的语法如下:

--------- - ---------- - -----------

如果 condition 的值为真,则执行 exprIfTrue,否则执行 exprIfFalse

在上面的示例代码中,(a != b) 是条件,如果 a 不等于 b,则 c 的值为 "Hello",否则 c 的值为 "World"

但是,在jQuery源代码中,我们经常看到类似于以下代码的使用:

--- - - - - -- - - - - --
--- ------ - -- -- ---- - - - -- -- ---- - -- -- ---- - - - -- - -- -- ---- - - - ---

这里涉及到了两个连续的三元运算符,但是它们使用的是相同的条件 (a != null ? a : b) != null。什么意思呢?

首先,让我们解析第一个三元运算符:

-- -- ---- - - - --

这意味着,如果 a 不是 null,那么 result 的值将为 a,否则将为 b

接下来,让我们看看第二个三元运算符:

------- -- ---- - ------ - -- -- ---- - - - ---

这里的条件是 (result != null),它先检查了上一个三元运算符的结果。如果 result 不是 null,那么结果就是 result,否则会检查 cd。如果 c 不是 null,那么结果为 c,否则为 d

这种用法的好处是什么呢?首先,它可以使代码更简洁,因为相同的条件只需编写一次。其次,它可以保证 result 变量始终有一个非 null 值。

在学习前端开发时,我们应该多留意jQuery源代码中的奇怪语法,并通过阅读和分析源代码来提高自己的编码技能。同时,在编写自己的代码时,也应该思考如何用更简洁的方式来表达相同的逻辑。

示例代码:

--- - - --
--- - - ---
--- - - -- -- -- - ------- - --------
--------------- -- -- -------

--- - - -----
--- - - ---
--- - - -- -- ---- - - - ---
--------------- -- -- --

--- - - - - -- - - - - --
--- ------ - -- -- ---- - - - -- -- ---- - -- -- ---- - - - -- - -- -- ---- - - - ---
-------------------- -- -- -

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/14991