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 相关文章推荐
javascript计时器事件使用详解
Jan 07 Javascript
javascript快速排序算法详解
Sep 17 Javascript
js实现带圆角的两级导航菜单效果代码
Aug 24 Javascript
BootStrap中Tab页签切换实例代码
May 30 Javascript
jQuery对checkbox 复选框的全选全不选反选的操作
Aug 09 Javascript
Angularjs实现带查找筛选功能的select下拉框示例代码
Oct 04 Javascript
深入理解bootstrap框架之入门准备
Oct 09 Javascript
Bootstrap Table快速完美搭建后台管理系统
Sep 20 Javascript
vue.js中created方法作用
Mar 30 Javascript
在vue项目中使用codemirror插件实现代码编辑器功能
Aug 27 Javascript
详谈vue中router-link和传统a链接的区别
Jul 22 Javascript
JavaScript实现鼠标移入随机变换颜色
Nov 24 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 Redis内存占用
2017/03/23 PHP
PHP实现的贪婪算法实例
2017/10/17 PHP
详解PHP 7.4 中数组延展操作符语法知识点
2019/07/19 PHP
php设计模式之职责链模式定义与用法经典示例
2019/09/19 PHP
JavaScript中的apply()方法和call()方法使用介绍
2012/07/25 Javascript
javascript 兼容所有浏览器的DOM扩展功能
2012/08/01 Javascript
创建、调用JavaScript对象的方法集锦
2014/12/24 Javascript
ionic实现滑动的三种方式
2016/08/27 Javascript
vue双向绑定简要分析
2017/03/23 Javascript
原生js jquery ajax请求以及jsonp的调用方法
2017/08/04 jQuery
JavaScript基础心法 深浅拷贝(浅拷贝和深拷贝)
2018/03/05 Javascript
JQuery元素快速查找与操作
2018/04/22 jQuery
微信小程序之swiper轮播图中的图片自适应高度的方法
2018/04/23 Javascript
Vue.directive使用注意(小结)
2018/08/31 Javascript
jquery.pagination.js分页使用教程
2018/10/23 jQuery
layui之table checkbox初始化时选中对应选项的方法
2019/09/02 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
Python Web框架Flask信号机制(signals)介绍
2015/01/01 Python
用Python编写简单的定时器的方法
2015/05/02 Python
解决seaborn在pycharm中绘图不出图的问题
2018/05/24 Python
python tkinter实现屏保程序
2019/07/30 Python
python框架Django实战商城项目之工程搭建过程图文详解
2020/03/09 Python
python 写一个性能测试工具(一)
2020/10/24 Python
pycharm 实现复制一行的快捷键
2021/01/15 Python
爱尔兰电脑、家电和家具购物网站:Buy It Direct
2019/07/09 全球购物
工地宣传标语
2014/06/18 职场文书
集体生日活动方案
2014/08/18 职场文书
党的群众路线教育实践活动个人整改方案
2014/09/21 职场文书
群众路线领导班子四风对照检查材料
2014/09/27 职场文书
违纪检讨书
2015/01/27 职场文书
学生会干部任命书
2015/09/21 职场文书
新手入门Mysql--概念
2021/06/18 MySQL
使用Nginx搭载rtmp直播服务器的方法
2021/10/16 Servers
JavaScript实现两个数组的交集
2022/03/25 Javascript
星际争霸:毕姥爷vs解冻03
2022/04/01 星际争霸
阿里云服务器部署RabbitMQ集群的详细教程
2022/06/01 Servers