为 Javascript 中的提取设置 headers 时,哪种做法更好?

Which is better practice when setting headers for a fetch in Javascript?

像这样使用新的 Headers() object 设置 headers 以获取数据有什么区别。

const headers = new Headers()
headers.set('User','Bob')

与使用更少的代码分配所需的 headers 而不是使用新的 Header() class.

const headers = { User: 'Bob'}

在 JavaScript 中执行 fetch 时。
如果两者都获得相似的结果,那么在获取数据时哪一个是最佳实践?

Headers object 的行为与 Map 类似,主要区别在于 header 键不区分大小写。

headers:

var headers = new Headers();

headers.set('CONTENT-tYpE', 'text/html');

console.log(headers.get('content-type')); // text/html

地图:

var headers = new Map();

headers.set('CONTENT-tYpE', 'text/html');

console.log(headers.get('content-type')); // undefined

object:

var headers = {};

headers['CONTENT-tYpE'] = 'text/html';

console.log(headers['content-type']); // undefined

(当传递给 fetch 或 http 请求时,所有 header 名称都被规范化,无论数据类型如何)

我厌倦了人们试图为 JavaScript 中的所有内容定义单一的“最佳实践”。这里的答案是,就 fetch API 而言,没有“更好”的方法。

根据您在调用 fetch 之前所做的操作,乱码 object 或 Headers 的实例可能看起来 nicer。例如,从 JSON 配置中硬编码 headers ,实例化 Headers 会浪费代码;另一方面,如果您需要编写一些逻辑来生成要包含的 headers 和 select,Headers 有更明确和 case-insensitive(即更安全)的方法.

但这只是我的 意见 我认为是 clear-cut 个例子。我敢肯定有人会建议始终使用文字,因为他们想要不变性,而其他人会说 Headers 更具表现力和更好的类型。无论哪种方式,这都不是 Whosebug 的目的。