盘点粗心的if

85 阅读1分钟

1、if判断引用数据类型

if()判断时自动执行 Boolean() 方法,一般用来判断计算结果的布尔值,或者判断强制转化成布尔值后的函数返回值等。

由此需要注意,

if( null )为false

if( undefined )为false, 判断其他数据类型为true,

if( 0 )为false, 判断其他数字则为true

if( false )为false,判断“false”则为true

判断引用数据类型时,数组和对象具有引用地址。需要判断其他方式。

if ( array.length == 0)
​
if ( Object.keys(object).length === 0)

2、if判断时候使用的“==” 和 “ === ”

“==” 判断为值相等。 “ === ”强制需要数据类型相等。

if ( 1 == "1" )
// true
if ( 1 === "1" )
// false

同理 "!=" 和 "!==" 的区别

推荐使用强制等于的情况,避免出错。

3、?和??和?.的区别

?": 条件(三元)运算符,也称为问号运算符。创建一个简单的条件表达式

condition ? expression1 : expression2;

"??": 这是空值合并运算符,也称为nullish coalescing运算符。它用于检查一个值是否为null或undefined,并在该值为null或undefined时提供一个备用值。语法如下:

value1 ?? value2;
value1 || value2;

如果value1是null或undefined,则返回value2;否则,返回value1。

不同于 "||" ,操作符并不仅限于处理空值,而会判断value1是否为真。

"?.": 这是可选链运算符,也称为可选属性访问运算符。它用于在访问对象的属性或调用对象的方法时,避免在中间的属性或方法不存在时引发错误。

object?.property; 
object?.method();

如果object存在并且具有property属性或method方法,则返回对应的值;否则,返回undefined。