老样子直接上代码
const t1 = '';
const t2 = null;
const t1_test1 = t1 || '此时t1为假会走这个或者条件';
const t1_test2 = t1 ?? '此时t1本质上是有值的所以会直接输出空字符串';
const t2_test1 = t2 || '此时t2为假会走这个或者条件';
const t2_test2 = t2 ?? '此时t2本质上就是没值的所以也会走这个条件';
console.log(t1_test1);
console.log(t1_test2);
console.log(t2_test1);
console.log(t2_test2);
详解
1. // || 本质上是条件判断也就是说当 t1 or t2 等于false的时候同样会执行 || 后的条件(包括隐式转换后的条件)
2. // ?? 只是单纯的看当前值是否有值如果有就会直接利用不进行判断(也就是说即使 t1 or t2 等于false也会使用) 只有当值真的不存在时才会使用后代条件(真的不存在例如:null、undefined...)