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。