JavaScript布尔三元表达式简写语法咨询:var foo = (expression)? true : false
JavaScript布尔三元表达式的简写方案
当然有啦!你写的var foo = (expression)? true : false其实是个有点冗余的写法——因为这个三元表达式本质上就是把expression的布尔结果显式返回true或false,咱们完全可以用更简洁的方式实现一模一样的效果:
如果
expression本身已经是布尔类型(比如是a > b、username === 'admin'这类比较运算的结果),直接赋值就行:var foo = expression;举个实际例子:原来写
var isAdult = (age >= 18) ? true : false;,直接改成var isAdult = age >= 18;就好,结果完全一致,代码还更清爽。如果
expression可能是其他类型(比如字符串、数字、对象等),你想把它强制转换为严格的布尔值,有两种常用的简写方式:- 双重非运算符
!!:
第一个var foo = !!expression;!会把值转成布尔并取反,第二个!再把结果反转回来,最终得到和原三元表达式完全相同的布尔值。 - 使用
Boolean()构造函数:
这种写法可读性更强,尤其适合刚接触JavaScript的开发者理解。var foo = Boolean(expression);
- 双重非运算符
这些简写都是JavaScript社区公认的最佳实践,既简洁又高效,比冗余的三元写法更受欢迎哦~
内容的提问来源于stack exchange,提问作者VerySeriousSoftwareEndeavours
相关产品推荐
相关产品推荐

