js双感叹号判断

简介:   今天看qunit源代码,发现一段很奇怪的代码,虽然能领会他的意思,但是不明白双感叹号起到的作用。 function id( name ) { return !!( typeof document !== "undefined" && document && document.getElementById ) && document.getElementById( name ); }   然后去网上查了些资料,他相当于三元运算符,返回boolean值。

  今天看qunit源代码,发现一段很奇怪的代码,虽然能领会他的意思,但是不明白双感叹号起到的作用。

function id( name ) {
    return !!( typeof document !== "undefined" && document && document.getElementById ) &&
        document.getElementById( name );
}

  然后去网上查了些资料,他相当于三元运算符,返回boolean值。

var ret = !!document.getElementById

等价于:

var ret = document.getElementById ? true : false;

  

  当值是非空字符串和非零数字返回true,当值是空字符串、0或者null返回false。

var a = " "; alert(!!a);   //true
var a = "s"; alert(!!a);   //true
var a = true; alert(!!a);   //true
var a = 1; alert(!!a);   //true
var a = -1; alert(!!a);   //true
var a = -2; alert(!!a);   //true
 
var a = 0; alert(!!a);   //false
var a = ""; alert(!!a);   //false
var a = false; alert(!!a);   //false
var a = null; alert(!!a);   //false
目录
相关文章
|
JavaScript
盘点JS判断空对象的几大方法
在盘点JS判空方法之前我们先来了解下面的三个方法。
220 2
盘点JS判断空对象的几大方法
|
JavaScript 前端开发
JavaScript判断各种资源是否加载完成的方法汇总,资源预加载问题
JavaScript判断各种资源是否加载完成的方法汇总,资源预加载问题
1079 0
|
算法 JavaScript 前端开发
判断链表中是否又环使用JavaScript解决算法问题
判断链表中是否又环使用JavaScript解决算法问题
191 0
判断链表中是否又环使用JavaScript解决算法问题
|
JavaScript
js条件逻辑判断-德摩根定律
在实际应用中经常会遇到js的大量逻辑判断,各种复杂的逻辑判断
158 0
js条件逻辑判断-德摩根定律
|
前端开发 JavaScript
【前端】【JavaScript】通过成绩判断等级
【前端】【JavaScript】通过成绩判断等级
182 0
【前端】【JavaScript】通过成绩判断等级
|
存储 JavaScript 前端开发
手撕前端面试题【javascript~文件扩展名、分隔符、单向绑定、判断版本、深浅拷贝、内存泄露等】
手撕前端面试题【javascript~文件扩展名、分隔符、单向绑定、判断版本、深浅拷贝、内存泄露等】
264 0
手撕前端面试题【javascript~文件扩展名、分隔符、单向绑定、判断版本、深浅拷贝、内存泄露等】
|
JavaScript 前端开发
【基础篇】学好JavaScript的循环、比较和判断,80%的业务场景都能hold住
【基础篇】学好JavaScript的循环、比较和判断,80%的业务场景都能hold住
110 0
【基础篇】学好JavaScript的循环、比较和判断,80%的业务场景都能hold住
|
前端开发 JavaScript
【前端工程师手册】说清楚JavaScript中的相等性判断
【前端工程师手册】说清楚JavaScript中的相等性判断
123 0
【前端工程师手册】说清楚JavaScript中的相等性判断
|
JavaScript
JS进阶-数据类型的判断方式以及转换方式的汇总
本文内容: 介绍了几种常用的数据类型判断方式,并且手写了一个通用的判断方法 强制类型转换和隐式类型转换的常用方法和规则,以及常见的面试题
134 0

热门文章

最新文章