节点类型检查/'强制转换为字符串'?

时间:2016-06-03 10:05:03

标签: javascript node.js

最近Node.js我会知道节点类型是如何工作的......

我正在处理文件,只是为了看一个例子来看看这个函数:

fs.write(fd, data[, position[, encoding]], callback)

根据documentation,数据应为以下类型:

data <String> | <Buffer>

但接下来是指定的

If data is not a Buffer instance then the value will be coerced to a string.

1 / 我问的是数据参数接受类型是否是纯粹的推测,它可以是任何类型:Object | MyOwnObject

2 / 在这种情况下, '强制转换为字符串' 是什么意思?我的意思是,它是否正在调用我的对象的 toString()方法?

感谢。

1 个答案:

答案 0 :(得分:0)

如果data参数既不是Buffer也不是String,则会通过向其添加空字符串来强制它:

if (typeof buffer !== 'string')
    buffer += '';

这相当于

buffer = String(buffer) + '';

在许多情况下,这最终会调用buffer.toString()

来源:the source code