0
CoffeeScript에서 다음 문은 빈 문자열로 시작되는 JavaScript 문으로 평가됩니다.CoffeeScript의 문자열 보간이 빈 문자열로 표현식 접두사를 사용하는 이유는 무엇입니까?
안전성과 관련하여 엣지 케이스가있는 것처럼 느껴지지만 머리 꼭대기에서 생각할 수 없습니다. 어떤 경우 접두사가 차이를 만드나요?
커피 스크립트 :
x = "#{foo} bar"
자바 스크립트 :
그것은 표현은 항상 예를 들면 방지 문자열로 평가되는 것을 보장x = "" + foo + " bar";
나는 100 % 확실하지 오전하지만 코드의이 비트는 내가 노력 주목할 필요가 :'{A : 'Y'} + "일"'=> NaN이 있지만 ' "" + {a : 'y'} + "thing"'=> "[object Object] thing"입니다. 그래서 내 생각 엔 빈 문자열에 객체를 연결하면 연결 전에 객체에서'toString'을 호출합니다. – Brennan
['+'연산자의 정의]의 7 번과 8 번 단계를 고려합니다. (http://ecma-international.org/ecma- 262/5.1/# sec-11.6.1) 연결 (7)과 추가 (8)를 보장합니다. 고안된 예제는''# {3} # {4} ''입니다. 표현식 (' ""+ 3 + 4')의 시작 부분에 빈 문자열이 있으면 결과는''34 "'이됩니다. 그것이 없으면 ('3 + 4') 결과는'7'입니다. –
@ 브레넌 : 아니요 당신은 블록 구문 인'{a : 'y';}'에 먹이감을 느꼈습니다. [http : //stackoverflow.com/q/14115902/1048572 참조] /stackoverflow.com/q/17268468/1048572)). '({a : 'y'}) + 'thing''시도하십시오 – Bergi