!!obj与JavaScript中!!的作用
首先要知道JavaScript的变量类型在一些操作符下会隐式转换的。比如 " ! " 运算符
alert(!true); // 输出falsealert(!100); // 输出falsealert(!'Web前端开发'); // 输出 false
更多详细的隐式类型转换请参考这篇博文: JavaScript隐式类型转换
一个 " ! " 将变量转为一个boolean类型的值,那么两个连续的 " ! "号叠加就会把变量转为它理应代表的布尔值。
以下为"!!"的规则
number类型: 不为0 就,!!num 等于true;
string类型: 不为"" (空字符串),!!str 等于true;
!!null 等于false
!!undefined 等于false
!!{} 等于 true //注意:对象就算为空都会被转为true
!!function(){} 等于 true //注意:这样写function 并不会执行function,所以就算function里面写任何东西都会返回true
可以看到function并没有被执行,并且返回true
举例:
console.log(!!0); //false
console.log(!!123); //true console.log(!!"some"); //true
console.log(!!""); //falseconsole.log(!!undefined) //falseconsole.log(!!null) //false//function testInIf(value){if(value){return true;} else {return false;}
}//以下全部打印trueconsole.log(!!{});
console.log(!!{k: 'v'});
console.log(testInIf({}))
console.log(testInIf({k: 'v'}))console.log(!![]);
console.log(!![0,1]);
console.log(testInIf([]))
console.log(testInIf([0,1]))console.log(!!function(){});
console.log(testInIf(!!function(){}))console.log(!!function(){console.log("被执行");return false;
});
//这个函数并没有被执行
//请注意, 双"!"号和单"!"号都不会执行函数,只是将函数转为了函数表达式,想要执行还需要在后面加 ()
!!obj与JavaScript中!!的作用相关推荐
- javascript中??的作用
判断null 和undefined handleOneClick() {let cc = undefined;let aa = null;let b = 0let ff = cc ?? '出错了'co ...
- JavaScript中的定时器
js定时器 通过使用 JavaScript,我们有能力作到在一个设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行.我们称之为计时事件. ** 定时器在javascript中的作用** 1.制 ...
- JavaScript中的load事件的作用_史上最全的web前端面试题汇总及答案JavaScript之二(二)...
作者:樱桃小丸子儿 链接:https://www.jianshu.com/p/abadcc84e2a4 JavaScript JS的基本数据类型 number,string,boolean,objec ...
- html $符号的作用,javascript 中$符号是代表什么意思!
$符号在php中是表示变量的特征字符, 在js中它也有很多作用, 一般我们用来命名一个函数名称,获取id的 1. 首先可以用来表示变量, 比如变量 var s='asdsd'或var $s='asda ...
- javascript中的console.log有什么作用?
javascript中的console.log有什么作用? 主要是方便你调式javascript用的.你可以看到你在页面中输出的内容. 相比alert他的优点是: 他能看到结构话的东西,如果是aler ...
- javascript 中 caller 与 callee 的作用以及用法
这两个关键字在平时编码中几乎难以用到,但它们既然存在于javascript语言体系中,那么还是有必要了解下. caller 是 javascript 函数类型的一个属性,它引用调用当前函数的函数 fu ...
- html中this的作用,JavaScript 中的 this :工作原理和陷阱
在 JavaScript 中,this 是一个相对难懂的特殊变量.因为它随处可用,而不仅仅是面向对象的编程中.本文将解释 this 是如何工作的,以及它可能导致问题的地方,并在文章的给出最佳实践. 为 ...
- JavaScript中defer的作用
JavaScript中defer的作用 Javascript中defer的作用是文档加载完毕了再执行脚本,这样会避免找不到对象的问题. defer是脚本程序强大功能中的一个"无名英雄&quo ...
- JavaScript 中加号的作用
JavaScript 中加号的作用 1.求和运算 两边都是数值类型时进行求和运算,如果数值+布尔值会直接把布尔类型转换成 1 or 0 来进行运算 var num = 1+2; var num1=1+ ...
- Javascript中callee和caller的作用
Javascript中callee和caller的作用 caller 是返回⼀个对函数的引⽤,该函数调⽤了当前函数: callee 是返回正在被执⾏的 function 函数,也就是所指定的 func ...
最新文章
- 股市投资大师的股市投资名言
- python学习之自习语法(20180626_update)
- flume高可用-balance-配置文件编写
- Laravel框架中的路由和控制器
- 【python】错误、异常和文件---复习笔记
- Win11有黑色边框怎么办 Win11有黑色边框的解决方法
- 360Alluxio联合Meetup——分布式存储与Alluxio应用实践
- #研发中间件介绍#异步消息可靠推送Notify
- 奈飞win10安装包_使用Windows10系统在奈飞/网飞上观看4K的必要条件
- ppapi获取html,在HTML中给PPAPI插件配置参数
- 信号与系统速成和课后作业
- png图片格式转换器_如何将图像转换为PNG格式
- 微信点餐小程序怎么做?微信小程序点餐系统制作
- Elastic 极客时间 阮一鸣 学习笔记_入门
- 北上或者南下之被摆了一道
- CMS介绍和过程分析
- Android WebView加载完成的监听
- uipath 执行 insert 语句报 “语法错误“ 的问题解决
- 全网通PA:SKY68018-11 Gigadata低功耗PA
- 莫道君行早更有早来人(二)几点网络技术的想法
热门文章
- 使用 Visual Studio 创建 .NET 类库
- matlab光学原理仿真应用衍射,基于Matlab的光学衍射实验仿真
- 记录一下SlickEdit回退命令
- 用纯fme批量生成界址点成果表(模板格式全部自拟)
- 如何使用STM32F1/F4驱动CS5463
- [Luogu P4630] [BZOJ 5463] [APIO2018] Duathlon 铁人两项
- python装饰器两层和三层区别,Python装饰器和装饰器图案有什么区别?
- 设置单行文本溢出省略导致不能自适应宽度,white-space: nowrap
- 数据库的备份与恢复技术
- 如何将pdf文件压缩变小?