making a query string from scratch
for...in info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in
Array.isArray() info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray
for...of info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of
push() info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push
template literals info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals
join() info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join
Object.keys() info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
map() info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
Object.prototype.toString() info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString
split() info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split