大好きです CoffeeScriptは==
をJavaScript ===
演算子にコンパイルします 。しかし、元のJS ==
セマンティクスが必要な場合はどうでしょうか。それらは利用可能ですか?ドキュメントを調べましたが、これを可能にするものを見つけることができません。
より一般的には、コンパイラーがそれに触れないように、プレーンJSをCoffeeScriptコードにインライン化する方法はありますか?
Chirpy を使用してVisual Studioで出力を自動生成しているので、コンパイルされたJavaScript出力の編集は避けたいと思います。
これに対する可能な拡張として、コンパイルされないように通常のJSのブロックをCoffeeScriptコードにインライン化する方法はありますか?
はい、 ここにドキュメントがあります 。 JavaScriptコードをバッククォート(`
)でラップする必要があります。これは、CoffeeScriptでJavaScriptの==
を直接使用する唯一の方法です。例えば:
if `a == b`
console.log "#{a} equals #{b}!"
if (a == b) {
console.log("" + a + " equals " + b + "!");
}
== null
/undefined
/void 0
の特定のケースは、postfix存在演算子?
によって処理されます。
x = 10
console.log x?
var x;
x = 10;
console.log(x != null);
[ お試しください ]# `x` is not defined in this script but may have been defined elsewhere.
console.log x?
var x;
console.log(typeof x !== "undefined" && x !== null);
これは正確な答えではありませんが、jQueryの.text()に空白が含まれており、Coffeescriptで「is」が失敗していたため、この問題が発生しました。 jQueryのtrim関数を使用して回避します。
$.trim(htmlText) is theExpectedValue