JS 各种类型的数据转为布尔值(Boolean)



            //方式一
            !!value;

            //方式二
            Boolean(value);
        

推荐直接使用 !!

以下数据转为布尔类型,值会是 false


            false
            undefined
            null
            NaN
            0
            "" //空字符串
        

非上述值转为布尔值都会是 true

假值判断:


            //使用 !!value 语法
            !!false;            // false
            !!undefined;        // false
            !!null;             // false
            !!NaN;              // false
            !!0;                // false
            !!"";               // false

            //使用 Boolean(value) 语法
            Boolean(false);     // false
            Boolean(undefined); // false
            Boolean(null);      // false
            Boolean(NaN);       // false
            Boolean(0);         // false
            Boolean('');        // false
        

!! 使用原理

例如下面代码:第一个 !value 强制转为 Boolean 类型, 此时 !value 的值为false, 为了让它的值为 true,所以又放了一个 ! ,因此需要使用两个叹号:!!


            const value = 'string';

            !value; // false

            !!value; // true
        

注意 "false" 的转换


            const value = "false";

            !!value; // true

            Boolean(value); // true
        

这里的 "false" 是被引号包裹的,虽然它描述的是 false ,但它实际是一个字符串,value 最终会被转换为 true

使用 Boolean 构造函数移除数组内的空字符串


            var arr = [ "一个", "", "字符串", "", "数组" ]
            
            arr.filter(Boolean); //[ "一个", "字符串", "数组" ]
        
参考资料 Reference :
2 Ways to Convert Values to Boolean in JavaScript

back home