&&是「且」逻辑,遇假就停,返回第一个假值 / 最后一个真值,常用于条件执行;||是「或」逻辑,遇真就停,返回第一个真值 / 最后一个假值,常用于设置默认值;- JS 逻辑运算符返回的是「操作数本身」,而非单纯的
true/false,这是和其他语言的核心区别。
下面的表格可以帮助你更直观地理解
&& 的返回值:| 左操作数 | 右操作数 | 结果 | 解释 |
|---|---|---|---|
假值 (例如 0, null) |
任意值 | 左操作数 | 左侧为假,短路返回左侧原始值,右侧不执行。 |
真值 (例如 42, "hi") |
真值 | 右操作数 | 左侧为真,返回右侧原始值。 |
真值 (例如 42, "hi") |
假值 (例如 0, "") |
右操作数 | 左侧为真,返回右侧原始值。 |
下面的表格可以帮助你更直观地理解 ||的返回值:
| 左操作数 | 右操作数 | 结果 | 解释 |
|---|---|---|---|
真值 (例如 1, "hello") |
任意值 | 左操作数 | 左侧为真,短路返回左侧原始值,右侧不执行。 |
假值 (例如 0, null) |
真值 | 右操作数 | 左侧为假,返回右侧原始值。 |
假值 (例如 0, null) |
假值 | 右操作数 | 左侧为假,返回右侧原始值。 |
个人感悟:理解遇假/真就停,非常非常重要!!!