1. `[[...]]` is more robust wrt empty expansions than `[..]` 2. `${foo-}` is simpler and won't accidentally be a url compared to `${foo:-}` 3. `+=` works even when the variable is undefined.