码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • JS系列1-布尔陷阱以及如何避免


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

    什么是布尔陷阱?

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

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

    // What does `false` stand for?
    results.reload(false);

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

    • 1

    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;`
    • 1

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

    如何避免布尔参数

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

    // Ok, so reload but not immediately
    results.reload({ immediate: false });

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

    • 1

    总结

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

    本文由 mdnice 多平台发布

  • 相关阅读:
    C++——特殊类设计
    JS -正则表达式
    redisTemplate中multiGet方法会返回null对象
    视频批量剪辑技巧:AI智剪,智能技术让视频剪辑更简单
    【华为OD机试真题 python】字符串匹配 【2022 Q4 | 200分】
    Selenium是什么,带你了解自动化测试的神奇之处
    CC1310F128RSMR Sub-1GHz射频微控制器 - MCU 433MHz 868MHz 915MHz ULP Wireless MCU
    OpenAI首届开发者大会多项更新汇总
    Sumo中Traci.trafficlight详解(上)
    不可忽视的国外服务器地址IP选择指南
  • 原文地址:https://blog.csdn.net/wuqing942274053/article/details/126315660
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号