O operador existencial em CoffeeScript

Costumo ver pessoas escrevendo CoffeeScript sem usar o operador existencial (um ponto de interrogação), provavelmente porque muitos de seus usos interessantes não são mencionados em muitos lugares, exceto no grande Little Book on CoffeeScript .

Basicamente, conforme explicado no livro, ele retorna verdadeiro, a menos que a variável seja nula ou indefinida:

eatFood() if food?

Ele pode ser usado de forma semelhante ao .try (: método) no Rails, como neste exemplo que você pode ter visto em alguns tutoriais:

# Only call .log if console exists
console
?.log "Example"

Um dos meus pequenos truques favoritos ultimamente tem sido fazer o seguinte para lidar com retornos de chamada:

example = (data, callback = null) ->
someValue
= anAsyncThing(data)
# Only execute callback if it isn't null
callback
?(someValue)

example
(value) ->
console
?.log value