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控件autocomplete 0.11演示及下载 1月5日已更新
Jan 09 Javascript
js 禁用浏览器的后退功能的简单方法
Dec 10 Javascript
javascript函数命名的三种方式及区别介绍
Mar 22 Javascript
jQuery实现的跨容器无缝拖动效果代码
Jun 21 Javascript
json对象转为字符串,当做参数传递时加密解密的实现方法
Jun 29 Javascript
HTML页面定时跳转方法解析(2种任选)
Dec 22 Javascript
ES6概念 Symbol.keyFor()方法
Dec 25 Javascript
Node.js的Koa实现JWT用户认证方法
May 05 Javascript
vue使用ElementUI时导航栏默认展开功能的实现
Jul 04 Javascript
layer.close()关闭进度条和Iframe窗的方法
Aug 17 Javascript
给localStorage设置一个过期时间的方法分享
Nov 06 Javascript
Angular8 Http拦截器简单使用教程
Aug 20 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中的Class的几点个人看法
2006/10/09 PHP
不重新编译PHP为php增加openssl模块的方法
2011/06/14 PHP
PHP实现获取域名的方法小结
2014/11/05 PHP
从性能方面考虑PHP下载远程文件的3种方法
2015/12/29 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
2018/04/21 PHP
javascript 动态数据下的锚点错位问题解决方法
2008/12/24 Javascript
javascript 同时在IE和FireFox获取KeyCode的代码
2010/02/07 Javascript
jQuery前台数据获取实现代码
2011/03/16 Javascript
基于jquery实现控制经纬度显示地图与卫星
2013/05/20 Javascript
JS清除IE浏览器缓存的方法
2013/07/26 Javascript
jQuery之Deferred对象详解
2014/09/04 Javascript
JavaScript的类型、值和变量小结
2015/07/09 Javascript
javascript实现简单的分页特效
2015/08/12 Javascript
jQuery实现的个性化返回底部与返回顶部特效代码
2015/10/30 Javascript
Angularjs修改密码的实例代码
2017/05/26 Javascript
AngularJS通过ng-Img-Crop实现头像截取的示例
2017/08/17 Javascript
Angular4学习教程之HTML属性绑定的方法
2018/01/04 Javascript
基于rollup的组件库打包体积优化小结
2018/06/18 Javascript
Vue Element 分组+多选+可搜索Select选择器实现示例
2018/07/23 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
2018/07/31 Javascript
JS实现纵向轮播图(初级版)
2020/01/18 Javascript
[04:49]期待西雅图之战 2016国际邀请赛中国区预选赛WINGS战队赛后采访
2016/06/29 DOTA
python根据日期返回星期几的方法
2015/07/06 Python
用python制作游戏外挂
2018/01/04 Python
Python实现改变与矩形橡胶的线条的颜色代码示例
2018/01/05 Python
python 列表推导式使用详解
2019/08/29 Python
python实现计算图形面积
2021/02/22 Python
HTML5 Web Workers之网站也能多线程的实现
2013/04/24 HTML / CSS
美国隐形眼镜网:Major Lens
2018/02/09 全球购物
办公室文员自荐书
2014/02/03 职场文书
网络技术专业推荐信
2014/02/20 职场文书
食堂采购员岗位职责
2014/03/17 职场文书
体操比赛口号
2014/06/10 职场文书
一篇文章弄懂MySQL查询语句的执行过程
2021/05/07 MySQL
开发者首先否认《遗弃》被取消的传言
2022/04/11 其他游戏
Python保存并浏览用户的历史记录
2022/04/29 Python