javascript中2个感叹号的用法实例详解


Posted in Javascript onSeptember 04, 2014

在javascript代码中经常会见到!!的情况,本文即以实例形式较为深入的分析javascript中2个感叹号的用法。分享给大家供大家参考之用。具体分析如下:

javascript中的!!是逻辑"非非",即是在逻辑“非”的基础上再"非"一次。通过!或!!可以将很多类型转换成bool类型,再做其它判断。

一、应用场景:判断一个对象是否存在

假设有这样一个json对象:

{ color: "#E3E3E3", "font-weight": "bold" }

需要判断是否存在,用!!再好不过。

如果仅仅打印对象,无法判断是否存在:

var temp = { color: "#A60000", "font-weight": "bold" };
alert(temp);

结果:[object: Object]

如果对json对象实施!或!!,就可以判断该json对象是否存在:

var temp = { color: "#A60000", "font-weight": "bold" };
alert(!temp);

结果:false

var temp = { color: "#A60000", "font-weight": "bold" };
alert(!!temp);

结果:true

二、通过!或!!把各种类型转换成bool类型的惯例

1.对null的"非"返回true

var temp = null;
alert(temp);

结果:null

var temp = null;
alert(!temp);

结果:true

var temp = null;
alert(!!temp);

结果:false

2.对undefined的"非"返回true

var temp;
alert(temp);

结果:undefined

var temp;
alert(!temp);

结果:true

var temp;
alert(!!temp);

结果:false

3.对空字符串的"非"返回true

var temp="";
alert(temp);

结果:空

var temp="";
alert(!temp);

结果:true

var temp="";
alert(!!temp);

结果:false

4.对非零整型的"非"返回false

var temp=1;
alert(temp);

结果:1

var temp=1;
alert(!temp);

结果:false

var temp=1;
alert(!!temp);

结果:true

5.对0的"非"返回true

var temp = 0;
alert(temp);

结果:0

var temp = 0;
alert(!temp);

结果:true

var temp = 0;
alert(!!temp);

结果:false

6.对字符串的"非"返回false

var temp="ab";
alert(temp);

结果:ab

var temp="ab";
alert(!temp);

结果:false

var temp="ab";
alert(!!temp);

结果:true

7.对数组的"非"返回false

var temp=[1,2];
alert(temp);

结果:1,2

var temp=[1,2];
alert(!temp);

结果:false

var temp=[1,2];
alert(!!temp);

结果:true

相信本文所述对大家的javascript程序设计的学习有一定的借鉴价值。

Javascript 相关文章推荐
js判断字符长度及中英文数字等
Mar 19 Javascript
js仿土豆网带缩略图的焦点图片切换效果实现方法
Feb 23 Javascript
Javascript中With语句用法实例
May 14 Javascript
JS使用parseInt解析数字实现求和的方法
Aug 05 Javascript
jQuery时间插件jquery.clock.js用法实例(5个示例)
Jan 14 Javascript
JavaScript 正则表达式中global模式的特性
Feb 25 Javascript
AngularJS打开页面隐藏显示表达式用法示例
Dec 25 Javascript
bootstrap 表单验证使用方法
Jan 11 Javascript
jquery——九宫格大转盘抽奖实例
Jan 16 Javascript
Node.js利用debug模块打印出调试日志的方法
Apr 25 Javascript
原生js实现随机点名功能
Nov 05 Javascript
vue中后端做Excel导出功能返回数据流前端的处理操作
Sep 08 Javascript
IE下通过a实现location.href 获取referer的值
Sep 04 #Javascript
通过location.replace禁止浏览器后退防止重复提交
Sep 04 #Javascript
下拉框select的绑定示例
Sep 04 #Javascript
javascript使用正则获取url上的某个参数
Sep 04 #Javascript
JavaScript中匿名、命名函数的性能测试
Sep 04 #Javascript
容易造成JavaScript内存泄露几个方面
Sep 04 #Javascript
require.js深入了解 require.js特性介绍
Sep 04 #Javascript
You might like
为什么夜间收到的中波电台比白天多
2021/03/01 无线电
php使用Smarty的相关注意事项及访问变量的几种方式
2011/12/08 PHP
基于PHP制作验证码
2016/10/12 PHP
统计PHP目录中的文件数方法
2019/03/05 PHP
PHP判断当前使用的是什么浏览器(推荐)
2019/10/27 PHP
飞鱼(shqlsl) javascript作品集
2006/12/16 Javascript
JavaScript入门学习书籍推荐
2008/06/12 Javascript
javascipt基础内容--需要注意的细节
2013/04/10 Javascript
jQuery中scrollLeft()方法用法实例
2015/01/16 Javascript
JavaScript String 对象常用方法详解
2016/05/13 Javascript
浅谈Nodejs中的作用域问题
2016/12/26 NodeJs
详解Vue 事件驱动和依赖追踪
2017/04/22 Javascript
webpack4.0 入门实践教程
2018/10/08 Javascript
Vue cli3 库模式搭建组件库并发布到 npm的流程
2018/10/12 Javascript
vue基于element-ui的三级CheckBox复选框功能的实现代码
2018/10/15 Javascript
js判断鼠标移入移出方向的方法
2020/06/24 Javascript
Python pickle模块用法实例分析
2015/05/27 Python
Python实现合并同一个文件夹下所有txt文件的方法示例
2018/04/26 Python
pygame游戏之旅 游戏中添加显示文字
2018/11/20 Python
python中对数据进行各种排序的方法
2019/07/02 Python
Python函数中参数是传递值还是引用详解
2019/07/02 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
2019/09/03 Python
了解一下python内建模块collections
2020/09/07 Python
移动端解决悬浮层(悬浮header、footer)会遮挡住内容的3种方法
2015/03/27 HTML / CSS
美国快时尚彩妆品牌:Winky Lux(透明花瓣润唇膏)
2018/11/06 全球购物
工商治理实习生的自我评价
2014/01/15 职场文书
计算机专业毕业生自我鉴定
2014/01/16 职场文书
商场客服专员岗位职责
2014/06/13 职场文书
2014办公室副主任四风对照检查材料思想汇报
2014/09/20 职场文书
乡镇党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
领导班子对照检查剖析材料
2014/10/13 职场文书
大学四年个人总结
2015/03/03 职场文书
工资证明范本
2015/06/12 职场文书
学生会宣传部竞选稿
2015/11/21 职场文书
五年级数学教学反思
2016/02/16 职场文书
HTML静态页面获取url参数和UserAgent的实现
2022/08/05 HTML / CSS