if(xx)和 a==b的判断

if(xx)的判断

if语句是编程语言最常用的语句,语法:

if(condition){
    //true statement
}else {
    //false statement
}

if通过布尔值判断结果,如果表达式为真执行第一个代码块内语句,如果为假执行第二个代码块内语句,其中condition可以是任意表达式,当condition不为布尔值时,会将condition强制转换为布尔值,如:

if(0) {
console.log('0')
}else if(1) {
console.log('1')
}
if(''){
console.log("no")
}else if(" ") {
console.log("empty")
}

输出结果

if(0)为false,if(1)为true,输出结果为1,if("")为false,if(" ")为true,输出结果为empty。

为什么?

Number为+0, −0,或者 NaN 时为 false,其他为 true,所以第一个输出1;
String是空字符串为 false,其他都为 true,所以第二个输出结果为empty;
转换为布尔值后if通过结果的false或true判断是输出还是执行下一个语句。

a==b

一、a和b的数值和类型都相同时

a==b,当a和b的数值和类型都相同时,严格的执行相等的运算。

二、当a和b的数值类型不相同

a==b,当a和b的数值类型不相同时:
1.如果a和b一个是null,一个是undefined时,相等。
2.如果a和b一个是数字,一个是字符串,先将字符串转为数字,然后比较。
3.如果a和b一个值是true,一个值是false则将其转为1和0比较。
4.如果a和b一个值是对象,一个是数字或字符串,则尝试使用valueOf和toString转换后比较。
5.其它情况都不相等。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、if(xx) 如果括号内是布尔类型,直接判断。否则括号里的表达式会被强制转换成布尔类型,转换规则如下:1.un...
    我才是大田田阅读 2,713评论 0 1
  • if(xx) 对于if(xx),是把xx转换成boolean在进行判断各类型转换布尔结果: a==b 对于a==b...
    海山城阅读 3,229评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,672评论 19 139
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,827评论 0 17
  • 1、今天共修,我有个问题一直在和lb讨论,想搞清楚,同修L突然说:别说了,说的都是没用的,没在点上。我当时很不悦,...
    李信兰阅读 3,508评论 0 0