ES2015 $ {}语法适用于Buffer上的String()?

时间:2017-04-03 05:21:37

标签: javascript node.js ecmascript-6 buffer

似乎在ES2015中,模板字符串${ }语法将toString()应用于缓冲区对象

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()

我找不到关于这个主题的足够信息,有人可以解释一下吗?

1 个答案:

答案 0 :(得分:1)

${}语法导致在任何js对象上调用toString方法:

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