1)相同点:
?? 和 || 的用法相同,都是前后是值,中间用符号连接,根据前面的值来判断最终是返回前面的值还是后面的值。
- One ?? Two
- One || Two
2)不同点:
判断的方法不同:
- 使用 ?? 时,只有One为 null 或者 undefined 时才会返回 two;
- 使用 || 时,One会先转化为布尔值判断,为true时返回One , false 返回Two
-
// ?? undefined ?? 2 // 2 null ?? 2 // 2 0 ?? 2 // 0 "" ?? 2 // "" true ?? 2 // true false ?? 2 // false // || undefined || 2 // 2 null || 2 // 2 0 || 2 // 2 "" || 2 // 2 true || 2 // true false || 2 // 2