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 相关文章推荐
encode脚本和normal脚本混用的问题与解决方法
Mar 08 Javascript
js中的前绑定和后绑定详解
Aug 01 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
Jan 18 Javascript
js 自带的 map() 方法全面了解
Aug 16 Javascript
canvas绘图不清晰的解决方案
Feb 28 Javascript
Vue2 使用 Echarts 创建图表实例代码
May 18 Javascript
vue里面父组件修改子组件样式的方法
Feb 03 Javascript
微信小程序使用map组件实现解析经纬度功能示例
Jan 22 Javascript
ES7之Async/await的使用详解
Mar 28 Javascript
jQuery+ajax实现批量删除功能完整示例
Jun 06 jQuery
vue计算属性无法监听到数组内部变化的解决方案
Nov 06 Javascript
vue缓存之keep-alive的理解和应用详解
Nov 02 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的FTP学习(二)
2006/10/09 PHP
一家之言的经验之谈php+mysql扎实个人基本功
2008/03/27 PHP
Yii框架数据模型的验证规则rules()被执行的方法
2016/12/02 PHP
php输出形式实例整理
2020/05/05 PHP
jquery imgareaselect 使用利用js与程序结合实现图片剪切
2009/07/30 Javascript
JQueryEasyUI Layout布局框架的使用
2013/04/08 Javascript
jQuery学习笔记(4)--Jquery中获取table中某列值的具体思路
2013/04/10 Javascript
原生js和jQuery写的网页选项卡特效对比
2015/04/27 Javascript
js字符串操作方法实例分析
2015/05/06 Javascript
jQuery+HTML5美女瀑布流布局实现方法
2015/09/21 Javascript
分享12个非常实用的JavaScript小技巧
2016/05/11 Javascript
全面解析JavaScript中“&&”和“||”操作符(总结篇)
2016/07/18 Javascript
详解vuelidate 对于vueJs2.0的验证解决方案
2017/03/09 Javascript
jQuery+ajax实现修改密码验证功能实例详解
2017/07/06 jQuery
js实现鼠标移动到图片产生遮罩效果
2017/10/21 Javascript
解决layui 复选框等内置控件不显示的问题
2018/08/14 Javascript
vue项目中跳转到外部链接的实例讲解
2018/09/20 Javascript
JS隐藏号码中间4位代码实例
2019/04/09 Javascript
vue使用微信扫一扫功能的实现代码
2020/04/11 Javascript
Python(Tornado)模拟登录小米抢手机
2013/11/12 Python
django模型中的字段和model名显示为中文小技巧分享
2014/11/18 Python
python使用matplotlib绘制柱状图教程
2017/02/08 Python
python中partial()基础用法说明
2018/12/30 Python
pandas数据集的端到端处理
2019/02/18 Python
在python tkinter中Canvas实现进度条显示的方法
2019/06/14 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2019/07/03 Python
10行Python代码计算汽车数量的实现方法
2019/10/23 Python
解决python打开https出现certificate verify failed的问题
2020/09/03 Python
索尼巴西商店:Sony巴西
2019/06/21 全球购物
银行个人求职自荐信范文
2013/12/16 职场文书
计算机网络专业自荐信
2014/07/04 职场文书
领导班子个人查摆问题对照检查材料
2014/10/02 职场文书
机关作风建设自查报告
2014/10/22 职场文书
统计员岗位职责范本
2015/04/14 职场文书
学校工会工作总结2015
2015/05/19 职场文书
关于springboot 配置date字段返回时间戳的问题
2021/07/25 Java/Android