推荐答案
在 JavaScript 中,布尔类型的转换规则遵循以下原则:
假值(Falsy):以下值在布尔上下文中会被转换为
false:false0""(空字符串)nullundefinedNaN
真值(Truthy):除了上述假值之外的所有值,在布尔上下文中都会被转换为
true。包括:true- 非零数字(包括负数)
- 非空字符串
- 对象(包括空对象
{}和数组[]) - 函数
本题详细解读
1. 假值(Falsy)
在 JavaScript 中,假值是指在布尔上下文中会被转换为 false 的值。常见的假值包括:
false:布尔值false本身就是一个假值。0:数字0在布尔上下文中会被视为false。"":空字符串(即长度为 0 的字符串)会被视为false。null:表示空值或无值的null会被视为false。undefined:表示未定义的值undefined会被视为false。NaN:表示“非数字”的NaN会被视为false。
2. 真值(Truthy)
真值是指在布尔上下文中会被转换为 true 的值。除了上述假值之外的所有值都是真值,包括:
true:布尔值true本身就是一个真值。- 非零数字:任何非零的数字(包括负数)都会被转换为
true。 - 非空字符串:任何非空字符串(即使只包含空格)都会被转换为
true。 - 对象:任何对象(包括空对象
{}和空数组[])都会被转换为true。 - 函数:任何函数都会被转换为
true。
3. 示例
// www.javascriptcn.com code example
console.log(Boolean(false)); // false
console.log(Boolean(0)); // false
console.log(Boolean("")); // false
console.log(Boolean(null)); // false
console.log(Boolean(undefined)); // false
console.log(Boolean(NaN)); // false
console.log(Boolean(true)); // true
console.log(Boolean(1)); // true
console.log(Boolean("hello")); // true
console.log(Boolean({})); // true
console.log(Boolean([])); // true
console.log(Boolean(function() {})); // true通过这些示例,可以清楚地看到 JavaScript 中布尔类型的转换规则。