JavaScript 假值有 :false、0、''、null、undefined、NaN
javascript
// false- 布尔值假
if (false) {
console.log("这行永远不会执行");
} else {
console.log("false 是假值,所以执行这里");
}
// 输出: "false 是假值,所以执行这里"
// 0 值
if (0) {
console.log("这行永远不会执行");
} else {
console.log("0 是假值");
}
// 输出: "0 是假值"
// 1. 空字符串
if ('') {
console.log("这行永远不会执行");
} else {
console.log("空字符串是假值");
}
// 输出: "空字符串是假值"
// 1. 直接使用
if (null) {
console.log("这行永远不会执行");
} else {
console.log("null 是假值");
}
// 输出: "null 是假值"
// 未初始化的变量
let declaredButUndefined;
if (declaredButUndefined) {
console.log("这行永远不会执行");
} else {
console.log("undefined 是假值");
}
// 输出: "undefined 是假值"
// NaN- 非数字
if (NaN) {
console.log("这行永远不会执行");
} else {
console.log("NaN 是假值");
}
// 输出: "NaN 是假值"
// 3. 假值在实际应用中的处理
function processUserInput(input) {
// 处理各种假值情况
if (!input) {
return "输入无效";
}
return `处理结果: ${input}`;
}
//null == undefined
console.log(`null == undefined 值为:`);
console.log(null == undefined); // 输出 true
注意 几个 "假值" 之间的比较,如下:
javascript
// 使用双等号比较
console.log("\n双等号比较 (==):");
console.log(false == 0); // true
console.log(false == ''); // true
console.log(0 == ''); // true
console.log(null == undefined); // true
console.log(NaN == NaN); // false (特殊!)
// 使用三等号比较
console.log("\n三等号比较 (===):");
console.log(false === 0); // false
console.log(false === ''); // false
console.log(0 === ''); // false
console.log(null === undefined); // false
console.log(NaN === NaN); // false
有没有一种方法,只检查null与undefined了?
?? 是 JavaScript 中的逻辑运算符,用于检查左侧表达式是否为 null或 undefined,如果是,则返回右侧的值;否则返回左侧的值。
javascript
// 只有当左侧是 null 或 undefined 时,才返回右侧
null ?? '默认值' // 返回 '默认值'
undefined ?? '默认值' // 返回 '默认值'
// 其他任何值(包括假值)都返回左侧
0 ?? 100 // 返回 0
false ?? true // 返回 false
'' ?? '空字符串' // 返回 ''
NaN ?? 10 // 返回 NaN
[] ?? '数组' // 返回 []
{} ?? '对象' // 返回 {}