developer tip

CoffeeScript는 JavaScript 스타일 == 같음 의미를 허용합니까?

optionbox 2021. 1. 8. 08:08
반응형

CoffeeScript는 JavaScript 스타일 == 같음 의미를 허용합니까?


CoffeeScript ==가 JavaScript ===연산자 컴파일 되는 것을 좋아합니다 . 그러나 원래의 JS ==의미 체계 를 원한다면 어떻게 될까요? 사용할 수 있습니까? 문서를 자세히 살펴 봤지만이를 가능하게하는 것을 찾을 수 없습니다.

더 일반적으로, 컴파일러가 그것을 건드리지 않도록 내 CoffeeScript 코드에 일반 JS를 인라인하는 방법이 있습니까?

Visual Studio에서 Chirpy사용 하여 자동 생성하기 때문에 컴파일 된 JavaScript 출력을 편집하지 않는 것이 좋습니다.


이것에 대한 가능한 확장으로, 일반 JS 블록을 CoffeeScript 코드로 인라인하여 컴파일되지 않도록하는 방법이 있습니까?

예, 여기에 문서가 있습니다. JavaScript 코드를 백틱 ( `) 으로 래핑해야합니다 . 이것이 ==CoffeeScript에서 JavaScript를 직접 사용할 수있는 유일한 방법입니다 . 예를 들면 :

CoffeeScript 소스 [ 사용해보기 ]
if `a == b`
  console.log "#{a} equals #{b}!"
컴파일 된 JavaScript
if (a == b) {
  console.log("" + a + " equals " + b + "!");
}

== null/ undefined/ 의 특정 경우 void 0는 접미사 실존 연산자가 제공합니다 ?.

CoffeeScript 소스 [ 사용해보기 ]
x = 10
console.log x?
컴파일 된 JavaScript
var x;
x = 10;
console.log(x != null);
CoffeeScript 소스 [ 사용해보기 ]
# `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);

이것은 정확히 대답은 아니지만 jQuery의 .text ()에 공백이 포함되어 있고 Coffeescript에서 'is'가 실패했기 때문에이 문제가 발생했습니다. jQuery의 트림 기능을 사용하여 문제를 해결하십시오.

$.trim(htmlText) is theExpectedValue 

참조 URL : https://stackoverflow.com/questions/7032398/does-coffeescript-allow-javascript-style-equality-semantics

반응형