在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 !== '') { 
  // 执行逻辑 
}
相关推荐
一个专注api接口开发的小白19 分钟前
Python/Node.js 调用taobao API:构建实时商品详情数据采集服务
前端·数据挖掘·api
掘金一周26 分钟前
我开源了一款 Canvas “瑞士军刀”,十几种“特效与工具”开箱即用 | 掘金一周 8.14
前端·人工智能·后端
嘘不要声张35 分钟前
地图点聚合(谷歌)
前端
缉毒英雄祁同伟42 分钟前
企业级WEB应用服务器TOMCAT
java·前端·tomcat
har01d42 分钟前
在 uniapp 里使用 unocss,vue3 + vite 项目
前端·uni-app·vue·uniapp·unocss
OLong1 小时前
React Update Queue 源码全链路解析:从 setState 到 DOM 更新
前端·react.js
知识浅谈1 小时前
OpenLayers与Vue.js结合实现前端地图应用
前端
掘金011 小时前
Vue3 项目中实现特定页面离开提示保存功能方案
javascript·vue.js
答案answer1 小时前
three.js 实现几个好看的文本内容效果
前端·webgl·three.js
余_弦1 小时前
区块链钱包开发(十九)—— 构建账户控制器(AccountsController)
javascript·区块链·以太坊