布尔陷阱以及如何防止布尔陷阱

什么是布尔陷阱?

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

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

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

reload 函数在接管了一个布尔参数时,在参数为false状况下咱们个别认为不会从新加载,然而事实并非如此,有可能他示意的不会立刻重载(例如:immediate)。

第二个例子示意用户是否是管理员,然而如果不查问文档,咱们很难搞分明,给一个参数fasleuser到底是还是不是管理员。

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

// It should be obvious that `true` makes the element disabledelement.setProperty('disabled', true);// Could be equivalent to `element.disabled = true;`

在下面例子中咱们很清晰的晓得元素的disable属性

如何防止布尔参数

既然咱们曾经晓得了什么是布尔参数,那么如何防止它?咱们能够采纳参数对象的形式进行传递。
例如:

// Ok, so reload but not immediatelyresults.reload({ immediate: false });// Create a new user without administrator privilegesconst user = new User({ isAdministrator: false });

总结

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

本文由mdnice多平台公布