Ответ 1
Как возможное расширение для этого, есть ли способ встроить блоки обычного JS в код CoffeeScript, чтобы он не был скомпилирован?
Да, здесь документация. Вам нужно обернуть код JavaScript в backticks (`
). Это единственный способ напрямую использовать JavaScript ==
в CoffeeScript. Например:
if `a == b`
console.log "#{a} equals #{b}!"
Скомпилированный JavaScript
if (a == b) {
console.log("" + a + " equals " + b + "!");
}
Конкретный случай == null
/undefined
/void 0
обслуживается экстенсиональным оператором postfix ?
:
x = 10
console.log x?
Скомпилированный JavaScript
var x;
x = 10;
console.log(x != null);
CoffeeScript Source [попробуйте]# `x` is not defined in this script but may have been defined elsewhere.
console.log x?
Скомпилированный JavaScript
var x;
console.log(typeof x !== "undefined" && x !== null);