如何有效地search有关JavaScript(NodeJS)对象types的文档?
请解释一下如何阅读这个NodeJS文档fs.readFile(file [,options],callback)
数据是文件的内容。
什么是“内容”?
在像C ++或Java这样的强types语言中,当我需要知道关于某个方法参数或返回值的信息时,例如System.getProperty ,它具有名为key
参数和它的types(正如我们可以从方法签名中很容易看到的)是String。
- 我在JDK文档中打开一个类(在我们的例子中是
System
),并滚动到我感兴趣的方法。 - 如果我需要知道怎么处理参数或返回值(我指的是参数所具有的方法等),我只需点击类
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); });
真正