javascript - coffee - js to coff
¿CoffeeScript permite semánticas de estilo JavaScript==? (2)
Como una posible extensión a esto, ¿hay alguna forma de insertar bloques de JS regulares en el código CoffeeScript para que no se compile?
Sí, aquí está la documentación . Debe envolver el código JavaScript en los backticks ( `
). Esta es la única forma de que use directamente el ==
de JavaScript en CoffeeScript. Por ejemplo:
if `a == b`
console.log "#{a} equals #{b}!"
JavaScript Compilado
if (a == b) {
console.log("" + a + " equals " + b + "!");
}
El caso específico de == null
/ undefined
/ void 0
es servido por el operador existencial postfix ?
:
x = 10
console.log x?
JavaScript Compilado
var x;
x = 10;
console.log(x != null);
CoffeeScript Source [ pruébelo ]
# `x` is not defined in this script but may have been defined elsewhere.
console.log x?
JavaScript Compilado
var x;
console.log(typeof x !== "undefined" && x !== null);
Me encanta que CoffeeScript compila ==
en el operador JavaScript ===
. Pero, ¿y si quieres la semántica JS ==
original? Están disponibles? He estudiado minuciosamente la documentación y no encuentro nada que me permita esto.
De manera más general, ¿hay alguna manera de insertar JS simple en mi código CoffeeScript para que el compilador no lo toque?
Preferiría evitar editar el resultado compilado de JavaScript, ya que estoy usando Chirpy para generarlo automáticamente en Visual Studio.
Esta no es exactamente la respuesta, pero este problema surgió porque jQuery .text () incluía espacios en blanco y ''is'' fallaba en Coffeescript. Desplácese utilizando la función de recorte de jQuery:
$.trim(htmlText) is theExpectedValue