前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JS系列1-布尔陷阱以及如何避免

JS系列1-布尔陷阱以及如何避免

作者头像
星星在线
发布2023-03-20 13:22:13
4570
发布2023-03-20 13:22:13
举报

布尔陷阱以及如何避免布尔陷阱

什么是布尔陷阱?

布尔陷阱 当一个布尔型变量在表达某种意思存在歧义的时候,我们称之为布尔陷阱。通常最常见的布尔陷阱示例是一个接收布尔参数的函数。

我们以下面的例子为例,解释什么是布尔陷阱

代码语言:javascript
复制
// What does `false` stand for?
results.reload(false);

// What does `true` stand for?
const user = new User(true);

reload 函数在接收了一个布尔参数时,在参数为false情况下我们一般认为不会重新加载,但是事实并非如此,有可能他表示的不会立即重载(例如:immediate)。

第二个例子表示用户是否是管理员,但是如果不查询文档,我们很难搞清楚,给一个参数fasleuser到底是还是不是管理员。

并非所有的布尔参数都是布尔陷阱

代码语言:javascript
复制
// It should be obvious that `true` makes the element disabled
element.setProperty('disabled', true);
// Could be equivalent to `element.disabled = true;`

在上面例子中我们很清晰的知道元素的disable属性

如何避免布尔参数

既然我们已经知道了什么是布尔参数,那么如何避免它?我们可以采用参数对象的方式进行传递。例如:

代码语言:javascript
复制
// Ok, so reload but not immediately
results.reload({ immediate: false });

// Create a new user without administrator privileges
const user = new User({ isAdministrator: false });

总结

函数的布尔参数如果使用不当,会导致代码可读性和可维护性大大降低,建议我们再编码过程中尽量避免布尔参数

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-08-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python全栈运维 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 布尔陷阱以及如何避免布尔陷阱
    • 并非所有的布尔参数都是布尔陷阱
      • 如何避免布尔参数
        • 总结
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档