JavaScript 假值示例详解

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
[] ?? '数组'         // 返回 []
{} ?? '对象'         // 返回 {}
相关推荐
421!2 小时前
C语言学习笔记——10(结构体)
c语言·开发语言·笔记·stm32·学习·算法
CHU7290352 小时前
美护便捷预约,解锁精致生活——美业服务商城小程序前端功能解析
前端·小程序·生活
551只玄猫2 小时前
【数学建模 matlab 实验报告5】最短路问题作业
开发语言·数学建模·matlab·课程设计·图论·最短路径·实验报告
不只会拍照的程序猿2 小时前
《嵌入式AI筑基笔记04:python函数与模块01—从C的刻板到Python的灵动》
c语言·开发语言·笔记·python
早點睡3902 小时前
ReactNative项目OpenHarmony三方库集成实战:react-native-snackbar
javascript·react native·react.js
ada0_ada12 小时前
Qt的Widgets项目
开发语言·qt
1104.北光c°2 小时前
Leetcode146 LRU缓存的三种写法 【hot100算法个人笔记】【java写法】
java·开发语言·笔记·算法·leetcode·hot100·lru缓存
花千树-0102 小时前
用 Java 实现 RAG 组件化:从 PDF 加载到智能问答全流程
java·开发语言·人工智能·langchain·pdf·aigc·ai编程
Dovis(誓平步青云)2 小时前
《QT学习第一篇:QT的概述与安装、信号与槽》
开发语言·qt·学习·功能详解