为什么在JS中 [] == false 的比较结果会是 true?

更新于
2026-09-29 09:36:03
0阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计593个文字,预计阅读时间需要3分钟。

为什么在JS中 [] == false 的比较结果会是 true?

JS 判断 `[ ]==false` 的结果为 true,原因如下:

javascriptvar tmp='a';if ([ ]==false) tmp +='b';if (![]) tmp +='c';alert(tmp); // tmp 的值为什么是?

这段代码中,`[ ]` 是一个空数组,它是一个假值(falsy value)。在 JavaScript 中,`==` 是一个双等号运算符,它会在比较时进行类型转换。当 `[ ]==false` 时,由于 `[ ]` 是假值,比较结果为 true。

为什么在JS中 [] == false 的比较结果会是 true?

解释如下:

1. `[ ]==false`:由于 `[ ]` 是一个空数组,它是假值,而 `false` 也是假值,因此比较结果为 true。

2.`tmp` 的初始值是 `'a'`,由于第一个 `if` 语句的条件为真,`tmp` 被赋值为 `'ab'`。

3.第二个 `if` 语句 `![]` 也为真,因为 `[ ]` 是假值,其逻辑非 `![]` 结果为真,因此 `tmp` 再次被赋值为 `'abc'`。

4.最终,`alert(tmp)` 会显示 `'abc'`。

阅读全文

本文共计593个文字,预计阅读时间需要3分钟。

为什么在JS中 [] == false 的比较结果会是 true?

JS 判断 `[ ]==false` 的结果为 true,原因如下:

javascriptvar tmp='a';if ([ ]==false) tmp +='b';if (![]) tmp +='c';alert(tmp); // tmp 的值为什么是?

这段代码中,`[ ]` 是一个空数组,它是一个假值(falsy value)。在 JavaScript 中,`==` 是一个双等号运算符,它会在比较时进行类型转换。当 `[ ]==false` 时,由于 `[ ]` 是假值,比较结果为 true。

为什么在JS中 [] == false 的比较结果会是 true?

解释如下:

1. `[ ]==false`:由于 `[ ]` 是一个空数组,它是假值,而 `false` 也是假值,因此比较结果为 true。

2.`tmp` 的初始值是 `'a'`,由于第一个 `if` 语句的条件为真,`tmp` 被赋值为 `'ab'`。

3.第二个 `if` 语句 `![]` 也为真,因为 `[ ]` 是假值,其逻辑非 `![]` 结果为真,因此 `tmp` 再次被赋值为 `'abc'`。

4.最终,`alert(tmp)` 会显示 `'abc'`。

阅读全文