Пояснение за задачу
(()=>{
const theObjA = { valueOf: 3}; // конечно тут должна быть функция
const theObjB = { valueOf: 4}; // конечно тут тоже должна быть функция
theObjA+theObjB; // Результат?
{ valueOf: 3} + { valueOf: 4}; //Результат?
})();Пояснение для этой задачи состоит из двух факторов:
1) люди которые оказались на одной со мной волне, восприняли задачу как "псевдокод" о том что...
и так как вполне ориентировалась о чем именно этот "псевдо-код" никто даже не написал в личку что этот код не работает сам по себе.
2) люди которые смотрели на эту задачу в первый раз, должны были сделать целую кучу умозаключений о том, как этот код привести к виду когда он начнет работать.
И да. Вы правы. Это в лучшем случае уже кретинизм. Когда предметом обсуждения становится вещь в себе и она обрастает своим жаргоном, смысла в котором ровно на столько, на сколько меньше букв было написано.
Верной с точки зрения синтаксиса JS, условие этой задачи было бы таким:
(()=>{
const theObjA = { valueOf: ()=>3};
const theObjB = { valueOf: ()=>4};
theObjA+theObjB; // Результат?
{ valueOf: ()=>3} + { valueOf: ()=>4}; //Результат?
})();А если быть еще точнее, то максимально интересной эту задачу делает код подобный такому:
(()=>{
var theCounter = 0;
const theObjA = { valueOf: ()=>(theCounter++,3)};
const theObjB = { valueOf: ()=>(theCounter++,4)};
theObjA+theObjB; // Результат?
{ valueOf: ()=>(theCounter++,3)} + { valueOf: ()=>(theCounter++,4)}; //Результат?
})();Вчера была трансляция, где разбору этой ситуации было посвящено не меньше часа.