【JavaScript】Boolean类型的变量判断是否为undefined

问题归总:变量的类型判断

场景:一个Boolean参数,判断是否定义,如果已定义则返回储存的值,如果未定义则返回true

省流:直接跳到解决方案


错误写法

一开始可能都习惯性的用三目表达式来实现
例如:

	var result = (arg) ? arg : true;

结果发现不管存储值是什么,返回的都是true


原因分析:

提示:仔细思考下,这里的逻辑

	arg == true // 返回 true
    arg == false // 返回 true
    arg = undefined // 返回 true

因此需要改写下逻辑:

	var result = (arg == false) ? false: true;
	
	arg == false // 返回 false
	arg == true // 返回 true
	arg = undefined // 返回 true

抛砖:但是这句语法的逻辑还是绕弯了,思考思考优化一下吧


解决方案:

引玉:判断这个逻辑,其实就是两个方向的选择,正确or错误、动or静,而上面的逻辑思维是从 如果变量等于fasle 的判断方向走的,那么为何不反过来想呢?

简化的写法:

	var result = (arg !== false);
	
	arg == false // 返回 false
	arg == true // 返回 true
	arg = undefined // 返回 true
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值