if(xx) a==b 运算符常见误区

If(xx)

 1 // 题目1:如下代码输出什么?
 2 if ("hello") {
 3     console.log("hello")
 4 } //true
 5
 6 // 题目2:如下代码输出什么?
 7 if ("") {
 8     console.log(‘empty‘)
 9 }//false
10
11 // 题目3:如下代码输出什么?
12 if (" ") {
13     console.log(‘blank‘)
14 }//true
15 // 题目4:如下代码输出什么?
16 if ([0]) {
17     console.log(‘array‘)
18 }//true
19
20 if(‘0.00‘){
21   console.log(‘0.00‘)
22 }//true
23
24 if(+0.00){
25    console.log(‘haha‘)
26 }//false +转换为数字
27
28 if([]){
29    console.log(‘haha‘)
30 }//turn

括号里的表达式,会强制转换为布尔类型。 不要写上面误导的写法,if(a === 0){ }

类型 结果
Undefined false
Null false
Boolean 直接判断
Number +0, ?0, 或者 NaN 为 false, 其他为 true
String 空字符串为 false,其他都为 true
Object true

==的判断

 1 "" == 0  //题目1
 2 " " == 0  //题目2
 3 "" == true  //题目3
 4 "" == false  //题目4
 5 " " == true  //题目5!
 6 " " == true  //题目6
 7 !" " == false  //题目7
 8 "hello" == true  //题目8
 9 "hello" == false //题目9
10 "0" == true  //题目10
11 "0" == false  //题目11
12 "00" == false  //题目12
13 "0.00" == false  //题目13
14 undefined == null  //题目14
15 true == true  //题目15
16 [] == true  //题目16
17 var obj = {
18   a: 0,
19   valueOf: function(){return 1}
20 }
21 obj == "[object Object]"  //题目17
22 obj == 1  //题目18
23 obj == true  //题目19

解密

x y 结果
null undefined true
Number String x == toNumber(y)
Boolean (any) toNumber(x) == y
Object String or Number toPrimitive(x) == y
otherwise otherwise false

toNumber

type Result
Undefined NaN
Null 0
Boolean ture -> 1, false -> 0
String “abc” -> NaN, “123” -> 123

toPrimitive

对于 Object 类型,先尝试调用 .valueOf 方法获取结果。 如果没定义,再尝试调用 .toString方法获取结果

原文地址:https://www.cnblogs.com/zhangzheng022/p/8232713.html

时间: 2024-10-20 10:57:57

if(xx) a==b 运算符常见误区的相关文章

*p++与(*p)++与*(p++)------自增运算符常见误区

自增运算符(++) 自增\自减运算符分为前缀形(++a)和后缀形(a++),这里重点分析自增 大部分人对前缀和后缀的理解一般是,前缀形式是先++再使用(先变后用),后缀形式是先使用再++(先用后变)   (tips:自增运算符只能作用于变量,而不能作用于变量或表达式,例:(i+j)++就是非法的) 先来说一下一般情况 1 main() 2 { 3 int a = 3; 4 int b; 5 6 b = a++; 7 printf("%d", b); 8 } 上面这种应该大部分人都会,属

NODE.JS学习的常见误区及四大名著

NODE.JS学习的常见误区及四大名著 前段时间由于不满于社区里很多人对于NODE.JS的种种误解而写了一篇文章名为: NODE.JS之我见:http://www.cnblogs.com/pugang/p/4374681.html 收到了很多兄弟的热情回复和激烈讨论,在此深表感谢,有的朋友觉得我写的比较粗犷,没有给出具体的性能分析和对比,在此我想说的是其实好多东西的性能分析,根本就不用我写到博客上,其一是如果我写了,很多人同样会觉得不客观,不中立,其二是网上很多中立的机构,随便搜索一下,对比太多

HTML5标签使用的常见误区----转载

