JS中Boolean类型的数值转换与==和===区别

一、JS中数据类型

    简单数据类型:Undefined、Null、Boolean、Number、String

    复杂数据类型:Object

Undefined类型只有一个值:undefined,Null类型只有一个值:null

可以用 typeof 来返回某数据类型的字符串:

    "undefined"——该值未定义

    "boolean"——该值为布尔值

    "string"——该值为字符串

    "number"——该值为数值

    "object"——该值为对象或null

    "function"——该值为函数

console.log(typeof "123")//"string"
console.log(typeof 123)//"number"
console.log(typeof true)//"boolean"
console.log(typeof null)//"object"
console.log(typeof undefined)//"undefined"
console.log(typeof (typeof undefined))//"string"

二、各类型值与Boolean类型的转化

数据类型转换为true转换为false
Booleantruefalse
Number任何非零数字值(包含无穷大Infinity)0和NaN
String任何非空字符串""
Undefined不存在undefined
Object任何对象null

 

想提醒大家一句的是0的判断结果为false,我在使用初期有时会因为判断条件里有0而没得到想要的结果,比如:

const isAllowd = 0;
if( isAllowd ){
    console.log("true");
} else {
    console.log("false");
}
//false

三、相等操作符

1、相等与不相等:== ,!=

这两个操作符在比较相等性前会先转换操作数的数据类型:

1、如果一个操作数是布尔值,在比较相等性之前先将其转换为数值——false转换为0,true转换为1;

if( true == 1){
    console.log("true");
} else {
    console.log("false");
}//true
if( true == 2){
    console.log("true");
} else {
    console.log("false");
}//false

2、如果一个操作数是字符串,另一个操作数是数值,在比较相等性之前先将字符串转换为数值;

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

3、如果一个操作数是对象,另一个操作数不是,则调用对象的valueOf()方法,用得到的基本类型值按前面的规则进行比较;

valueOf():返回对象的字符串、数值或布尔值表示

== ,!=操作符在比较时要遵循下列规则:

1、null和undefined是相等的;

2、要比较相等性之前,不能将null和undefined转换成其他任何值;

3、如果一个操作数是NaN,则相等操作符返回false,而不相等操作符返回true,即使两个操作数都是NaN,相等操作数也返回false,因为按照规则,NaN不等于NaN;

4、如果两个操作数都是对象,则比较它们是不是同一个对象,如果两个操作数都指向同一个对象,则相等操作符返回true,否则返回false;
 

一些特殊情况:

表达式
null == undefinedtrue
“NaN” == NaNfalse
5 == NaNfalse
NaN  ==  NaNfalse
NaN != NaNtrue
false == 0true
true == 1true
true == 2false
undefined == 0false
null == 0false
“5” == 5true

2、全等与不全等:=== , !==

全等全不等操作符比较比较严格,需要两个操作数类型和值都相等才行,开发时一般都用此操作符。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值