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下相关操作与插件
Oct 01 Javascript
jQuery javaScript捕获回车事件(示例代码)
Nov 07 Javascript
JS连连看源码完美注释版(推荐)
Dec 09 Javascript
浅析JQuery UI Dialog的样式设置问题
Dec 18 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
Dec 30 Javascript
jquery中子元素和后代元素的区别示例介绍
Apr 02 Javascript
javascript格式化json显示实例分析
Apr 21 Javascript
Angular 组件之间的交互的示例代码
Mar 24 Javascript
AngularJs中$cookies简单用法分析
May 30 Javascript
VUE+node(express)实现前后端分离
Oct 13 Javascript
vuex state中的数组变化监听实例
Nov 06 Javascript
解决vue单页面 回退页面 keeplive 缓存问题
Jul 22 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
星际初学者游戏中永远要做的事
2020/03/04 星际争霸
用header 发送cookie的php代码
2007/03/16 PHP
php中mysql操作buffer用法详解
2015/03/19 PHP
文件上传之SWFUpload插件(代码)
2015/07/30 PHP
Yii框架连接mongodb数据库的代码
2016/07/27 PHP
PHP中include/require/include_once/require_once使用心得
2016/08/28 PHP
jquery ui resizable bug解决方法
2010/10/26 Javascript
JS 如果改变span标签的是否隐藏属性
2011/10/06 Javascript
prototype框架中美元符号$用法分析
2016/01/22 Javascript
限制复选框最多选择项的实现代码
2016/05/30 Javascript
JavaScript中日期函数的相关操作知识
2016/08/03 Javascript
运用js教你轻松制作html音乐播放器
2020/04/17 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
2016/10/28 Javascript
让微信小程序支持ES6中Promise特性的方法详解
2017/06/13 Javascript
vue与bootstrap实现时间选择器的示例代码
2017/08/26 Javascript
Angular4开发解决跨域问题详解
2017/08/28 Javascript
Node.js中Bootstrap-table的两种分页的实现方法
2017/09/18 Javascript
Vue Socket.io源码解读
2018/02/07 Javascript
jQuery实现的简单获取索引功能示例
2018/06/04 jQuery
JavaScript变量提升和严格模式实例分析
2019/01/27 Javascript
[38:23]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第一场
2014/05/24 DOTA
[04:45]DOTA2-DPC中国联赛正赛 iG vs LBZS 赛后选手采访
2021/03/11 DOTA
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
2018/03/15 Python
Windows下pycharm创建Django 项目(虚拟环境)过程解析
2019/09/16 Python
Python爬虫程序架构和运行流程原理解析
2020/03/09 Python
Python+Kepler.gl轻松制作酷炫路径动画的实现示例
2020/06/02 Python
大学生职业生涯规划书的基本内容
2014/01/06 职场文书
新护士岗前培训制度
2014/02/02 职场文书
企业环保标语
2014/06/10 职场文书
高等教育学专业自荐书
2014/06/17 职场文书
高三语文复习计划
2015/01/19 职场文书
简单的辞职信范文(2016最新版)
2015/05/12 职场文书
Python中json.load()和json.loads()有哪些区别
2021/06/07 Python
Python scrapy爬取起点中文网小说榜单
2021/06/13 Python
Python基础 括号()[]{}的详解
2021/11/07 Python
《遗弃》开发商删推文要跑路?官方回应:还在开发
2022/04/03 其他游戏