最近组内进行HTML5标签的学习,方法呢就是大家每人挑选几个标签,自己先去学习,然后给大家作讲解.这个过程大家还是挺有收获的.但是现在HTML5还处在草案阶段,有些新的标签元素的解释也是经常有变化,甚至标签加入/移出也很频繁(比如 hgroup),同时现有的大的门户网站在使用HTML5方面也没有很好的范例可以参考,让大家的学习过程更摸索.下面是我在 html5doctor 上面看到的一篇文章,在目前大家懵懂的阶段,可能看看大师的讲解会更容易理解.由于才疏学浅,很多不明白的地方可能只是做了字面上的

【Android】深入掌握自定义LayoutManager(一) 系列开篇 常见误区、问题、注意事项,常用API。

转载请标明出处: http://blog.csdn.net/zxt0601/article/details/52948009 本文出自:[张旭童的博客] 本系列文章相关代码传送门: 自定义LayoutManager实现的流式布局 欢迎star,pr,issue. 本系列文章目录: 深入掌握自定义LayoutManager(一) 系列开篇 常见误区.问题.注意事项,常用API. 深入掌握自定义LayoutManager(二) 实现流式布局(creating) 概述 这篇文章是深入掌握自定义Layo

MySQL锁的常见误区

今天给大家分享的内容是MySQL锁的常见误区.MySQL的锁包括两种lock和latch.latch的面向对象是线程,主要用来管理数据库临界资源的并发访问,锁的时间非常短,也不会产生死锁.不需要人工干预,所以这里我们不再做介绍.而lock则是面向事务的,操作的对象是数据库的表.页及行,用来管理并发线程对共享资源的访问,会产生死锁.因为我们现在数据库使用的是innodb存储引擎.所以今天主要给大家介绍的是innodb的lock的常见几个误区. 在介绍之前,我们需要再了解lock的几个概念: 行锁:

技术干货 | Docker容器中需要避免的十种常见误区

Docker容器的三大优势: 第一:具备恒定特性–操作系统.库版本.配置.文件夹以及应用程序全部涵盖在内.大家可以将质量检查流程中使用的测试镜像原封不动地引入生产环境当中. 第二:具备轻量化特性–容器的体积非常小巧.相较于动辄成百上千MB的操作系统,它只需要配备主进程所必需的内存外加数十MB额外容量. 第三:速度惊人–大家可以享受等同于单一进程的容器启动速度.相较于长达数分钟的传统负载启动时长,现在我们完全能够在几秒钟内启动一套新容器. 不过很多用户仍然在以对待典型虚拟机的方式审视容器,在这种情

0709 C语言常见误区----------函数指针问题

1.函数指针的定义 对于函数 void test(int a, int b){ // } 其函数指针类型是void (* ) (int , int), 注意这里第一个括号不能少, 定义一个函数指针,void (* pfunc)(int , int) ,其中pfunc就是函数指针类型, 它指向的函数类型必须是返回值为void, 参数为两个int的. 2.函数指针赋值 函数指针可以直接用函数名赋值,pfunc = test, 或者 pfunc = &test: 3.调用函数指针 pfunc(3, 4

0709 C语言常见误区----------二维数组做参数

总结: 1.二维数组名是指向一位数组的指针,本例中,其类型为 int (*)[4],在传递的过程中丢失了第一维的信息,因此需要将第一维的信息传递给调用函数. 关于二维数组名代表的类型,可通过下面的例子看出. 1 /************************************************************************* 2 > File Name: test_2arr.c 3 > Author:Monica 4 > Mail:[email prot

3.5星|《小学问》:年轻人思维与婚恋常见误区解析

“ 这项研究结果被管理学者形容为“懒蚂蚁效应”.意思是说,在一个机构中,一定要有一批这样的“懒蚂蚁”,不被日常事务性工作绑定,而将大部分时间用于“侦察”和“研究”,发现机构的薄弱之处,同时保持对外界环境的敏锐感知.说白了就是不遵常规.敢想敢干.#870” 小学问 作者: 黄执中 / 周玄毅 / 邱晨 / 马薇薇 / 胡渐彪 出版社: 北京联合出版公司 副标题: 解决你的7种人生焦虑 出版年: 2018-1 定价: 52 装帧: 平装 ISBN: 9787559613288 01 — 全书汇集各种