美文网首页
JS系列1-布尔陷阱以及如何避免

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

作者: 星星在线 | 来源:发表于2022-08-13 10:10 被阅读0次

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

    什么是布尔陷阱?

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

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

    // 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 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 });
    
    

    总结

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

    本文由mdnice多平台发布

    相关文章

      网友评论

          本文标题:JS系列1-布尔陷阱以及如何避免

          本文链接:https://www.haomeiwen.com/subject/cpkqgrtx.html