一、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 |
|---|---|---|
| Boolean | true | false |
| 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 == undefined | true |
| “NaN” == NaN | false |
| 5 == NaN | false |
| NaN == NaN | false |
| NaN != NaN | true |
| false == 0 | true |
| true == 1 | true |
| true == 2 | false |
| undefined == 0 | false |
| null == 0 | false |
| “5” == 5 | true |
2、全等与不全等:=== , !==
全等全不等操作符比较比较严格,需要两个操作数类型和值都相等才行,开发时一般都用此操作符。
本文深入解析JavaScript中的数据类型,包括简单数据类型与复杂数据类型的区别,以及数据类型与Boolean类型的转换规则。同时,详细介绍了JS中的相等操作符(==, !=)和全等操作符(===, !==)的使用,帮助开发者更好地理解类型转换和比较的细节。

5465

被折叠的 条评论
为什么被折叠?



