javascript中判断变量是否存在的正确方式
在Javascript中,我们通常判断一个变量是否存在(即不为null
或者undefined
),往往是这样判断的
if(tomy){
console.log(obj.name);
}
这种写法在大部分情况下都没问题,但是在有的情况下就会很坑,比如:
空字符串
if(tomy.address){//tomy.address=''
console.log(tomy.address);
}else{
console.log("the obj tomy need address property");
}
我们的本意是判断tomy是否有address
这个属性,结果是有address
属性的,只是值为'’
(啥都没有,空字符串),结果就被js引擎解析为布尔值false
,和本意不符。
数字0
var config={};
if(minValue){//minValue=0;
config.minValue=minValue;
}
我们的本意是判断是否传了minValue,如果有就赋值,结果是有传minValue
属性的,只是值为0
,结果就被js引擎解析为布尔值false
,变成了没有传minValue
这个属性。和本意不符。
布尔值
if(tomy.canWork){//tomy.canWork=false;
//do work
}
我们的本意是判断tomy是否有canWork
这个属性,结果是有canWork
属性的,只是值为false
,结果就会和本意不符。
结论
因此我们要判断一个变量是否存在,应该这样写才是比较好的,也方便后期维护。
//封装为一个方法
const isNullOrUndefined=obj=>obj===null || obj === undefined;
var config={};
if(!isNullOrUndefined(minValue)){
config.minValue=minValue;
}
生活,有时候就是很简单,有时候却很要命。
标签:
javascript
, FAQ
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!