Как работает экзистенциальный оператор CoffeeScript?

Coffeescript использует экзистенциальный оператор, чтобы определить, когда переменная существует, и вкофейная документация это показывает, чтоsomething? будет компилировать вsomething !== undefined && something !== null Однако я заметил, что моя версия Coffeescript только компилирует этоsomething !== null поэтому я написал тест, чтобы увидеть, как это повлияет на мой код

taco = undefined 

if taco?
    console.log "fiesta!"
else 
    console.log "No taco!"

который составлен в

// Generated by CoffeeScript 1.4.0
(function() {
  var taco;

  taco = void 0;

  if (taco != null) {
    console.log("fiesta!");
  } else {
    console.log("No taco!");
  }

}).call(this);

и вывел несколько неожиданныйNo taco! так что мой вопрос в два раза. Почему coffeescript больше не проверяет значениеundefined и почему этот suficiant?

Ответы на вопрос(1)

Ваш ответ на вопрос