Это будет внезапный офф-топ.
Знаете ли вы, что все высокоуровневые языки программирования хотят быть похожими на JavaScript? -- Но не у всех это получается.
Вот к примеру, новейший язык Go (являющийся, кстати, ровесником платформы Node.js) - у него почти получилось.
Допустим, я написал выше такую конструкцию на JS:
var obj = {};
$('.catalog-products-list div').each((i, el) => {
var ob = { href: $(el).attr('href') };
obj[$(el).attr('id')] = ob;
});
А как она же могла бы выглядеть на Go (с некоторыми "но", конечно, но вы понели)? Примерно так:
obj := make(map[string]map[string]string)
$('.catalog-products-list div').each((i, el) => {
ob := map[string]string{ "href": $(el).attr('href') }
obj[$(el).attr('id')] = ob
});
Как видим, преимущество "динамически-типизированных языков" (таких как ничтожный JavaScript или великий Lisp) над "статически-типизированными" заключается в том, что в первых надо меньше писать букав. Преимуществ же вторых над первыми - я вообще не знаю.