第55题 JS中 ??|| 的区别

相同点

用法相同,都是前后是值,中间用符号连接。根据前面的值来判断最终返回前面的值还是后面的值。

1 ??2
1 ||2

不同点

判断方式不同:

  • 使用 ?? 时,只有当值1nullundefined时才返回值2
  • 使用 || 时,值1会转换为布尔值判断,为true返回值1false 返回值2
    // ??
    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

总的来说,??更加适合在不知道变量是否有值时使用。

Last Updated:
Contributors: leeguooooo