JavaScript判断变量值简单的方法
今天在看一个动态web表单设计器的时候发现项目中的 一个写法
1 function sum_total(v){ 2 if (!v) { 3 v= 0; 4 } 5 }
!v 这是什么写法?不过可以肯定的是,这是一种判断变量值的方式,看样子应该是非类型判断,会不会是判断变量v是否为0,如果不为0就给变量v赋值0。
带着这个疑问,我马上动手敲了几行js印证我的猜想
————————————————————华丽的分割线————————————————————
1 var num = 0; 2 document.write("num=" + num + "<br/>"); 3 if (num) { 4 document.write("num不为0<br/>"); 5 } else { 6 document.write("num为0<br/>"); 7 }
我把num的值又改为了-1和1,对比结果为
那么得出结论,变量类型为int:当变量值 = 0时,返回值为false;当变量值 < 0或变量值 > 0时,返回值为true
(那表单设计器中的代码 if (!v) v= 0; 写法就是多此一举了,当v = 0时,又给v赋值0,哈哈哈哈哈~被我给发现了~)
感谢@mgso的提醒~
@mgso
哥,那不是多此一举哟
如果v为null,undefinde,'',0...结果都是false
这里if(!v)的意思是:
如果v值没有传过来,设置v的值为0.等价于:
v || 0
嗯,验证了int类型的变量,那么再测试一下string类型的变量
1 var str = ""; 2 document.write("<br/>str=" + str + "<br/>"); 3 if (str) { 4 document.write("str有值<br/>"); 5 } else { 6 document.write("str为空<br/>"); 7 } 8 str = null; 9 //... 10 str = undefined; 11 //... 12 str = "Hello World!"; 13 //...
执行结果为
那么得出结论,变量类型为string:当变量值 = "",变量值 = null,变量值 = undefined时,返回值为false,当变量值 = "xxx"时,返回值为true
————————————————————华丽的分割线————————————————————
哈哈哈,有了这种写法,以后判断 数值是否为0 和 字符串值是否为空 就不用写成 if (num === 0) 或者 if (str === "" || str === undefined) 了!
1 if (str) { 2 // 如果str不为空的操作 3 } 4 if (num) { 5 // 如果num不为0的操作 6 }
分类:
JavaScript
标签:
JavaScript
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!