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多物体 任意值 链式 缓冲运动
Aug 10 Javascript
在JS中如何调用JSP中的变量
Jan 22 Javascript
jsPDF导出pdf示例
May 02 Javascript
jQuery实现的图片分组切换焦点图插件
Jan 06 Javascript
JavaScript 实现完美兼容多浏览器的复制功能代码
Apr 28 Javascript
vue.js表格分页示例
Oct 18 Javascript
Canvas 绘制粒子动画背景
Feb 15 Javascript
Vue封装Swiper实现图片轮播效果
Feb 06 Javascript
JavaScript ES6中的简写语法总结与使用技巧
Dec 30 Javascript
在vue中使用G2图表的示例代码
Mar 19 Javascript
详解element-ui设置下拉选择切换必填和非必填
Jun 17 Javascript
Element-ui 自带的两种远程搜索(模糊查询)用法讲解
Jan 29 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
带密匙的php加密解密示例分享
2014/01/29 PHP
thinkPHP下ueditor的使用方法详解
2015/12/26 PHP
功能强大的php分页函数
2016/07/20 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
javascript实现 在光标处插入指定内容
2007/05/25 Javascript
document.forms[].submit()使用介绍
2014/02/19 Javascript
深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
2014/08/04 Javascript
nodejs教程之入门
2014/11/21 NodeJs
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
jquery.cookie实现的客户端购物车操作实例
2015/12/24 Javascript
jQuery滚动新闻实现代码
2016/06/26 Javascript
基于AngularJS前端云组件最佳实践
2016/10/20 Javascript
如何编写jquery插件
2017/03/29 jQuery
谈谈VUE种methods watch和compute的区别和联系
2017/08/01 Javascript
JavaScript面向对象精要(下部)
2017/09/12 Javascript
详解vue-cli 构建项目 vue-cli请求后台接口 vue-cli使用axios、sass、swiper
2018/05/28 Javascript
JavaScript函数、闭包、原型、面向对象学习笔记
2018/09/06 Javascript
解决LayUI加上form.render()下拉框和单选以及复选框不出来的问题
2019/09/27 Javascript
vue+echarts实现动态折线图的方法与注意
2020/09/01 Javascript
python学习笔记:字典的使用示例详解
2014/06/13 Python
在Django中使用Sitemap的方法讲解
2015/07/22 Python
python实现给微信公众号发送消息的方法
2017/06/30 Python
python中print()函数的“,”与java中System.out.print()函数中的“+”功能详解
2017/11/24 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
2019/08/24 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
2020/05/13 Python
Python脚本实现监听服务器的思路代码详解
2020/05/28 Python
纯CSS3实现Material Design效果
2017/03/09 HTML / CSS
HTML5拖放API实现拖放排序的实例代码
2017/05/11 HTML / CSS
PHP引擎php.ini参数优化深入讲解
2021/03/24 PHP
纺织工程专业个人求职信范文
2014/01/27 职场文书
先进班级集体事迹材料
2014/01/30 职场文书
奥巴马的演讲稿
2014/05/15 职场文书
信息工作经验交流材料
2014/05/28 职场文书
党的群众路线批评与自我批评发言稿
2014/10/16 职场文书
2015年加油站工作总结
2015/05/13 职场文书
Python 循环读取数据内存不足的解决方案
2021/05/25 Python