JS判断真假

关系操作符

  • 如果两个操作数都是字符串,执行数值比较
  • 如果都是字符串,则比较两个字符串对应的编码值
  • 如果一个是数值,另一个操作数会强制转化为数值类型,然后比较
  • 如果一个操作数是对象,调用该对象的valueOf()/toString()方法

相等操作符:

  • 一个操作数是布尔类型,将其转化为数值—false–>0 true–>1
  • 一个操作数为字符串,另一个操作数为数值,将字符串转化为数值
  • 如果一个操作数是对象,另一个不是,调用该对象的valueOf()/toString()方法
  • null和undefined是相等的
  • 有一个操作数为NaN,相等操作符返回false,不等返回true 两个操作数都是NaN,返回false
  • 两个操作数是对象,则比较是否是同一对象,是则返回true,不是false
//一个操作数是布尔类型,将其转化为数值---false-->0 true-->1
console.log("hello" == true);//1=="hello" f
console.log("hello" == false);//0=="hello" f
console.log("0" == true);//1=="0" f
console.log("0" == false);//0=="0" t
console.log("00" == false);//0=="0" t
console.log("0.00" == false);//0=="0" t
//一个操作数是布尔类型,将其转化为数值---false-->0 true-->1
//1==''    false
console.log(true == '');

console.log("" == true);//1=="" f
console.log("" == false);//0=="" t

console.log(" " == true);//" "==1 f
console.log(" " == false);//" "==0 t
// //" "==>0==>false
// //""==>0==>false
//
console.log(!" ")//f
//
 console.log(!" " == true);//false==true f
 console.log(!" " == false);//false==false t

一个操作数是对象

//如果一个操作数是对象,另一个不是,调用该对象的valueOf()/toString()方法
var obj = {
    a: 0,
    valueOf: function(){return 1}
}

console.log(obj.toString());//[object Object]
console.log(obj == "[object Object]");//true

console.log(obj.valueOf());//1
console.log(obj == 1);
console.log(obj == true);


**false null undefined 0 ’ ’ **

false :

  • console.log(false == 0);//t
  • console.log(false == ‘’);//t
    null:
  • console.log(null == undefined);//t
    undefined:
  • console.log(null == undefined);//t
    0
  • console.log(0 == ‘’);
console.log(false == null);
console.log(false == undefined);
console.log(false == 0);//t
console.log(false == '');//t
console.log(false == NaN);

console.log(null == undefined);//t
console.log(null == 0);
console.log(null == '');
console.log(null == NaN);

console.log(undefined == 0);
console.log(undefined == '');
console.log(undefined == NaN);//t

console.log(0 == '');
console.log(0 == NaN);

false除了和自身比较为true,和0,’’,比较为true
null只和undefined比较时为true,undefined只有和null比较为true
0与false, ‘’, []比较为true
''字符串和0,false比较为true,

数值类,非0均为真

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值