美文网首页
if(xx)和 a==b

if(xx)和 a==b

作者: June_9143 | 来源:发表于2018-12-12 19:09 被阅读0次

一. if(xx)的判断

JavaScript 遇到预期为布尔值的地方(比如if语句的条件部分),就会将非布尔值的参数自动转换为布尔值。系统内部会自动调用Boolean函数。

1.当if括号里面的表达式为Boolean时,直接判断

if (true){ console.log("true"); //true }
if (false){ console.log("true"); //false }

2当if括号里面的表达式为Number时,分两种情况,当number为+0,-0,NaN的时候,为false;其他为true。

if(0){ console.log("true"); //false }
if(NaN){ console.log("true"); //false }
if(1){ console.log("true"); //true }

3.当if括号里面的表达式为String时,空字符串为false,其他为true;
if(""){ console.log("true"); //false }
if("abc"){ console.log("true"); //true }

4.当if括号里面的表达式为Undefined时,为false;
if(Undefined){ console.log("true"); //false }

5.当if括号里面的表达式为null时,为false;
if(null){ console.log("true"); //false }

toBoolean

类型 结果
undefined false
null false
Boolean 直接判断
string ""(空字符串)为false,其他为true
Object true
Number +0,-0,Nan为false,其他为true

二. a==b的判断

==是比较两个值是否相等,相同类型直接比较,不同类型的话,看情况转换。

1.String==Number --->toNumber(String)==Number

"" = 0 ; //true,因为“”转换为0
" " = 0 ; //true
"hello" == 1 //false ,因为"hello"转换为NaN
"hello" == 0 //false,同理

2.Boolean==(any) --->toNumber(Boolean)==(any)

1==true; //true,因为true转换为1
0==false;//true ,因为false转换为0
"0" == true //false
"0" == false //true
"00" == false //true
"0.00" == false //true

3.Object==String/Number---->toPrimitive(Object)
对于 Object 类型,先尝试调用 .valueOf 方法获取结果。 如果没定义,再尝试调用 .toString方法获取结果

{} == true // false
[] == true //false
var obj = { a: 0, valueOf: function(){return 1} } obj == "[object Object]" //false obj == 1 //true obj == true //true

4.null==undefined,//true

==知识点
如果两个值类型相同,则执行严格相等的运算
如果两个值的类型不同
如果一个是null,一个是undefined,那么相等
如果一个是数字,一个是字符串,先将字符串转为数字,然后比较
如果一个值是true/false则将其转为1/0比较
如果一个值是对象,一个是数字或字符串,则尝试使用valueOf和toString转换后比较
其它就不相等了

toNumber

类型 结果
undefined NaN
null 0
Boolean ture->1,false->0
string (""-->0, " "-->0 )空字符串与空白字符串转换数值0,abc"->NaN,"123"->123

相关文章

  • if(xx)和 a==b

    一.对于if()括号里的表达式会被强制转换为布尔类型。 判断原理如下: undefined --> false n...

  • if(xx)和 a==b

    一. if(xx)的判断 JavaScript 遇到预期为布尔值的地方(比如if语句的条件部分),就会将非布尔值的...

  • if(xx)和a==b

    参考自https://developer.mozilla.org/zh-CN/docs/Web/JavaScrip...

  • if(xx)和a==b

    if条件判断 if(条件){条件符合 执行语句}else {条件不符合 执行语句}if()中的内容会被转换为布...

  • mysql常用语句

    表A和表B的交集 SELECT * FROM A INNER JOIN B ON A.xx = B.xx

  • 关于if(xx)与a==b的判断

    关于if(xx)与a==b的判断 简单介绍下if(xx)和a==b的相关判断 if(xx)的判断 1.if(num...

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

    1、if判断 (1)从面试题说说if的数据类型,js如何转换判断 *(2)判断原理: 对于if()里括号的表达式(...

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

    一、 if 的判断 解密 对于括号里的表达式,会被强制转换为布尔类型 原理 答案 string ==> true ...

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

    if(xx) 对于括号内的表达式会被强制转换为布尔类型 转换原理 a==b 在js判断两个变量值是否相等,可以使用...

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

    1.if条件判断语句   JavaScript中流程控制语句是十分重要的的,主要包括:if条件判断语句,for循环...

网友评论

      本文标题:if(xx)和 a==b

      本文链接:https://www.haomeiwen.com/subject/favphqtx.html