Javascript 它是多余的吗!!值为true或false时的布尔结构?
关于!!(双重否定)已经(,),这些问题回答了我对此的困惑。但我想知道这个问题更具体。。。这是我的箱子 我在代码库上设置了eslint,最近我修复了所有可修复的错误 其中一个修复包括双感叹号否定 修复前后的一个示例:Javascript 它是多余的吗!!值为true或false时的布尔结构?,javascript,boolean,negation,Javascript,Boolean,Negation,关于!!(双重否定)已经(,),这些问题回答了我对此的困惑。但我想知道这个问题更具体。。。这是我的箱子 我在代码库上设置了eslint,最近我修复了所有可修复的错误 其中一个修复包括双感叹号否定 修复前后的一个示例: //在eslint修复之前: 从“/config/clientUrl”导入{IS_DEV}”; const sandboxMode=IS_DEV?真:假; //在eslint修复之后: 从“/config/clientUrl”导入{IS_DEV}”; const sandboxM
//在eslint修复之前:
从“/config/clientUrl”导入{IS_DEV}”;
const sandboxMode=IS_DEV?真:假;
//在eslint修复之后:
从“/config/clientUrl”导入{IS_DEV}”;
const sandboxMode=!!是(u DEV),;
修复在检测到它是冗余时是正确的,因为在这里is_DEV已经是一个布尔值。所以我知道这个值不是真就是假
那么,像这样使用双重否定有什么区别吗
const sandboxMode=!!是(u DEV),;
简单地使用而不使用它:
const sandboxMode=IS\u DEV;
在这种情况下,这不会是另一种冗余吗?我的回答有几点:
- 如果您确信IS_DEV将是
或true
(一个布尔值)而不是其他任何东西,那么您可以使用以下命令:false
const sandboxMode=IS_DEV
- 如果可能无法设置开发(因此
),则应使用未定义
,它将强制const sandboxMode=!!是_DEV
为布尔值沙盒模式
- 但这也取决于沙盒模式的使用方式李>
true
或false
值。如果您知道是布尔值,那么它是多余的。当然,你的原创作品也是如此。虽然Eslint不知道类型,但是对于未知类型的值,您的“固定”版本比原始三元版本更为惯用。