一 ??与 ||相同点
根据前面的值来判断最终返回前面的值还是后面的值。
值1 ?? 值2
值1 || 值2
??与 ||不同点
判断方式不同:
使用 ?? 时,只有当值1为null或undefined时才返回值2;
使用 || 时,值1会转换为布尔值判断,为true返回值1,false 返回值2
值1 ?? 值2
值1 || 值2
二 !和!!
! 对后面值进行取反,
!可将变量转换成boolean类型,null、undefined和空字符串取反都为false,其余都为true。
!!是将表达式强制转化为bool值的运算,运算结果为true或false,不是取非再取非的意思 (but现在不经很少用这个来做非空判断了)