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 事件绑定函数代码
Apr 28 Javascript
Jquery调用webService远程访问出错的解决方法
May 21 Javascript
表单的焦点顺序tabindex和对应enter键提交
Jan 04 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
Aug 16 Javascript
JS 学习总结之正则表达式的懒惰性和贪婪性
Jul 03 Javascript
javascript实现QQ空间相册展示源码
Dec 12 Javascript
JS计算两个时间相差分钟数的方法示例
Jan 10 Javascript
解决Vue 通过下表修改数组,页面不渲染的问题
Mar 08 Javascript
layDate日期控件使用方法详解
Nov 15 Javascript
简述vue-cli中chainWebpack的使用方法
Jul 30 Javascript
只有 20 行的 JavaScript 模板引擎实例详解
May 11 Javascript
jQuery插件实现图片轮播效果
Oct 19 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
Yii中表单用法实例详解
2016/01/05 PHP
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
2020/03/18 PHP
JavaScript 学习笔记(四)
2009/12/31 Javascript
ExtJS下 Ext.Direct加载和提交过程排错小结
2013/04/02 Javascript
js中浮点型运算BUG的解决方法说明
2014/01/06 Javascript
javascript通过获取html标签属性class实现多选项卡的方法
2015/07/27 Javascript
AngularJS 如何在控制台进行错误调试
2016/06/07 Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
2016/06/20 Javascript
微信小程序入门教程
2016/11/18 Javascript
Angularjs的$http异步删除数据详解及实例
2017/07/27 Javascript
[js高手之路]从原型链开始图解继承到组合继承的产生详解
2017/08/28 Javascript
Vue.js项目模板搭建图文教程
2017/09/20 Javascript
JavaScript判断日期时间差的实例代码
2018/03/01 Javascript
JS实现对json对象排序并删除id相同项功能示例
2018/04/18 Javascript
微信小程序wx.request拦截器使用详解
2019/07/09 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
2020/08/04 Javascript
[03:18]DOTA2亚洲邀请赛小组赛第一日 RECAP赛事回顾
2015/01/30 DOTA
Python中内建函数的简单用法说明
2016/05/05 Python
实例讲解Python脚本成为Windows中运行的exe文件
2019/01/24 Python
Python3 实现串口两进程同时读写
2019/06/12 Python
关于python3中setup.py小概念解析
2019/08/22 Python
Python实现桌面翻译工具【新手必学】
2020/02/12 Python
使用python自动追踪你的快递(物流推送邮箱)
2020/03/17 Python
Python实现Appium端口检测与释放的实现
2020/12/31 Python
使用phonegap进行提示操作的具体方法
2017/03/30 HTML / CSS
公司行政经理岗位职责
2013/12/24 职场文书
致200米运动员广播稿
2014/02/06 职场文书
个性与发展自我评价
2014/02/11 职场文书
有兼职工作经历的简历自我评价
2014/03/07 职场文书
物业公司的岗位任命书
2014/06/06 职场文书
幼儿园教师师德师风演讲稿:爱我所爱 无悔青春
2014/09/10 职场文书
护士先进个人总结
2015/02/13 职场文书
2020年基层司法所建设情况调研报告
2019/11/30 职场文书
WordPress多语言翻译插件 - WPML使用教程
2021/04/01 PHP
解决hive中导入text文件遇到的坑
2021/04/07 Python
《巫师》是美食游戏?CDPR10月将推出《巫师》官方食谱
2022/04/03 其他游戏