返回

那些年一道题会误导多少新手?

前端

谈到 JavaScript 代码题,很多新手都会感到头疼。这些代码题往往考察的是 JavaScript 的基础知识点,但它们往往会采用一些误导性的写法,让新手一头雾水。本文收集了一些有趣的、易错的 JavaScript 代码题,涵盖了 JavaScript 基础知识点的方方面面。这些代码题可能会误导新手,但认真分析后也不难发现其中的奥秘。本文旨在帮助读者理解 JavaScript 的基础知识,避免陷入代码题的陷阱。

1. null 是 falsy 吗?

console.log(!null); // true

null 是 JavaScript 中的一个特殊值,它表示一个空值。在 JavaScript 中,falsy 值是指那些在布尔运算中会被转换为 false 的值。falsy 值包括 null、undefined、0、空字符串 ""、false。

乍一看,上面的代码可能会让新手感到疑惑。null 是一个空值,它应该是一个假值,但 !null 的值却是 true。这是因为 JavaScript 中的 ! 运算符是逻辑非运算符,它的作用是将一个值取反。因此,!null 的值是 true,这与我们的直觉不符。

2. !true 的值是什么?

console.log(!true); // false

true 是 JavaScript 中的一个布尔值,它表示一个真值。在 JavaScript 中,! 运算符是逻辑非运算符,它的作用是将一个值取反。因此,!true 的值是 false。

这个代码题很容易理解,但它仍然可以起到误导新手的作用。新手可能会认为 !true 的值应该是 true,因为 true 是一个真值。但实际上,!true 的值是 false,这与我们的直觉不符。

3. "" 是 falsy 吗?

console.log(!""); // true

空字符串 "" 是 JavaScript 中的一个特殊值,它表示一个空字符串。在 JavaScript 中,falsy 值是指那些在布尔运算中会被转换为 false 的值。falsy 值包括 null、undefined、0、空字符串 ""、false。

乍一看,上面的代码可能会让新手感到疑惑。空字符串 "" 是一个空值,它应该是一个假值,但 !"" 的值却是 true。这是因为 JavaScript 中的 ! 运算符是逻辑非运算符,它的作用是将一个值取反。因此,!"" 的值是 true,这与我们的直觉不符。

4. 0 是 falsy 吗?

console.log(!0); // true

0 是 JavaScript 中的一个数字值,它表示一个数字零。在 JavaScript 中,falsy 值是指那些在布尔运算中会被转换为 false 的值。falsy 值包括 null、undefined、0、空字符串 ""、false。

乍一看,上面的代码可能会让新手感到疑惑。0 是一个数字值,它应该是一个真值,但 !0 的值却是 true。这是因为 JavaScript 中的 ! 运算符是逻辑非运算符,它的作用是将一个值取反。因此,!0 的值是 true,这与我们的直觉不符。

5. false 是 falsy 吗?

console.log(!false); // true

false 是 JavaScript 中的一个布尔值,它表示一个假值。在 JavaScript 中,falsy 值是指那些在布尔运算中会被转换为 false 的值。falsy 值包括 null、undefined、0、空字符串 ""、false。

乍一看,上面的代码可能会让新手感到疑惑。false 是一个假值,它应该是一个真值,但 !false 的值却是 true。这是因为 JavaScript 中的 ! 运算符是逻辑非运算符,它的作用是将一个值取反。因此,!false 的值是 true,这与我们的直觉不符。

总结

本文收集了一些有趣的、易错的 JavaScript 代码题,涵盖了 JavaScript 基础知识点的方方面面。这些代码题可能会误导新手,但认真分析后也不难发现其中的奥秘。本文旨在帮助读者理解 JavaScript 的基础知识,避免陷入代码题的陷阱。