如何有效地search有关JavaScript(NodeJS)对象types的文档?

请解释一下如何阅读这个NodeJS文档fs.readFile(file [,options],callback)

数据是文件的内容。

什么是“内容”?

在像C ++或Java这样的强types语言中,当我需要知道关于某个方法参数或返回值的信息时,例如System.getProperty ,它具有名为key参数和它的types(正如我们可以从方法签名中很容易看到的)是String。

  1. 我在JDK文档中打开一个类(在我们的例子中是System ),并滚动到我感兴趣的方法。
  2. 如果我需要知道怎么处理参数或返回值(我指的是参数所具有的方法等),我只需点击类String并转到步骤1。

所以, 我的问题是:我正在写作

 var fs = require('fs') fs.readFile(someFile, 'utf8', function (err,data) { if (err) { return console.log(err); } var result = data.??? // is data.replace(/abc/g, 'xyz') OK? what else??? }); 

如何确定数据对象的types(是否需要types?)(首先我需要方法列表)?

我应该怎么知道data可能是String因此它有方法replace

PS:显然无奈console.log(typeof data); 说这只是一个object

它们不如JavaDocs。 如果你阅读了一下,你会发现你在找什么。 他们没有为返回对象设置链接 – 我认为他们应该为函数参数。

从文档:

如果没有指定编码,则返回原始缓冲区。

https://nodejs.org/api/buffer.html#buffer_class_buffer

如果options是一个string,那么它指定编码。

然后再往下:

如果指定了编码选项,那么这个函数返回一个string。 否则它会返回一个缓冲区。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type

回答你的问题:你知道这是一个string,因为你指定了一个编码。 如果你永远不会有一个缓冲区。

当我在结果上调用“types”时,它返回一个string或一个缓冲区对象。

这里有一些输出:

  fs.readFile('c:\\test.txt','utf-8',function (err,data) { console.log(data); } ); 

Test
T ext
你好
世界!

 fs.readFile('c:\\test.txt',null,function (err,data) { console.log(data); }); 

缓冲液54 00 65 00 73 00 74 00 0d 00 0a 00 54 00 65 00 78 00 74 00 0d 0 0 0a 00 48 00 65 00 6c 00 6c 00 6f 00 0d 00 0a 00 57 00 6f 00 72 00 6c 00 64 00 …

  fs.readFile('c:\\test.txt','utf-8',function (err,data) { console.log(typeof data); }); 

  fs.readFile('c:\\test.txt',null,function (err,data) { console.log(typeof data); }); 

目的

你也可以使用instanceof:

  fs.readFile('c:\\test.txt',null,function (err,data) { console.log(data instanceof Buffer); }); 

真正