Sha*_*ane 6 javascript node.js
我可能想多了,但我无法消化 Nodejs 文档。我是 javascript 新手,来自 Java 背景。
我的问题不是关于任何特定的 nodejs 功能,只是整体理解。下面我举例说明我试图理解的内容......
当使用像 Java 这样的静态类型语言时,方法调用需要什么类型是非常清楚的。一个简单的例子,如果我想对一个 int 数组进行排序,我可以查看Arrays.sort并看到它需要一个 int[](其他类型也一样)。我还可以看到它返回无效。
public static void sort(int[] a)
Run Code Online (Sandbox Code Playgroud)
然而 javascript 是一种动态语言,因此没有用于 api 调用的类型。以crypto模块中的这个例子为例
crypto.pbkdf2(password, salt, iterations, keylen, callback)
Asynchronous PBKDF2 applies pseudorandom function HMAC-SHA1 to derive a
key of given length from the given password, salt and iterations.
The callback gets two arguments (err, derivedKey).
Run Code Online (Sandbox Code Playgroud)
因此,如果不出去寻找示例代码,或查看 nodejs 源代码,我如何知道函数的参数类型?我意识到可以通过查看名称来派生类型(即回调是函数类型),但还有其他方法吗?
例如,文档说回调得到两个参数 err 和derivedKey。派生密钥的类型是什么,类型是什么或者err是什么?我是否遗漏了有关文档的内容?你怎么知道你是否传入了正确的类型?
注意:我已经知道衍生密钥和 err 的类型是什么,所以我不需要像“衍生密钥是......”之类的答案,我的问题是关于来自静态类型语言的人对 Nodejs 文档的整体理解,并且是不特定于crypto.pdkdf2。
小智 2
好吧,你想得太多了。如果没有明确解释,您将不得不猜测其中的大部分内容。就像你可以猜测 iterations 和 keylen 是数字而不是字符串。当 NodeJS 文档认为你无法猜测或者你必须了解一些额外的信息时,他们会明确解释参数。就像crypto.createCredentials(details)他们解释的那样,详细信息是一本字典以及您需要使用哪些键。Fi 在 err 和衍生密钥的情况下,由于没有明确的信息,我会假设两者都是字符串。如果事实证明它们不是,我会在回调函数中console.log它们以查看它们是什么。
如果他们写下了所有参数的类型,文档可能会更清晰,但不知道是否值得付出努力。
| 归档时间: |
|
| 查看次数: |
617 次 |
| 最近记录: |