JS系列1-布尔陷阱以及如何避免
JS 如何 系列 以及 避免 陷阱 布尔
2023-06-13 09:17:34 时间
布尔陷阱以及如何避免布尔陷阱
什么是布尔陷阱?
布尔陷阱
当一个布尔型变量在表达某种意思存在歧义的时候,我们称之为布尔陷阱
。通常最常见的布尔陷阱示例是一个接收布尔参数的函数。
我们以下面的例子为例,解释什么是布尔陷阱
:
// What does `false` stand for?
results.reload(false);
// What does `true` stand for?
const user = new User(true);
reload
函数在接收了一个布尔参数时,在参数为false
情况下我们一般认为不会重新加载,但是事实并非如此,有可能他表示的不会立即重载(例如:immediate
)。
第二个例子表示用户是否是管理员,但是如果不查询文档,我们很难搞清楚,给一个参数fasle
, user
到底是还是不是管理员。
并非所有的布尔参数都是布尔陷阱
// It should be obvious that `true` makes the element disabled
element.setProperty('disabled', true);
// Could be equivalent to `element.disabled = true;`
在上面例子中我们很清晰的知道元素的disable
属性
如何避免布尔参数
既然我们已经知道了什么是布尔参数,那么如何避免它?我们可以采用参数对象的方式进行传递。例如:
// Ok, so reload but not immediately
results.reload({ immediate: false });
// Create a new user without administrator privileges
const user = new User({ isAdministrator: false });
总结
函数的布尔参数如果使用不当,会导致代码可读性和可维护性大大降低,建议我们再编码过程中尽量避免布尔参数
相关文章
- js面试题及答案2020_JS面试题大全
- 手机如何安装GreasyFork油猴js脚本?
- Js如何防止页面后退(使浏览器后退按钮失效)[通俗易懂]
- 【说站】js try/catch语句如何使用
- js获取当前系统时间
- js中四舍五入的方法_JS取整
- 取两个列表的交集_js两个数组取差集
- 如何实现 JS 运行时的 Inspector 能力
- js 数组去除重复数据-5 个提升你 JS 编码水平的实例
- js如何引用同级元素
- JS如何定义一个类分别用Es5和Es6来实现
- [android] WebView与Js交互详解手机开发
- 用SQL Server和JS实现数据库管理技术(sqlserver.js)
- JS技术连接Oracle数据库实现数据交互(js连接oracle实例)
- 如何实现JS函数的重载
- js变量作用域及可访问性的探讨
- 显示页面的所有链接的js代码
- 教你如何解密js/vbs/vbscript加密的编码异处理小结
- js判断checkbox是否选中的实现代码
- 远离JS灾难css灾难之js私有函数和css选择器作为容器
- js鼠标滑过弹出层的定位IE6bug解决办法
- 如何使用JS获取IE上传文件路径(IE7,8)
- eclipse如何忽略js文件报错(附图)
- js获取url参数代码实例分享(JS操作URL)
- 使用js如何实现全选与全不选
- JS取request值以及自动执行使用示例
- js动态往表格的td中添加图片并注册事件