JS中的“!!”

var o={flag:true};  var test=!!o.flag;//等效于var test=o.flag||false;  alert(test);

由于对null与undefined用!操作符时都会产生true的结果,
所以用两个感叹号的作用就在于,
如果明确设置了o中flag的值(非 null/undefined/0""/等值),自然test就会取跟o.flag一样的值;
如果没有设置,test就会默认为false,而不是 null或undefined。
时间: 2024-12-21 15:16:03

JS中的“!!”的相关文章

js中与变量相关的一些知识

来补充一点上一篇文章 js变量初探 中漏掉的知识点: 1.变量的定义与声明中常见问题: (1)用var关键字声明的变量,未经初始化时,保存的是一个特殊的值-undefined,变量初始化仅仅是给变量赋一个值 (2)当使用var关键字声明了一个变量时,创建的这个变量是不可配置的,也就是说这个变量无法通过delete运算符删除:在严格模式下,使用delete运算符删除var关键字声明的变量会导致SyntaxError. (3)省略var关键字会导致定义一个全局变量,但是不推荐这种做法.在严格模式下,

在js中加html注释的作用?

问题描述 在js中加html注释的作用? <!-- function getStringLength(str){ var num=0; if (str!=""){ var i; var s; for(i=0;i<str.length;i++){ s=str.charCodeAt(i); if(s-128<0) num=num+1; else num=num+2; } } return num; } //--> 解决方案 就是说这些代码本来应该删除,但是这个程序员

js中的函数function

    js的function对象在调用过程中具有一个arguments的属性,它是由脚本解释器创建的(这也是arguments创建的唯一方式).arguments属性可以看作是一个Array对象,它有length属性,可以通过序号访问每一个参数,而且通过argument的callee属性可以获取对正在执行的Function对象的引用.如下: function factorial(n){ if(n<=n){ return 1; }else{ return n*arguments.callee(n

javascript-js中的java代码如何访问js中方法的参数??见图

问题描述 js中的java代码如何访问js中方法的参数??见图 如何让1处的值传到2处这里?? 解决方案 需要用ajax提交你的index到服务器,服务器端无法直接获取客户端js的变量值 <script src=""http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.1.min.js""></script><script type=""text/javascript&qu

js中回调函数问题,程序进不了回调函数

问题描述 js中回调函数问题,程序进不了回调函数 我这段代码的回调函数哪出错,请各位大神指教 function req(){ createRequest(); var zipcode=document.getElementById(""zipcode"").value; var url=""b.jsp?zipcode="" + escape(zipcode); request.open(""POST&quo

一眼毁三观:JS中令人发指的valueOf方法

剧透:文章末尾有两个小问题待解答,路过的兄弟请百忙之中抽空看下--- 彭老湿近期月报里提到了valueOf方法,兴致来了翻了下ECMA5里关于valueOf方法的介绍,如下: 15.2.4.4 Object.prototype.valueOf ( ) When the valueOf method is called, the following steps are taken: 1. Let O be the result of calling ToObject passing the thi

javascript-怎么在js中读取properties配置文件中的数据?

问题描述 怎么在js中读取properties配置文件中的数据? 在JS中我需要把一些数据放在配置文件中管理,那么我在js中应该怎么读取这些数据信息呢?有没有好点的解决方案? 解决方案 这有篇文章里面将了怎么解析:http://www.ibm.com/developerworks/cn/web/1305_hezj_jqueryi18n/

js中同步与异步处理的方法和区别总结

 若要在使用ajax请求后处理发送请求返回的结果,最好使用同步请求,下面为大家介绍下js中同步与异步处理的方法和区别,感兴趣的朋友不要错过 在使用异步请求时,有时需要将异步请求的结果返回给另一个js函数,此种情况下会出现未等异步请求返回请求结果,该发送请求所在js函数已经执行完后续操作,即已经执行return ,这样会导致return的结果为空字符.    总结:若要在使用ajax请求后处理发送请求返回的结果,最好使用同步请求.    例如:以下例子会出现返回结果不正确的情况,因为ajax异步请

神奇-js中分页,第一次点下一页时没问题,总共13页,第二次点击下一页的时候就出错

问题描述 js中分页,第一次点下一页时没问题,总共13页,第二次点击下一页的时候就出错 function(param currentpage totalPage){ alert(""currentpage:""+currentpage);//2 alert(""totalPage:""+totalPage);//13 alert( currentpage > totalPage ) alert( currentpage

js中的前绑定和后绑定详解

这篇文章详细介绍了js中的前绑定和后绑定,有需要的朋友可以参考一下    其主要意思就是看我有没有用过前绑定,即Dom树中的某些元素在还没有创建出来时,就指定该类型的元素一出生就应该拥有的某些事件.在实际开发过程中经常会涉及到前绑定和后绑定.顾名思义,前绑定--还未出生即绑定了某些事件,后绑定--出生后才会绑定的某些事件. 下面,通过一个简单的例子进行阐述,以供大家参考,并对各个方法进行比较: 页面元素: 复制代码 代码如下: <div id="main"> <a h