JavaScript中为什么需要!!?
2024-08-30 00:28:53
1. 布尔值为false的值
在JavaScript中,布尔值为 false
的值有如下几个:
undefined
null
false
0
NaN
""
或''
(空字符串)
2. !!的作用
将上述值与 false
作比较。
console.log(undefined==false); // false
console.log(null==false); // false
console.log(false==false); // true
console.log(0==false); // true
console.log(NaN==false); // false
console.log(""==false); // true
console.log(''==false); // true
发现 undefined==false
、null==false
和 NaN==false
的值均为 false
,如果加上 !!
,结果如下:
console.log(!!undefined==false); // true
console.log(!!null==false); // true
console.log(!!false==false); // true
console.log(!!0==false); // true
console.log(!!NaN==false); // true
console.log(!!""==false); // true
console.log(!!''==false); // true
事实上,!!
的作用是将值的类型强制转化为布尔类型。
3. 回顾条件判断语句
3.1 一个例子
var b = 0;
if(b){
console.log('true');
} else {
console.log('false'); // 执行这行代码
}
var b = 0;
if(b&&true){
console.log('true');
} else {
console.log('false'); // 执行这行代码
}
var b = 0;
if(!!b&&true){
console.log('true');
} else {
console.log('false'); // 执行这行代码
}
因此,if
语句的条件表达式会执行隐式类型转换。
3.2 另一个例子
function test(value){
return value && true;
}
console.log(test(0)); // 0
function test(value){
return !!value && true;
}
console.log(test(0)); // false
可以看到,!!
把 value
强制转化为布尔值。
最新文章
- PgwSlideshow-基于Jquery的图片轮播插件
- js清空array数组的方法
- 5.2 Adapter
- event.keycode大全(javascript)
- Android游戏框架之基础之AA碰撞系统
- 玩转Android之手摸手教你DIY一个抢红包神器!
- Python设计模式——模版方法模式
- uedoc 源码解析
- 如何使用chown?
- 西安Uber优步司机奖励政策(2月1日~2月7日)
- 通过RMAN克隆11g数据库(基于active database)
- VM VirtrualBox 安装centos6.5后的网络设置
- 栏目class导航
- 洛谷 [P1426] 通往奥格瑞玛的道路
- ASP.NET MVC5+EF6+EasyUI 后台管理系统-WebApi的用法与调试
- 对象&;内置对象&; 对象构造 &;JSON&;__proto__和prototype
- JAVA分库分表的实现方案
- centos7 安装hadoop 集群遇到的问题
- 《linux下进程的创建,执行,监控和终止》
- Java流机制详解
热门文章
- Mysql基础(二):MySQL之存储引擎
- DirectX11 With Windows SDK--34 位移贴图
- Markdown 教程之编辑器
- 04 . Filebeat简介原理及配置文件和一些案例
- 深入理解 EF Core:使用查询过滤器实现数据软删除
- 微软如何绑定二次验证码_虚拟MFA_两步验证_身份验证?
- 橘子origin游戏平台如何绑定登陆验证/二次验证码?
- Python3的一些基本输入输出
- json:server 本地搭建
- Python编程:从入门到项目实践高清版附PDF百度网盘免费下载|Python入门编程免费领取