探讨js中的双感叹号判断

 更新时间:2013年11月11日 11:38:10   作者:  
js中的双感叹号判断。在网上查了些资料,他相当于三元运算符,返回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

相关文章

  • js获取UserControl内容为拼html时提供方便

    js获取UserControl内容为拼html时提供方便

    js获取UserControl内容时无法测试通过,原来是继承了Page 然后使用VerifyRenderingInServerForm验证
    2014-11-11
  • 微信小程序实现带刻度尺滑块功能

    微信小程序实现带刻度尺滑块功能

    这篇文章主要介绍了微信小程序实现带刻度尺滑块功能,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-03-03
  • 详解JavaScript如何创建一个非自动播放的GIF网络组件

    详解JavaScript如何创建一个非自动播放的GIF网络组件

    这篇文章主要为大家介绍了如何利用JavaScript创建一个允许您的用户决定是否要播放gif的Web组件,文中的实现步骤讲解详细,需要的可以参考一下
    2022-02-02
  • 用IE重起计算机或者关机的示例代码

    用IE重起计算机或者关机的示例代码

    本篇文章主要是对用IE重起计算机或者关机的实现代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-03-03
  • javascript 浏览器类型和版本号检测代码(兼容多浏览器)

    javascript 浏览器类型和版本号检测代码(兼容多浏览器)

    果对javascript了解不是特别深入的话,很容易就会写出不兼容的代码(就像我),这时候就得判断浏览器了。比如事件侦听、一些鼠标和键盘事件、Range等,一些都会不一样.下面列出几种常用的检测浏览器方法,以飨观众!
    2010-04-04
  • JS如何监听div的resize事件详解

    JS如何监听div的resize事件详解

    这篇文章主要给大家介绍了关于JS如何监听div的resize事件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 经典面试题之JavaScript for循环(var let)

    经典面试题之JavaScript for循环(var let)

    如果你也在面试找工作,那么也一定遇到过这道for循环打印结果的题,下面我们来探讨下,对经典面试题之js for循环相关知识感兴趣的朋友跟随小编一起看看吧
    2023-10-10
  • JS实现简单的拖拽效果

    JS实现简单的拖拽效果

    拖拽是前端实现中比较常用的一种效果, HTML5 提供了较为强大的拖拽 API 支持,今天我们来实现一个简单的拖拽效果,需要的朋友可以参考下
    2023-09-09
  • JS中类或对象的定义说明

    JS中类或对象的定义说明

    本篇文章主要是对JS中类或对象的定义进行了说明介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-03-03
  • JavaScript代码性能优化总结篇

    JavaScript代码性能优化总结篇

    本文给大家总结了有关js代码性能优化的相关知识,非常不错,感兴趣的朋友一起学习吧
    2016-05-05

最新评论