双竖杠||,将前面的值自动转为布尔值并且为false时,就取后面,否则取前面,如undefined、null、false、空字符串和数值0
例:console.log(0||33)打印出33
而双问号则为:前面的值为null、undefined,则取后面的值,否则都取前面的值。
例:console.log(0??33)打印出0
由此可以发现,双问号??更加适合在不知道变量是否定义时,或者是否赋值时的场景来使用。
双竖杠||,将前面的值自动转为布尔值并且为false时,就取后面,否则取前面,如undefined、null、false、空字符串和数值0
例:console.log(0||33)打印出33
而双问号则为:前面的值为null、undefined,则取后面的值,否则都取前面的值。
例:console.log(0??33)打印出0
由此可以发现,双问号??更加适合在不知道变量是否定义时,或者是否赋值时的场景来使用。