在nodejs之中, userUuid !== '' 和 userUuid != ''是一样的吗?

在 Node.js 中,if (userUuid !== '')if (userUuid != '') 不一样 ,核心区别在于比较运算符的严格性

1. !==:严格不相等运算符

  • 规则 :同时比较值和类型,只有当两者值不相等类型也不相等 时,结果才为 true

  • 示例

    javascript 复制代码
    const userUuid = '';
    console.log(userUuid !== ''); // false(值和类型都相同)
    
    const userUuid = 0;
    console.log(userUuid !== ''); // true(值不同,类型也不同:number vs string)
    
    const userUuid = null;
    console.log(userUuid !== ''); // true(类型不同:null vs string)

2. !=:非严格不相等运算符

  • 规则:先尝试进行类型转换(将两边的值转为同一类型),再比较值是否不相等。

  • 示例

    javascript 复制代码
    const userUuid = '';
    console.log(userUuid != ''); // false(值相同)
    
    const userUuid = 0;
    console.log(userUuid != ''); // false(0 会被转为空字符串 '',值相同)
    
    const userUuid = null;
    console.log(userUuid != ''); // true(null 转换后与 '' 不相等)
    
    const userUuid = undefined;
    console.log(userUuid != ''); // true(undefined 转换后与 '' 不相等)

关键区别场景

userUuid 的类型不是字符串时,两者结果可能不同:

  • userUuid0(数字):
    • userUuid !== ''true(类型不同)
    • userUuid != ''false(0 被转为 '',值相等)
  • userUuidnull
    • userUuid !== ''true(类型不同)
    • userUuid != ''true(转换后值不相等)

建议

在判断字符串是否非空时,推荐使用 !== ,因为它不会进行隐式类型转换,逻辑更清晰,能避免因类型差异导致的意外结果(比如误判 0 为空白字符串)。

例如,确保 userUuid 是字符串且不为空:

javascript 复制代码
if (userUuid !== '') { 
  // 执行逻辑 
}
相关推荐
吴声子夜歌13 小时前
Vue3——条件判断指令
前端·es6
snow_yan13 小时前
AI 对话流式输出: 实现“逐字丝滑、不闪烁、不卡顿”的打字机效果
前端·react.js·openai
Devin_chen13 小时前
Pinia 渐进式学习指南
前端·vue.js
你听得到1113 小时前
周下载60w,但是作者删库!我从本地 pub 缓存里把它救出来,顺手备份到了自己的 GitHub
前端·flutter
PeterMap13 小时前
Vue组合式API响应式状态声明:ref与reactive实战解析
前端·vue.js
CodeGuru13 小时前
UniApp Vue3 生成海报并分享到朋友圈
前端
三原13 小时前
附源码:三原管理系统新增俩种常用布局
java·前端·vue.js
布局呆星13 小时前
Vue3 | 组件化开发---组件插槽与通信
前端·javascript·vue.js
DyLatte13 小时前
当我想把所有角色都做好时,就开始内耗了
前端·后端·程序员
a11177614 小时前
汽车展厅项目 开源项目 ThreeJS
前端·开源·html