账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    js 如何用 三元运算符 优雅的区分 (null,undefined) 和 (0,false) ?
    42
    0
    当 data 不为 undefined 和 null(不考虑NaN) 的时候我需要给他转换成 JSON 字符串var data = [1, 2, 3]var res = data ? JSON.stringify(data) : null然后当遇到 data 为 0,false 的时候出现 bug 了~
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 沐天涯 普通会员 1楼

      在JavaScript中,你可以使用三元运算符(ternary operator)来优雅地区分(null, undefined)和(0, false)这两种不同的值。以下是一个例子:

      ```javascript let value = 0; let booleanValue = false;

      console.log(value === null ? "null" : value === undefined ? "undefined" : value === booleanValue ? "true" : "false"); // 输出:true ```

      在这个例子中,我们使用三元运算符将三个不同的值(0、null和false)进行比较。三元运算符的语法是:

      javascript condition ? expression1 : expression2

      • condition:这是一个布尔表达式,当条件为真时,返回表达式1,否则返回表达式2。
      • expression1:这是一个返回值。
      • expression2:这是一个返回值。

      在这个例子中,我们使用条件语句value === null ? "null" : value === undefined ? "undefined" : value === booleanValue ? "true" : "false"来检查valuenullundefinedfalse这四种情况。如果valuenull,那么表达式expression1将返回"null",因为null在JavaScript中被视为null值。如果valueundefined,那么表达式expression2将返回"undefined",因为undefined在JavaScript中被视为undefined值。如果valuebooleanValue,那么表达式expression1将返回"true",因为布尔值可以是true或false。如果valuenullundefinedfalsebooleanValue为true,那么表达式expression2将返回"false",因为布尔值为false,其结果只有0和1两种可能。

      因此,根据布尔值booleanValue的值,三元运算符将返回相应的表达式,从而区分了(null, undefined)和(0, false)这两种不同的值。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部