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 相关文章推荐
jQuery技巧大放送 学习jquery的朋友可以看下
Oct 14 Javascript
js word表格动态添加代码
Jun 07 Javascript
事件绑定之小测试  onclick && addEventListener
Jul 31 Javascript
自己做的模拟模态对话框实现代码
May 23 Javascript
浅谈Javascript线程及定时机制
Jul 02 Javascript
jQuery Validate插件实现表单强大的验证功能
Dec 18 Javascript
vue实现简单表格组件实例详解
Apr 16 Javascript
ionic+AngularJs实现获取验证码倒计时按钮
Apr 22 Javascript
vue使用中的内存泄漏【推荐】
Jul 10 Javascript
Angular单元测试之事件触发的实现
Jan 20 Javascript
js实现双人五子棋小游戏
May 28 Javascript
jQuery实现移动端下拉展现新的内容回弹动画
Jun 24 jQuery
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
snoopy 强大的PHP采集类使用实例代码
2010/12/09 PHP
php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
2010/12/19 PHP
用 Javascript 验证表单(form)中多选框(checkbox)值
2009/09/08 Javascript
JQuery获取当前屏幕的高度宽度的实现代码
2011/07/12 Javascript
javascript 获取图片尺寸及放大图片
2013/09/04 Javascript
使用js写的一个简易的投票
2013/11/27 Javascript
JavaScript+CSS控制打印格式示例介绍
2014/01/07 Javascript
关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器
2014/02/11 Javascript
深入分析原生JavaScript事件
2014/12/29 Javascript
JavaScript入门系列之知识点总结
2016/03/24 Javascript
React.js入门实例教程之创建hello world 的5种方式
2016/05/11 Javascript
一次$.getJSON不执行的简单记录
2016/07/19 Javascript
js读取json文件片段中的数据实例
2017/03/09 Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
2017/03/10 Javascript
vue 关闭浏览器窗口的时候,清空localStorage的数据示例
2019/11/06 Javascript
通过实例解析js可枚举属性与不可枚举属性
2020/12/02 Javascript
[01:23]2019完美世界全国高校联赛(春季赛)合肥全国总决赛
2019/06/10 DOTA
Python BeautifulSoup中文乱码问题的2种解决方法
2014/04/22 Python
python实现simhash算法实例
2014/04/25 Python
python数据封装json格式数据
2018/03/04 Python
Pycharm设置界面全黑的方法
2018/05/23 Python
浅谈Django的缓存机制
2018/08/23 Python
python常用数据重复项处理方法
2019/11/22 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
2020/01/20 Python
Django项目uwsgi+Nginx保姆级部署教程实现
2020/04/19 Python
python+appium+yaml移动端自动化测试框架实现详解
2020/11/24 Python
Notino罗马尼亚网站:购买香水和化妆品
2019/07/20 全球购物
美国木工工具和用品商店:Woodcraft
2019/10/30 全球购物
Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别?
2012/06/05 面试题
会计自我鉴定
2014/02/04 职场文书
英语教育专业毕业生求职信
2014/08/28 职场文书
《自己的花是让别人看的》教学反思
2016/02/19 职场文书
李清照的诗词赏析(20首)
2019/08/22 职场文书
详解MySQL主从复制及读写分离
2021/05/07 MySQL
 Redis 串行生成顺序编码的方法实现
2022/04/03 Redis
WinServer2012搭建DNS服务器的方法步骤
2022/06/10 Servers