js 中的几个假值
1. 使用场景
if分支语句 / 短路语句
while循环语句
for里的第二个语句
2. 6个假值 (都属于 原始类型数据的一部分内容,非原始类型即对象都是真值,如:对象、数组、正则、函数 、'0'、'null'、'false'、{}、[])
false
null
undefined
0 (包括+0、-0)
'' (空字符串)
NaN
3. 以上假值之间 == 判断并非一定相等 (故推荐 === 来判断类型+值,即禁止类型转换)
4. 按数据类型划分
Undefined undefined - false
Null null - false
Boolean false \ 0===1 - 根据表达式最终结果 true\false
Number ... - 除了 0、+0、-0、NaN为 false,其他为true
String ... - 除了 ‘’即空字符串为false ,其他为 true
Object ... - true
5. 扩展 : 隐式转换
+
'1'+2 "12" 运算
‘1’+‘2’ ‘12’ 字符串连接
-
2-'3' -1 运算
-'3' -3 一元
alert 对象转string (调用 toString() 方法)
[1].toString() "1"
alert([1]); '1'
js 中的几个假值的更多相关文章
- JS 中的五个假值
1."", undefined, null, 0, NaN 除了这五个假值以外,其他所有值转布尔类型都是true.还有一个特殊的false.
- js中的真值和假值
大多数编程语言中,布尔值true和false仅仅表示true/false.JavaScript中,如'Hello‘这样的字符串值,也可以看做true. 以下是不同数据类型在JavaScript中是如何 ...
- Js中的假值_ES5中定义的ToBoolean方法强制类型转换后值为false
你不知道的Javascript(中)--ToBoolean javascript中的值可以分为以下两类: 1.可以被强制类型转换为false的值 2.其他(被强制类型转换为true的值) 假值---以 ...
- js中||和&&的用法
在js中&&.||不一定都是用来判断一个表达式的逻辑值是true.false,更多的是用来依据真值或者假值执行相应操作! a() && b() :如果执行a()后返回t ...
- 区分js中的null,undefined,"",0和false
console.log(typeof null);//object console.log(typeof undefined);//undefined console.log(typeof " ...
- js中的||、&&与!用法
&&和||在JQuery源代码内尤为使用广泛,由网上找了些例子作为参考,对其用法研究了一下: 1. && function a(){ alert("a&quo ...
- JS中&&和||的理解
运算符可以从三个不同的层次进行理解. 第一层理解 当操作数都是布尔值时,"&&"对两个值执行布尔与(AND)操作. 复制代码代码如下: x==0 && ...
- 细数JS中实用且强大的操作符&运算符
目录 1,前言 2,代码+应用 2.1,短路运算符 || 2.2,短路运算符 && 2.3,零合并操作符 ?? 2.4,可选链操作符 ?. 2.5,位运算符 & 和 | 2.6 ...
- JS 中一些高效的魔法运算符
这两天有同事说我挺久没更新文章了,不过最近一段时间确实有点忙,一直在忙着两个活动中心的改版,没什么时间来更新文章.今天终于抽空可以写一写. JavaScript 现在每年都会发一个新版本,里面也会新增 ...
随机推荐
- JAVA如何调用mysql写的存储过程
存储过程是干什么的,自己百度,百度上讲的比我讲的好.为什么要用存储过程,这样可以提高效率.废话少说,直接上代码: 首先说一下语法:在mysql中写存储过程 DELIMITER $$ CREATE /* ...
- Spring,Struts2,MyBatis,Activiti,Maven,H2,Tomcat集成(四)——Activiti集成
1.添加Activiti Maven依赖: <!-- ==============================activiti=========================== --&g ...
- 并发写Btree原理剖析
OceanBase 0.4的UpdateServer存储引擎使用了一棵可以多线程并发修改的BTree,读写不冲突,由颜然 开发.线上运行稳定. UpdateServer存储引擎采用类leveldb的方 ...
- C++原创应用类库和工具类库
此博文记载着自编C++应用类库和生成器库的源代码的链接地址,并且对库的开发环境.开发过程.缺陷以及改进更新进行说明. 分数类 利用中午的时间,自己在Visual Studio 2013环境下编写了一个 ...
- [转载]ViewState使用小结
ViewState是.Net中提出的状态保存的一种新途径,web程序保存状态的方式有这样几种:1.Application:保存在Application中的数据是全局有效的:Application里面存 ...
- wireshark不支持抓localhost/127.0.0.1的包解决方法
有些时候,测试网络应用时,为了开发方便,我们会在本机同时开启客户端和测试端,对于第三方的库来说,因为不能debug,可能需要通过抓包进行分析,今天用wireshark根据端口抓包的时候,发现怎么都下不 ...
- ubuntu 更改python3为默认版本
ubuntu 自带两个python版本,一个是python2一个是python3 默认版本是python2的,想要更改ubuntu python3 为默认版本, 只需要两行命令: sudo updat ...
- troubleshooting-执行Oozie调度Hive导数脚本抛java.io.IOException: output.properties data exceeds its limit [2048]
执行Oozie调度Hive导数脚本抛java.io.IOException: output.properties data exceeds its limit [2048] 原因分析 shell脚本中 ...
- Python3基础 time.localtime 当前系统的年月日 时分秒
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- 多线程中的信号机制--signwait()函数【转】
本文转载自:http://blog.csdn.net/yusiguyuan/article/details/14237277 在Linux的多线程中使用信号机制,与在进程中使用信号机制有着根本的区别, ...