2017-04-03 4 views
0

이 템플릿 문자열 ${ } 구문 나는이 주제에 대한 충분한 정보를 찾을 수없는 버퍼 오브젝트

let a = Buffer.from('hello') 

let b =() => { 
    console.log(`es6 : ${a}`) // hello 
    console.log('raw a : ', a) // <Buffer 68 65 6c 6c 6f> 
    console.log('compiled to es5 : ' + a) // hello 
    console.log(+a) // NaN 
} 

b() 

toString()을 적용, ES2015에 보인다, 사람이를 설명 할 수 있습니까?

+0

아닌가요 '로 .toString()는'인가? 문자열을 만들 때 논리적 인 일이 아닌가? (그 밖의 무엇을하고 싶습니까?) – nnnnnn

+0

덕분에, 나는 그 사실을 이해하지 못했습니다. 왼쪽 문제는 $ {}입니다. – stackoverYC

+1

편집 된 질문에서 템플릿 문자열 버전은 단일 문자열 값을 콘솔에 기록하지만 (이 문자열은 템플릿 구문을 평가 한 결과 임) 다음 줄에서는 두 개의 별도 로그 값을 연결하지 않고 콘솔에 전달할 수 있습니다. 그래서 왜 그 값을 비교하는지 확신 할 수 없습니다. – nnnnnn

답변

1

${} 구문 어떤 JS 객체 toString 메소드를 호출 발생 : 스트링으로 * 모든 * 객체들을 연결시

let a = {toString:()=>("I'm a string")}; 
 
console.log(`result: ${a}`);

+1

감사합니다, 매우 흥미 롭습니다! 나는 babel : console.log ('$ {b}')를 사용하여 es5에서'console.log (''+ b)'가 될 것임을 발견했다. – stackoverYC