您的位置:首页 > Web前端 > JavaScript

!!(2个叹号)在js代码中出现怎么理解

2016-02-03 10:56 691 查看
首先看代码,如下:-------------------A-----------------

function xxx() {
        var result;
        if ($("#xx").val() != "" || $("#xxx").val() != "") {
            result = true;
        } else {
            result = false;
        }
        return result;
    }


首先,此段代码乍一看,可以这么优化,就是直接return,如下:---------------------B------------------

function xxx() {
        var result;
        result = ($("#xx").val() != "" || $("#xxx").val() != "");
        return result;
    }
或者这样:----------------------C---------------------

function xxx() {
        return ($("#xx").val() != "" || $("#xxx").val() != "");
    }


但是这还不是编辑器提示的结果,编辑器提示这么改:-----------------------D-----------------

function xxx() {
        return !!($("#xx").val() != "" || $("#xxx").val() != "");
    }


前面有2个叹号,怎么理解。

!!一般用来将后面的表达式转换为布尔型的数据(boolean)

因为javascript是弱类型的语言(变量没有固定的数据类型)所以有时需要强制转换为相应的类型,

类似的如:

a=parseInt("1234")

a="1234"+0 //转换为数字

b=1234+"" //转换为字符串

c=someObject.toString() //将对象转换为字符串

其中第1种、第4种为显式转换,2、3为隐式转换

布尔型的转换,javascript约定和c类似,

规则为

·false、undefinded、null、0、"" 为 false

·true、1、"somestring"、[Object] 为 true

经这么一解释,是不是就是说,酱紫就可以保证后面的肯定是boolean型啦

一般能都能到c的程度就可以啦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: