[{"data":1,"prerenderedAt":1839},["ShallowReactive",2],{"$f_tNIP3wT02lgh3_3ddmp4FiqpLA5uSkJaFE0mC-lcjk":3,"$fMMUdSFktwQFqMVGPrTtt3EC5yheBp7PzwIqznamFcMo":106,"$f1Prj1xEczHja_-L7FyIGgRHd5_cSWHo7r6AE5aheAik":109,"$fc0LoAJgqXDLbKKd2JS_NpM4SuzBK8EycUXINSg09CKU":435,"$fM3ea55k6lKMPOTM84llDB26VSQDVVbxiQuSBFQw9P_c":438,"$fI5fDmvm-5tr9wcH0eHaKZa1j3y_FQIQaHHPqbZxAHJE":682,"mdc--e4jhd3-key":702,"mdc-p3g1nq-key":720,"mdc-lisyrg-key":754,"mdc--my4afa-key":792,"mdc-1afgi7-key":825,"mdc--99l248-key":860,"mdc--27wd3a-key":909,"mdc--fsil8h-key":940,"mdc-f5k9pi-key":1028,"mdc--heyjrj-key":1061,"mdc-h6zoe6-key":1300,"mdc--r88ymc-key":1465,"mdc--i2sa69-key":1513,"mdc-51seku-key":1551,"mdc--zfhbs3-key":1629,"mdc--roackm-key":1655,"mdc-hc0lfk-key":1752},{"content":4,"quizQuestionContent":76,"type":95,"pageMeta":96},[5,9,13,16,20,24,27,31,34,38,42,45,49,52,56,59,63,66,70,73],{"id":6,"value":7,"isTypeH1":8},"1939","Отрицательный индекс в JS-массиве: вывод и length",true,{"id":10,"value":11,"anchor":12,"isTypeH2":8},"4481","Теория: массивы и свойства","theory-arrays-and-properties",{"id":14,"value":15,"isTypeParagraph":8},"10310","В JavaScript массив является объектом. Это означает, что у массива существуют:\n- Элементы массива по индексам `0`, `1`, `2`, ... (это «индексные» свойства).\n- Обычные свойства объекта с любыми строковыми ключами (например, `\"foo\"`, `\"-7\"` и т.д.).\n\nЗапись `b[\"-7\"] = 3` добавляет (или изменяет) свойство объекта с именем `\"-7\"`, а не «элемент массива с индексом -7». Отрицательные «индексы» в JavaScript-массивах не являются индексами массива и не участвуют в механике `length`.",{"id":17,"description":18,"titleAlert":19,"isTypeAlertInfo":8},"677","Ключ свойства при обращении в квадратных скобках фактически является строкой. Поэтому `b[\"2\"]` и `b[2]` обращаются к одному и тому же индексному элементу, а `b[\"-7\"]` — к неиндексному свойству.",null,{"id":21,"value":22,"anchor":23,"isTypeH3":8},"4506","Что такое «индекс массива»","what-is-array-index",{"id":25,"value":26,"isTypeParagraph":8},"10311","У массива есть специальное правило: строковый ключ считается индексом массива только если он выглядит как неотрицательное целое число в канонической форме (например, `\"0\"`, `\"1\"`, `\"2\"`, `\"10\"`).  \nСтрока `\"-7\"` этому условию не соответствует, поэтому:\n- не изменяет `length`,\n- не участвует в обходах `map()`, `forEach()` как элемент массива,\n- не отображается как обычный элемент `0..length-1`.\n\nНиже приведён ориентир по ключам:\n\n| Ключ свойства | Считается индексом массива | Влияет на `length` |\n|---|---|---|\n| `\"0\"`, `\"1\"`, `\"2\"` | Да | Да (если индекс ≥ текущего `length`) |\n| `\"-7\"` | Нет | Нет |\n| `\"03\"` | Нет (не канонично) | Нет |\n| `\"3.5\"` | Нет | Нет |",{"id":28,"value":29,"anchor":30,"isTypeH2":8},"4482","Разбор кода по шагам","step-by-step-code-analysis",{"id":32,"value":33,"isTypeParagraph":8},"10312","Исходный код:\n\n```\nconst b = [1, 2, 4];\nb[\"-7\"] = 3;\n\nconsole.log(b); // Первый\nconsole.log(b.length); // Второй\nconsole.log(b.map((item) => item)); // Третий\nconsole.log(b.forEach((item) => console.log(item))); // Четвёртый\n```\n\nШаг 1: `const b = [1, 2, 4];`\n- Создаются элементы: `b[0] = 1`, `b[1] = 2`, `b[2] = 4`.\n- `b.length` становится `3` (количество позиций до индекса 2 включительно).\n\nШаг 2: `b[\"-7\"] = 3;`\n- Создаётся обычное свойство объекта-массива: ключ `\"-7\"`, значение `3`.\n- Элементы `b[0]`, `b[1]`, `b[2]` не меняются.\n- `b.length` не меняется, потому что ключ `\"-7\"` не индексный.\n\nСостояние можно представить так:\n\n```\nb (Array-объект)\n- индексные элементы:\n  - \"0\" -> 1\n  - \"1\" -> 2\n  - \"2\" -> 4\n- обычные свойства:\n  - \"-7\" -> 3\n- length -> 3\n```\n",{"id":35,"value":36,"anchor":37,"isTypeH2":8},"4483","Что выведет каждый console.log","what-each-console-log-prints",{"id":39,"value":40,"anchor":41,"isTypeH3":8},"4507","Первый: `console.log(b)`","first-console-log",{"id":43,"value":44,"isTypeParagraph":8},"10313","В консоли будет показан массив с тремя элементами и дополнительным свойством `\"-7\"`.  \nЧасто это выглядит примерно так: `[ 1, 2, 4, '-7': 3 ]`, но точный формат отображения зависит от среды (браузер, Node.js, настройки DevTools).\n\nВажно, что элементы массива остаются `[1, 2, 4]`, а `\"-7\": 3` — именно свойство, а не «вставка» внутрь списка элементов.",{"id":46,"value":47,"anchor":48,"isTypeH3":8},"4508","Второй: `console.log(b.length)`","second-console-log",{"id":50,"value":51,"isTypeParagraph":8},"10314","Будет выведено `3`.  \n`length` связан с индексными ключами (`0..length-1`) и не увеличивается от присваивания по неиндексному ключу `\"-7\"`.\n",{"id":53,"value":54,"anchor":55,"isTypeH3":8},"4509","Третий: `console.log(b.map((item) => item))`","third-console-log",{"id":57,"value":58,"isTypeParagraph":8},"10315","Будет выведено `[1, 2, 4]`.  \n`map()` создаёт новый массив длины `b.length` и применяет колбэк только к индексным элементам (позициям `0`, `1`, `2`), а свойство `\"-7\"` в этот обход не попадает.\n\nПример того, что делает `map()` по смыслу:\n\n```\n// Смысловая модель (упрощённо)\nconst result = [];\nfor (let i = 0; i \u003C b.length; i++) {\n  // берётся именно b[i], а не b[\"-7\"]\n  result[i] = b[i];\n}\nconsole.log(result);\n```",{"id":60,"value":61,"anchor":62,"isTypeH3":8},"4510","Четвёртый: `b.forEach((item) => console.log(item))`","fourth-console-log",{"id":64,"value":65,"isTypeParagraph":8},"10316","Вызов `console.log(item)` выведет элементы массива по порядку:\n```\n1\n2\n4\n```",{"id":67,"value":68,"anchor":69,"isTypeH2":8},"4484","Почему варианты-ловушки неверны","why-other-options-are-wrong",{"id":71,"value":72,"isTypeParagraph":8},"10317","- Варианты с `[3, 1, 2, 4]` предполагают «вставку в начало» или «сдвиг элементов», но присваивание `b[\"-7\"]` сдвигов не делает.\n- Варианты с `length = 4` предполагают, что добавилось 4-е индексное значение, но ключ `\"-7\"` не индексный.\n- Варианты, где `map()` возвращает `... '-7': 3 ...`, неверны, потому что `map()` обходит индексные позиции `0..length-1`, а не произвольные свойства.\n- Вариант «Ошибка TypeError» не подходит, потому что операции корректны: присваивание свойства допустимо, `map` и `forEach` существуют у массивов.",{"id":74,"value":75,"isTypeParagraph":8},"10318","Кратко: `b[\"-7\"]=3` добавляет неиндексное свойство `\"-7\"`, поэтому `b` отображается с этим свойством, `length` остаётся `3`, `map()` даёт `[1,2,4]`, а `forEach()` печатает `1 2 4` и возвращает `undefined`, который выводится внешним `console.log`.\n",{"id":77,"options":78,"hint":92,"solution":93,"description":94},"1168",[79,83,86,89],{"id":80,"label":81,"isCorrect":82},"4816","Первый: `[3, 1, 2, 4]`. Второй: `4`. Третий: `[3, 1, 2, 4]`. Четвёртый: `3, 1, 2, 4`",false,{"id":84,"label":85,"isCorrect":82},"4817","Первый: `[1, 2, 3, 4]`. Второй: `4`. Третий: `[1, 2, 3, 4]`. Четвёртый: `1, 2, 3, 4`",{"id":87,"label":88,"isCorrect":8},"4818","Первый: `[1, 2, 4, '-7': 3]`. Второй: `3`. Третий: `[1, 2, 4]`. Четвёртый: `1, 2, 4`",{"id":90,"label":91,"isCorrect":82},"4819","`Ошибка TypeError`","Следует разделять «элементы массива» (ключи `0..length-1`) и «обычные свойства объекта» (например, `\"-7\"`), затем отдельно помнить, что `map()` возвращает новый массив, а `forEach()` возвращает `undefined`.","Правильный вариант: **третий** - Первый: [1, 2, 4, '-7': 3]. Второй: 3. Третий: [1, 2, 4]. Четвёртый: 1, 2, 4","Дан код:\n\n```\nconst b = [1, 2, 4];\nb[\"-7\"] = 3;\n\nconsole.log(b); // Первый\nconsole.log(b.length); // Второй\nconsole.log(b.map((item) => item)); // Третий\nb.forEach((item) => console.log(item)); // Четвёртый\n```\n\nЧто выведетcя в ```console.log```-ах? ","quizQuestion",{"title":97,"description":98,"ogTitle":7,"ogDescription":98,"ogImageUrl":99,"canonical":19,"ogLocale":100,"ogSiteName":101,"ogImageType":102,"ogImageWidth":103,"ogImageHeight":104,"ogType":105,"ogUrl":19},"Присвоение свойства массиву по строковому индексу","Разбор: b[\"-7\"]=3 добавляет свойство, не элемент массива; length не меняется, map/forEach игнорируют неиндексные ключи","/og-image.png","ru_RU","goodwebjob.ru","image_jpeg","1200","630","article",{"siteName":107,"siteUrl":108},"GOOD WEB JOB!","https://goodwebjob.ru",{"slugs":110},[111,114,117,120,123,126,129,132,135,138,141,144,147,150,153,156,159,162,165,168,171,174,177,180,183,186,189,192,195,198,201,204,207,210,213,216,219,222,225,228,231,234,237,240,243,246,249,252,255,258,261,264,267,270,273,276,279,282,285,288,291,294,297,300,303,306,309,312,315,318,321,324,327,330,333,336,339,342,345,348,351,354,357,360,363,366,369,372,375,378,381,384,387,390,393,396,399,402,405,408,411,414,417,420,423,426,429,432],{"name":112,"value":113},"Теоретические задания","theoretical-tasks",{"name":115,"value":116},"Что вернёт этот код: typeof (function(){})()","what-this-code-will-return-typeof-function",{"name":118,"value":119},"С чего начать?","where-to-begin",{"name":121,"value":122},"Почему опасно писать прямо в прототипы базовых типов?","why-is-it-dangerous-to-write-directly-to-the-prototypes-of-basic-types",{"name":124,"value":125},"Backend","backend",{"name":127,"value":128},"Frontend","frontend",{"name":130,"value":131},"Какие логические значения в console.log будут получены?","prototype-what-logical-values-will-be-received-in-console-log",{"name":133,"value":134},"Нечётные числа должны отсортироваться по возрастанию, а чётные должны остаться на своих местах","odd-numbers-should-be-sorted-in-ascending-order-and-even-numbers-should-remain-in-their-original-positions",{"name":136,"value":137}," Найти в массиве неповторяющиеся числа","find-non-repeating-numbers-in-an-array",{"name":139,"value":140},"arr.push(0) повлияет на массив так же, как если бы мы выполнили...","arr-push-0-will-affect-the-array-in-the-same-way-as-if-we-performed",{"name":142,"value":143},"Дана строка: 'one.two.three.four.five'. Необходимо из строки сделать вложенный объект","the-string-one-two-three-four-five-is-given-it-is-necessary-to-make-a-nested-object-out-of-the-string",{"name":145,"value":146},"Реализовать функцию, похоже как в Jquery","implement-a-function-similar-to-jquery",{"name":148,"value":149},"Для каждого вложенного объекта нужно добавить свойство level, которое равняется числу - номер вложенности","for-each-nested-object-you-need-to-add-the-level-property-which-is-equal-to-a-number-the-nesting-number",{"name":151,"value":152},"Какое значение выведет консоль с object.property?","what-value-will-the-console-output-with-object-property",{"name":154,"value":155},"Что выведется в console.log([arr[0](), arr[0]()])?","what-will-be-displayed-in-console-log-arr-0-arr-0",{"name":157,"value":158},"Вернуть массив от 1 до n, где числа, кратные 3, заменены на 'fizz', кратные 5 - на 'buzz', а кратные и 3, и 5 одновременно - на 'fizzbuzz'","returns-an-array-from-1-to-n-replacing-numbers-that-are-multiples-of-3-with-fizz-numbers-that-are-multiples-of-5-with-buzz-and-numbers-that-are-multiples-of-both-3-and-5-with-fizzbuzz",{"name":160,"value":161},"Необходимо проверить, являются ли две строки анаграммами друг друга","checks-whether-two-strings-are-anagrams-of-each-other",{"name":163,"value":164},"Определить, является ли слово палиндромом","determines-whether-a-word-is-a-palindrome",{"name":166,"value":167},"Есть массив, в котором лежат объекты с датами, необходимо отсортировать даты по возрастанию","there-is-an-array-containing-objects-with-dates-that-need-to-be-sorted-by-date",{"name":169,"value":170},"Реализовать функцию, принимающую аргументы \"*\", \"1\", \"b\", \"1c\" и возвращающую строку \"1*b*1c\"","implement-a-function-that-accepts-arguments-1-b-1c-and-the-return-string-1-b-1c",{"name":172,"value":173},"Дано дерево (вложенный объект), надо найти сумму всех вершин","given-a-tree-nested-object-it-is-necessary-to-find-the-sum-of-all-vertices",{"name":175,"value":176},"Для каждой ветви дерева записать номер вложенности данной ветви","for-each-branch-of-the-tree-write-down-the-nesting-number-of-this-branch",{"name":178,"value":179},"Есть слова в массиве, необходимо определить, состоят ли они из одних и тех же букв","there-are-words-in-the-array-it-is-necessary-to-determine-whether-they-consist-of-the-same-letters",{"name":181,"value":182},"Числа от 1 до 100 находятся в массиве, они хаотично перемешанные, но в нём не хватает одного числа из этой последовательности. Необходимо найти его","the-numbers-from-1-to-100-are-in-the-array-they-are-randomly-mixed-but-it-lacks-one-number-from-this-sequence-it-is-necessary-to-find-him",{"name":184,"value":185},"Есть строка, состоящая из разных скобок, необходимо проверить, закрыты ли все","there-is-a-string-consisting-of-different-brackets-it-is-necessary-to-check-whether-all-are-closed",{"name":187,"value":188},"Напишите функцию, который сделает из массива объект","write-a-function-that-will-make-an-object-out-of-an-array",{"name":190,"value":191},"Что выведет console.log в результате выполнения цикла while?","what-will-console-log-output-as-a-result-of-executing-the-while-loop",{"name":193,"value":194},"Есть функция и объект. Напишите все известные вам способы, чтобы вывести в консоли значение x из объекта, используя функцию","there-is-a-function-and-an-object-write-all-the-ways-you-know-to-output-the-value-of-x-from-an-object-in-the-console-using-the-function",{"name":196,"value":197},"Что выведет консоль в случае присвоения свойства массиву по строковому отрицательному индексу?","what-will-the-console-display-if-a-property-is-assigned-to-an-array-using-a-negative-string-index",{"name":199,"value":200},"Что выведет консоль в случае удаления элемента массива с помощью оператора delete?","what-will-the-console-output-if-an-array-element-is-deleted-using-the-delete-operator",{"name":202,"value":203},"Уникализация значений в массиве","unifying-values-in-an-array",{"name":205,"value":206},"«Расплющивание» массива","flattening-the-array",{"name":208,"value":209},"Что вернёт метод book.getUpperName()?","what-will-the-book-get-upper-name-method-return",{"name":211,"value":212},"Сжатие строк","string-compression",{"name":214,"value":215},"Что выведет консоль в случае присвоения свойства массиву по строковому положительному индексу?","what-will-the-console-display-if-a-property-is-assigned-to-an-array-using-a-positive-string-index",{"name":217,"value":218},"Что получится в результате передачи объекта как аргумента в функцию и выполнения кода?","what-will-happen-when-an-object-is-passed-as-an-argument-to-a-function-and-the-code-is-executed",{"name":220,"value":221},"Как браузер после ввода домена понимает, откуда брать сайт?","how-does-the-browser-know-where-to-get-the-website-after-entering-the-domain",{"name":223,"value":224},"Как домен попадает в DNS в таблицу соответствия: домен – ip","how-does-a-domain-get-into-the-dns-mapping-table-domain-ip",{"name":226,"value":227},"Как браузер решает, какое соединение ему открывать, TCP или UDP?","how-does-a-browser-decide-whether-to-open-a-tcp-or-udp-connection",{"name":229,"value":230},"Ключевые отличия TCP и UDP","key-differences-between-tcp-and-udp",{"name":232,"value":233},"\"TCP/IP\" - кем является TCP, а кем IP в данном случае?","tcp-ip-who-is-tcp-and-who-is-ip-in-this-case",{"name":235,"value":236},"Что такое HTTP и из чего состоит?","what-is-http-and-what-does-it-consist-of",{"name":238,"value":239},"Что такое заголовки в HTTP и зачем они нужны?","what-are-http-headers-and-why-do-we-need-them",{"name":241,"value":242},"Что такое параметры в HTTP?","what-are-http-parameters",{"name":244,"value":245},"Где находится HTML-код в структуре HTTP-ответа?","where-is-the-html-code-located-in-the-http-response-structure",{"name":247,"value":248},"Что такое HTML?","what-is-html",{"name":250,"value":251},"Чем отличаются 1.0, 1.1, 2.0, 3.0 версии HTTP?","what-are-the-differences-between-http-versions-1-0-1-1-2-0-and-3-0",{"name":253,"value":254},"Пользователь авторизован на сайте. Как сервер узнает об этом с последующими другими заходами, что «я – авторизованный пользователь»?","the-user-is-logged-in-on-the-website-how-does-the-server-know-that-i-am-an-authorized-user-when-the-user-logs-in-again",{"name":256,"value":257},"Что такое cookie?","what-is-a-cookie",{"name":259,"value":260},"Кто является инициатором записи cookie в браузере?","who-initiates-the-cookie-recording-in-the-browser",{"name":262,"value":263},"Есть ли возможность с клиента (с браузера) управлять cookie?","is-it-possible-to-manage-cookies-from-the-client-browser",{"name":265,"value":266},"Лайвкодинг","livecoding",{"name":268,"value":269},"Что вернёт следующий код? Object.create(null).hasOwnProperty('toString')","what-will-the-following-code-return-object-create-null-has-own-property-to-string",{"name":271,"value":272},"Всё, что идет по HTTPS – оно защищено?","is-everything-that-goes-through-https-secure",{"name":274,"value":275},"Все данные зашифрованы, используется https. Хакер взламывает dns и делает подмену одного ip на другой, на фишинговый сайт. В этом случае, злоумышленник может получить данные (логин \\ пароль)?","all-data-is-encrypted-https-is-used-let-s-assume-a-hacker-hacks-the-dns-and-makes-a-substitution-of-one-ip-for-another-a-phishing-site",{"name":277,"value":278},"Есть веб-приложение. Помимо HTTP, какие протоколы того же уровня (Application Layer) можно дополнительно использовать в веб-приложении в браузере?","there-is-a-web-application-in-addition-to-http-what-other-protocols-of-the-same-level-application-layer-can-be-used-in-the-web-application-in-browser",{"name":280,"value":281},"Как браузер парсит JavaScript и изображения при рендеринге?","how-the-browser-parses-javascript-and-images-when-rendering",{"name":283,"value":284},"Что происходит, когда HTTP прислал HTML? Что браузер дальше делает c HTML с учетом того, что она валидная?","what-happens-when-http-sends-html-what-does-the-browser-do-with-this-html-given-that-it-is-valid",{"name":286,"value":287},"Что в браузере блокирует рендеринг страницы?","what-is-blocking-the-page-rendering-in-the-browser",{"name":289,"value":290},"Что такое DOM в браузере? Что такое CSSOM?","what-is-dom-in-a-browser-what-is-cssom",{"name":292,"value":293},"Что является узлами в DOM?","what-are-nodes-in-the-dom",{"name":295,"value":296},"Из чего состоит CSSOM?","what-does-cssom-consist-of",{"name":298,"value":299},"Дан HTML-код. Какой будет цвет у текста «Some dummy text»?","the-html-code-is-given-what-will-be-the-color-of-the-some-dummy-text",{"name":301,"value":302},"Есть шаблон HTML и CSS кода. Какой будет цвет у текста «Таким образом, постоянное»?","there-is-a-template-for-html-and-css-code-what-color-will-the-text-thus-constant-have",{"name":304,"value":305},"Есть шаблон вложенного HTML кода. Какой будет цвет у текста «One more dummy text»?","there-is-a-template-for-embedded-html-code-what-will-be-the-color-of-the-one-more-dummy-text",{"name":307,"value":308},"Есть шаблон вложенного HTML кода. Будет ли display:block у body влиять на span?","there-is-a-template-for-embedded-html-code-will-there-be-a-display-does-bodys-block-affect-span",{"name":310,"value":311},"Есть HTML код. Будет ли font-weight на span влиять?","there-is-an-html-code-will-font-weight-affect-span",{"name":313,"value":314},"Flexbox и Grid, чем отличаются друг от друга?","what-are-the-differences-between-flexbox-and-grid",{"name":316,"value":317},"Заменяют ли Flexbox и Grid друг друга?","do-flexbox-and-grid-replace-each-other",{"name":319,"value":320},"Есть CSS и JS анимация. Какая между ними разница, что быстрее, что более удобно?","there-are-css-and-js-animations-what-is-the-difference-between-them-and-which-is-faster-and-more-convenient",{"name":322,"value":323},"Сборник задач","tasks",{"name":325,"value":326},"Какие способы объявления функции есть в JavaScript?","what-are-the-ways-to-declare-a-function-in-javascript",{"name":328,"value":329},"Что такое this в JavaScript?","what-is-this-in-javascript",{"name":331,"value":332},"Что такое Event Loop, как работает?","what-is-an-event-loop-and-how-does-it-work",{"name":334,"value":335},"Что будет, если вызвать typeof на необъявленной переменной?","what-happens-if-you-call-typeof-on-an-undeclared-variable",{"name":337,"value":338},"Что показывает оператор typeof в JavaScript?","what-does-the-typeof-operator-show-in-javascript",{"name":340,"value":341},"Какие типы данных существует в JavaScript?","what-types-of-data-exist-in-javascript",{"name":343,"value":344},"Какую структуру использовать для хранения упорядоченного списка строк в JavaScript?","what-is-the-best-structure-to-use-for-storing-an-ordered-list-of-strings-in-javascript",{"name":346,"value":347},"Что вернет typeof для массива?","what-will-typeof-return-for-an-array",{"name":349,"value":350},"Почему оператор typeof, применённый к массиву, возвращает объект?","why-does-the-typeof-operator-applied-to-an-array-return-an-object",{"name":352,"value":353},"Если нужно хранить список уникальных строк, какую структуру данных выбрать?","if-you-need-to-store-a-list-of-unique-strings-which-data-structure-should-i-choose",{"name":355,"value":356},"Что возвращает typeof для new Set в JavaScript?","what-does-typeof-return-for-new-set-in-javascript",{"name":358,"value":359},"Для чего нужен React, какие он решает проблемы?","what-is-react-used-for-and-what-problems-does-it-solve",{"name":361,"value":362},"Если убрать в React VDOM/Fiber, и вручную изменять DOM, разве это не оптимально?","if-you-remove-the-vdom-fiber-in-react-and-manually-change-the-dom-isn-t-that-optimal",{"name":364,"value":365},"Есть блок кода. Что в реальном DOM изменится после нажатия на кнопку?","there-is-a-block-of-code-what-changes-in-the-real-dom-after-clicking-the-button",{"name":367,"value":368},"Есть код, в котором список и кнопка. Что в реальном DOM изменится после нажатия на кнопку?","there-is-a-code-in-which-there-is-a-list-and-a-button-what-will-change-in-the-real-dom-after-clicking-on-the-button",{"name":370,"value":371},"Зачем нужен Redux (Mobx/Effector)? Зачем нужен менеджер состояния? Какие проблемы решает?","why-do-we-need-redux-mobx-effector-why-do-we-need-a-state-manager-what-problems-does-it-solve",{"name":373,"value":374},"Как диагностировать и исправить нежелательное изменение цвета фона по клику на кнопку, если исходный код сайта запутан и недоступен для прямого чтения?","how-can-diagnose-and-fix-unwanted-background-color-changes-when-clicking-on-a-button-if-the-source-code-of-the-site-is-confusing-and-inaccessible-to-direct-reading",{"name":376,"value":377},"Разрабатывал, взял закоммитил, запушил. Оказалось, что запушил не в ту ветку, точнее, коммит не в ту ветку. Какие действия?","developed-it-committed-it-and-launched-it-it-turned-out-that-i-had-pushed-it-to-the-wrong-branch-or-rather-the-commit-was-in-the-wrong-branch-what-actions",{"name":379,"value":380},"В git есть несколько вариантов слияния веток, какие? Чем отличаются?","git-has-several-options-for-merging-branches-which-ones-how-are-they-different",{"name":382,"value":383},"Какие существуют стратегии ветвления для работы команды? Что это такое?","what-are-the-branching-strategies-for-the-team-what-is-it",{"name":385,"value":386},"По каким характеристикам, ревьюер понимает, что данный код - хороший, а этот код - плохой?","how-does-a-reviewer-know-which-code-is-good-and-which-code-is-bad",{"name":388,"value":389},"Дан фрагмент bash-скрипта: cd ~; mkdir foo... Что в нем происходит?","here-is-a-fragment-of-a-bash-script-cd-mkdir-foo-what-is-happening-in-this-script",{"name":391,"value":392},"Дан фрагмент bash-скрипта: target=$(ps -Af | grep $1 | head -n 1)...","here-is-a-fragment-of-a-bash-script-target-ps-af-grep-1-head-n-1",{"name":394,"value":395},"Что такое алгоритмическая сложность?","what-is-algorithmic-complexity",{"name":397,"value":398},"Какая алгоритмическая сложность у \"быстрой сортировки\"?","what-is-the-algorithmic-complexity-of-quick-sort",{"name":400,"value":401},"Почему в JavaScript два объекта с одинаковым содержимым при сравнении возвращают false?","why-do-two-objects-with-the-same-content-return-false-when-compared-in-javascript",{"name":403,"value":404},"Каким способом может выполняться авторизация пользователя на сайте?","how-can-a-user-be-authorized-on-a-website",{"name":406,"value":407},"В чем разница между микро- и макро-тасками в JavaScript?","what-is-the-difference-between-micro-and-macro-tasks-in-javascript",{"name":409,"value":410},"В комнате три человека. Какова вероятность того, что хотя бы двое из них одного пола? То есть два и более.","there-are-three-people-in-the-room-what-is-the-probability-that-at-least-two-of-them-are-of-the-same-sex-that-is-two-or-more",{"name":412,"value":413},"Есть монета. Ее подбрасывают пять раз подряд. Каждый раз записывается, что выпало - орел или решка. Сколько разных последовательностей орлов и решек может при этом получиться?","there-is-a-coin-it-is-tossed-five-times-in-a-row-each-time-it-is-recorded-whether-it-lands-on-heads-or-tails-how-many-different-sequences-of-heads-and-tails-can-be-obtained",{"name":415,"value":416},"Как гарантированно найти лёгкую фальшивую монету среди 8 за минимальное число взвешиваний на чашечных весах?","how-can-you-guarantee-to-find-an-easy-fake-coin-among-8-in-the-minimum-number-of-weighings-on-a-balance-scale",{"name":418,"value":419},"Подготовка к тех.интервью","technical-interview",{"name":421,"value":422},"Верно ли утверждение, что злоумышленник, контролирующий роутер и прослушивающий трафик, может получить логины и пароли от сайтов, на которые заходит клиент?","is-it-true-that-an-attacker-who-controls-a-router-and-listens-to-traffic-can-obtain-logins-and-passwords-from-websites-that-a-client-visits",{"name":424,"value":425},"Что такое DNS, как DNS находит нужный IP-адрес?","what-is-dns-and-how-does-dns-find-the-correct-ip-address",{"name":427,"value":428},"Переменные объявлены следующим образом: a=3; b=«hello»;. Укажите правильное утверждение","variables-are-declared-as-follows-specify-the-correct-statement",{"name":430,"value":431},"Какой механизм лежит в основе оптимизации обновлений DOM в React?","what-is-the-underlying-mechanism-for-optimizing-dom-updates-in-react",{"name":433,"value":434},"Что мешает организовать централизованное состояние без менеджера состояния? Если организовать состояние механизмами реакта: контекстом, стейтом, в чем проблема? Что менеджеры состояния привносят?","what-prevents-you-from-organizing-a-centralized-state-without-a-state-manager-if-you-organize-the-state-using-react-context-and-state-mechanisms-what-is-the-problem-what-do-state-managers-add",[436],{"label":418,"slug":419,"to":437},"/technical-interview/where-to-begin",{"navigationList":439,"navigationSublist":445},[440,442],{"path":437,"isActive":82,"name":118,"icon":441,"isNavbarMobileDisabled":8},"material-symbols:visibility-outline-rounded",{"path":443,"isActive":8,"name":322,"icon":444,"isNavbarMobileDisabled":82},"/technical-interview/tasks","material-symbols:task-outline",[446,453,472,481,486,581,598,605,610,653,668,673],{"title":447,"list":448,"isOpened":82},"Bash",[449,451],{"name":388,"path":450,"isActive":82},"/technical-interview/tasks/here-is-a-fragment-of-a-bash-script-cd-mkdir-foo-what-is-happening-in-this-script",{"name":391,"path":452,"isActive":82},"/technical-interview/tasks/here-is-a-fragment-of-a-bash-script-target-ps-af-grep-1-head-n-1",{"title":454,"list":455,"isOpened":82},"CSS",[456,458,460,462,464,466,468,470],{"name":298,"path":457,"isActive":82},"/technical-interview/tasks/the-html-code-is-given-what-will-be-the-color-of-the-some-dummy-text",{"name":301,"path":459,"isActive":82},"/technical-interview/tasks/there-is-a-template-for-html-and-css-code-what-color-will-the-text-thus-constant-have",{"name":304,"path":461,"isActive":82},"/technical-interview/tasks/there-is-a-template-for-embedded-html-code-what-will-be-the-color-of-the-one-more-dummy-text",{"name":307,"path":463,"isActive":82},"/technical-interview/tasks/there-is-a-template-for-embedded-html-code-will-there-be-a-display-does-bodys-block-affect-span",{"name":310,"path":465,"isActive":82},"/technical-interview/tasks/there-is-an-html-code-will-font-weight-affect-span",{"name":313,"path":467,"isActive":82},"/technical-interview/tasks/what-are-the-differences-between-flexbox-and-grid",{"name":316,"path":469,"isActive":82},"/technical-interview/tasks/do-flexbox-and-grid-replace-each-other",{"name":319,"path":471,"isActive":82},"/technical-interview/tasks/there-are-css-and-js-animations-what-is-the-difference-between-them-and-which-is-faster-and-more-convenient",{"title":473,"list":474,"isOpened":82},"Git",[475,477,479],{"name":376,"path":476,"isActive":82},"/technical-interview/tasks/developed-it-committed-it-and-launched-it-it-turned-out-that-i-had-pushed-it-to-the-wrong-branch-or-rather-the-commit-was-in-the-wrong-branch-what-actions",{"name":379,"path":478,"isActive":82},"/technical-interview/tasks/git-has-several-options-for-merging-branches-which-ones-how-are-they-different",{"name":382,"path":480,"isActive":82},"/technical-interview/tasks/what-are-the-branching-strategies-for-the-team-what-is-it",{"title":482,"list":483,"isOpened":82},"HTML",[484],{"name":247,"path":485,"isActive":82},"/technical-interview/tasks/what-is-html",{"title":487,"list":488,"isOpened":82},"JavaScript",[489,491,493,495,497,499,501,503,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,545,547,549,551,553,555,557,559,561,563,565,567,569,571,573,575,577,579],{"name":130,"path":490,"isActive":82},"/technical-interview/tasks/prototype-what-logical-values-will-be-received-in-console-log",{"name":121,"path":492,"isActive":82},"/technical-interview/tasks/why-is-it-dangerous-to-write-directly-to-the-prototypes-of-basic-types",{"name":268,"path":494,"isActive":82},"/technical-interview/tasks/what-will-the-following-code-return-object-create-null-has-own-property-to-string",{"name":151,"path":496,"isActive":82},"/technical-interview/tasks/what-value-will-the-console-output-with-object-property",{"name":154,"path":498,"isActive":82},"/technical-interview/tasks/what-will-be-displayed-in-console-log-arr-0-arr-0",{"name":190,"path":500,"isActive":82},"/technical-interview/tasks/what-will-console-log-output-as-a-result-of-executing-the-while-loop",{"name":193,"path":502,"isActive":82},"/technical-interview/tasks/there-is-a-function-and-an-object-write-all-the-ways-you-know-to-output-the-value-of-x-from-an-object-in-the-console-using-the-function",{"name":208,"path":504,"isActive":82},"/technical-interview/tasks/what-will-the-book-get-upper-name-method-return",{"name":427,"path":506,"isActive":82},"/technical-interview/tasks/variables-are-declared-as-follows-specify-the-correct-statement",{"name":214,"path":508,"isActive":82},"/technical-interview/tasks/what-will-the-console-display-if-a-property-is-assigned-to-an-array-using-a-positive-string-index",{"name":196,"path":510,"isActive":82},"/technical-interview/tasks/what-will-the-console-display-if-a-property-is-assigned-to-an-array-using-a-negative-string-index",{"name":199,"path":512,"isActive":82},"/technical-interview/tasks/what-will-the-console-output-if-an-array-element-is-deleted-using-the-delete-operator",{"name":115,"path":514,"isActive":82},"/technical-interview/tasks/what-this-code-will-return-typeof-function",{"name":217,"path":516,"isActive":82},"/technical-interview/tasks/what-will-happen-when-an-object-is-passed-as-an-argument-to-a-function-and-the-code-is-executed",{"name":325,"path":518,"isActive":82},"/technical-interview/tasks/what-are-the-ways-to-declare-a-function-in-javascript",{"name":328,"path":520,"isActive":82},"/technical-interview/tasks/what-is-this-in-javascript",{"name":331,"path":522,"isActive":82},"/technical-interview/tasks/what-is-an-event-loop-and-how-does-it-work",{"name":334,"path":524,"isActive":82},"/technical-interview/tasks/what-happens-if-you-call-typeof-on-an-undeclared-variable",{"name":337,"path":526,"isActive":82},"/technical-interview/tasks/what-does-the-typeof-operator-show-in-javascript",{"name":340,"path":528,"isActive":82},"/technical-interview/tasks/what-types-of-data-exist-in-javascript",{"name":343,"path":530,"isActive":82},"/technical-interview/tasks/what-is-the-best-structure-to-use-for-storing-an-ordered-list-of-strings-in-javascript",{"name":346,"path":532,"isActive":82},"/technical-interview/tasks/what-will-typeof-return-for-an-array",{"name":349,"path":534,"isActive":82},"/technical-interview/tasks/why-does-the-typeof-operator-applied-to-an-array-return-an-object",{"name":352,"path":536,"isActive":82},"/technical-interview/tasks/if-you-need-to-store-a-list-of-unique-strings-which-data-structure-should-i-choose",{"name":355,"path":538,"isActive":82},"/technical-interview/tasks/what-does-typeof-return-for-new-set-in-javascript",{"name":400,"path":540,"isActive":82},"/technical-interview/tasks/why-do-two-objects-with-the-same-content-return-false-when-compared-in-javascript",{"name":406,"path":542,"isActive":82},"/technical-interview/tasks/what-is-the-difference-between-micro-and-macro-tasks-in-javascript",{"name":139,"path":544,"isActive":82},"/technical-interview/tasks/arr-push-0-will-affect-the-array-in-the-same-way-as-if-we-performed",{"name":157,"path":546,"isActive":82},"/technical-interview/tasks/returns-an-array-from-1-to-n-replacing-numbers-that-are-multiples-of-3-with-fizz-numbers-that-are-multiples-of-5-with-buzz-and-numbers-that-are-multiples-of-both-3-and-5-with-fizzbuzz",{"name":142,"path":548,"isActive":82},"/technical-interview/tasks/the-string-one-two-three-four-five-is-given-it-is-necessary-to-make-a-nested-object-out-of-the-string",{"name":172,"path":550,"isActive":82},"/technical-interview/tasks/given-a-tree-nested-object-it-is-necessary-to-find-the-sum-of-all-vertices",{"name":148,"path":552,"isActive":82},"/technical-interview/tasks/for-each-nested-object-you-need-to-add-the-level-property-which-is-equal-to-a-number-the-nesting-number",{"name":175,"path":554,"isActive":82},"/technical-interview/tasks/for-each-branch-of-the-tree-write-down-the-nesting-number-of-this-branch",{"name":166,"path":556,"isActive":82},"/technical-interview/tasks/there-is-an-array-containing-objects-with-dates-that-need-to-be-sorted-by-date",{"name":178,"path":558,"isActive":82},"/technical-interview/tasks/there-are-words-in-the-array-it-is-necessary-to-determine-whether-they-consist-of-the-same-letters",{"name":184,"path":560,"isActive":82},"/technical-interview/tasks/there-is-a-string-consisting-of-different-brackets-it-is-necessary-to-check-whether-all-are-closed",{"name":136,"path":562,"isActive":82},"/technical-interview/tasks/find-non-repeating-numbers-in-an-array",{"name":187,"path":564,"isActive":82},"/technical-interview/tasks/write-a-function-that-will-make-an-object-out-of-an-array",{"name":160,"path":566,"isActive":82},"/technical-interview/tasks/checks-whether-two-strings-are-anagrams-of-each-other",{"name":133,"path":568,"isActive":82},"/technical-interview/tasks/odd-numbers-should-be-sorted-in-ascending-order-and-even-numbers-should-remain-in-their-original-positions",{"name":163,"path":570,"isActive":82},"/technical-interview/tasks/determines-whether-a-word-is-a-palindrome",{"name":205,"path":572,"isActive":82},"/technical-interview/tasks/flattening-the-array",{"name":169,"path":574,"isActive":82},"/technical-interview/tasks/implement-a-function-that-accepts-arguments-1-b-1c-and-the-return-string-1-b-1c",{"name":211,"path":576,"isActive":82},"/technical-interview/tasks/string-compression",{"name":202,"path":578,"isActive":82},"/technical-interview/tasks/unifying-values-in-an-array",{"name":181,"path":580,"isActive":82},"/technical-interview/tasks/the-numbers-from-1-to-100-are-in-the-array-they-are-randomly-mixed-but-it-lacks-one-number-from-this-sequence-it-is-necessary-to-find-him",{"title":582,"list":583,"isOpened":82},"React",[584,586,588,590,592,594,596],{"name":358,"path":585,"isActive":82},"/technical-interview/tasks/what-is-react-used-for-and-what-problems-does-it-solve",{"name":430,"path":587,"isActive":82},"/technical-interview/tasks/what-is-the-underlying-mechanism-for-optimizing-dom-updates-in-react",{"name":361,"path":589,"isActive":82},"/technical-interview/tasks/if-you-remove-the-vdom-fiber-in-react-and-manually-change-the-dom-isn-t-that-optimal",{"name":364,"path":591,"isActive":82},"/technical-interview/tasks/there-is-a-block-of-code-what-changes-in-the-real-dom-after-clicking-the-button",{"name":367,"path":593,"isActive":82},"/technical-interview/tasks/there-is-a-code-in-which-there-is-a-list-and-a-button-what-will-change-in-the-real-dom-after-clicking-on-the-button",{"name":370,"path":595,"isActive":82},"/technical-interview/tasks/why-do-we-need-redux-mobx-effector-why-do-we-need-a-state-manager-what-problems-does-it-solve",{"name":433,"path":597,"isActive":82},"/technical-interview/tasks/what-prevents-you-from-organizing-a-centralized-state-without-a-state-manager-if-you-organize-the-state-using-react-context-and-state-mechanisms-what-is-the-problem-what-do-state-managers-add",{"title":599,"list":600,"isOpened":82},"Алгоритмы",[601,603],{"name":394,"path":602,"isActive":82},"/technical-interview/tasks/what-is-algorithmic-complexity",{"name":397,"path":604,"isActive":82},"/technical-interview/tasks/what-is-the-algorithmic-complexity-of-quick-sort",{"title":606,"list":607,"isOpened":82},"Дебаггинг",[608],{"name":373,"path":609,"isActive":82},"/technical-interview/tasks/how-can-diagnose-and-fix-unwanted-background-color-changes-when-clicking-on-a-button-if-the-source-code-of-the-site-is-confusing-and-inaccessible-to-direct-reading",{"title":611,"list":612,"isOpened":82},"Компьютерные сети",[613,615,617,619,621,623,625,627,629,631,633,635,637,639,641,643,645,647,649,651],{"name":220,"path":614,"isActive":82},"/technical-interview/tasks/how-does-the-browser-know-where-to-get-the-website-after-entering-the-domain",{"name":424,"path":616,"isActive":82},"/technical-interview/tasks/what-is-dns-and-how-does-dns-find-the-correct-ip-address",{"name":223,"path":618,"isActive":82},"/technical-interview/tasks/how-does-a-domain-get-into-the-dns-mapping-table-domain-ip",{"name":226,"path":620,"isActive":82},"/technical-interview/tasks/how-does-a-browser-decide-whether-to-open-a-tcp-or-udp-connection",{"name":229,"path":622,"isActive":82},"/technical-interview/tasks/key-differences-between-tcp-and-udp",{"name":232,"path":624,"isActive":82},"/technical-interview/tasks/tcp-ip-who-is-tcp-and-who-is-ip-in-this-case",{"name":235,"path":626,"isActive":82},"/technical-interview/tasks/what-is-http-and-what-does-it-consist-of",{"name":238,"path":628,"isActive":82},"/technical-interview/tasks/what-are-http-headers-and-why-do-we-need-them",{"name":241,"path":630,"isActive":82},"/technical-interview/tasks/what-are-http-parameters",{"name":244,"path":632,"isActive":82},"/technical-interview/tasks/where-is-the-html-code-located-in-the-http-response-structure",{"name":250,"path":634,"isActive":82},"/technical-interview/tasks/what-are-the-differences-between-http-versions-1-0-1-1-2-0-and-3-0",{"name":253,"path":636,"isActive":82},"/technical-interview/tasks/the-user-is-logged-in-on-the-website-how-does-the-server-know-that-i-am-an-authorized-user-when-the-user-logs-in-again",{"name":256,"path":638,"isActive":82},"/technical-interview/tasks/what-is-a-cookie",{"name":259,"path":640,"isActive":82},"/technical-interview/tasks/who-initiates-the-cookie-recording-in-the-browser",{"name":262,"path":642,"isActive":82},"/technical-interview/tasks/is-it-possible-to-manage-cookies-from-the-client-browser",{"name":421,"path":644,"isActive":82},"/technical-interview/tasks/is-it-true-that-an-attacker-who-controls-a-router-and-listens-to-traffic-can-obtain-logins-and-passwords-from-websites-that-a-client-visits",{"name":271,"path":646,"isActive":82},"/technical-interview/tasks/is-everything-that-goes-through-https-secure",{"name":274,"path":648,"isActive":82},"/technical-interview/tasks/all-data-is-encrypted-https-is-used-let-s-assume-a-hacker-hacks-the-dns-and-makes-a-substitution-of-one-ip-for-another-a-phishing-site",{"name":277,"path":650,"isActive":82},"/technical-interview/tasks/there-is-a-web-application-in-addition-to-http-what-other-protocols-of-the-same-level-application-layer-can-be-used-in-the-web-application-in-browser",{"name":403,"path":652,"isActive":82},"/technical-interview/tasks/how-can-a-user-be-authorized-on-a-website",{"title":654,"list":655,"isOpened":82},"Отрисовка в браузере",[656,658,660,662,664,666],{"name":283,"path":657,"isActive":82},"/technical-interview/tasks/what-happens-when-http-sends-html-what-does-the-browser-do-with-this-html-given-that-it-is-valid",{"name":280,"path":659,"isActive":82},"/technical-interview/tasks/how-the-browser-parses-javascript-and-images-when-rendering",{"name":286,"path":661,"isActive":82},"/technical-interview/tasks/what-is-blocking-the-page-rendering-in-the-browser",{"name":289,"path":663,"isActive":82},"/technical-interview/tasks/what-is-dom-in-a-browser-what-is-cssom",{"name":292,"path":665,"isActive":82},"/technical-interview/tasks/what-are-nodes-in-the-dom",{"name":295,"path":667,"isActive":82},"/technical-interview/tasks/what-does-cssom-consist-of",{"title":669,"list":670,"isOpened":82},"Ревью кода",[671],{"name":385,"path":672,"isActive":82},"/technical-interview/tasks/how-does-a-reviewer-know-which-code-is-good-and-which-code-is-bad",{"title":674,"list":675,"isOpened":82},"Теория вероятности",[676,678,680],{"name":409,"path":677,"isActive":82},"/technical-interview/tasks/there-are-three-people-in-the-room-what-is-the-probability-that-at-least-two-of-them-are-of-the-same-sex-that-is-two-or-more",{"name":412,"path":679,"isActive":82},"/technical-interview/tasks/there-is-a-coin-it-is-tossed-five-times-in-a-row-each-time-it-is-recorded-whether-it-lands-on-heads-or-tails-how-many-different-sequences-of-heads-and-tails-can-be-obtained",{"name":415,"path":681,"isActive":82},"/technical-interview/tasks/how-can-you-guarantee-to-find-an-easy-fake-coin-among-8-in-the-minimum-number-of-weighings-on-a-balance-scale",{"cooperation":683,"copyright":686,"reportError":687,"socialNetwork":689},{"link":684,"title":685},"https://t.me/baurinanton","Сотрудничество","© “GOOD WEB JOB!”",{"label":688,"link":684},"Сообщить об ошибке",{"label":690,"socialNetworkList":691},"Мы в соцсетях:",[692,695,698],{"icon":19,"link":693,"title":694},"https://max.ru/u/f9LHodD0cOKMaukdnnahTeL5pwvjrPfUaZ4S8_1rsNy9I9qsmc9Ar3kP_y8","Max",{"icon":696,"link":684,"title":697},"ic:baseline-telegram","Telegram",{"icon":699,"link":700,"title":701},"ri:vk-fill","https://vk.com/baurinanton","VK",{"data":703,"body":704},{},{"type":705,"children":706},"root",[707],{"type":708,"tag":709,"props":710,"children":711},"element","p",{},[712],{"type":708,"tag":713,"props":714,"children":716},"code",{"className":715},[],[717],{"type":718,"value":719},"text","Ошибка TypeError",{"data":721,"body":722},{},{"type":705,"children":723},[724,729,741],{"type":708,"tag":709,"props":725,"children":726},{},[727],{"type":718,"value":728},"Дан код:",{"type":708,"tag":730,"props":731,"children":735},"pre",{"className":732,"code":734,"language":718},[733],"language-text","const b = [1, 2, 4];\nb[\"-7\"] = 3;\n\nconsole.log(b); // Первый\nconsole.log(b.length); // Второй\nconsole.log(b.map((item) => item)); // Третий\nb.forEach((item) => console.log(item)); // Четвёртый\n",[736],{"type":708,"tag":713,"props":737,"children":739},{"__ignoreMap":738},"",[740],{"type":718,"value":734},{"type":708,"tag":709,"props":742,"children":743},{},[744,746,752],{"type":718,"value":745},"Что выведетcя в ",{"type":708,"tag":713,"props":747,"children":749},{"className":748},[],[750],{"type":718,"value":751},"console.log",{"type":718,"value":753},"-ах?",{"data":755,"body":756},{},{"type":705,"children":757},[758],{"type":708,"tag":709,"props":759,"children":760},{},[761,763,769,771,777,779,784,786],{"type":718,"value":762},"Первый: ",{"type":708,"tag":713,"props":764,"children":766},{"className":765},[],[767],{"type":718,"value":768},"[3, 1, 2, 4]",{"type":718,"value":770},". Второй: ",{"type":708,"tag":713,"props":772,"children":774},{"className":773},[],[775],{"type":718,"value":776},"4",{"type":718,"value":778},". Третий: ",{"type":708,"tag":713,"props":780,"children":782},{"className":781},[],[783],{"type":718,"value":768},{"type":718,"value":785},". Четвёртый: ",{"type":708,"tag":713,"props":787,"children":789},{"className":788},[],[790],{"type":718,"value":791},"3, 1, 2, 4",{"data":793,"body":794},{},{"type":705,"children":795},[796],{"type":708,"tag":709,"props":797,"children":798},{},[799,800,806,807,812,813,818,819],{"type":718,"value":762},{"type":708,"tag":713,"props":801,"children":803},{"className":802},[],[804],{"type":718,"value":805},"[1, 2, 3, 4]",{"type":718,"value":770},{"type":708,"tag":713,"props":808,"children":810},{"className":809},[],[811],{"type":718,"value":776},{"type":718,"value":778},{"type":708,"tag":713,"props":814,"children":816},{"className":815},[],[817],{"type":718,"value":805},{"type":718,"value":785},{"type":708,"tag":713,"props":820,"children":822},{"className":821},[],[823],{"type":718,"value":824},"1, 2, 3, 4",{"data":826,"body":827},{},{"type":705,"children":828},[829],{"type":708,"tag":709,"props":830,"children":831},{},[832,833,839,840,846,847,853,854],{"type":718,"value":762},{"type":708,"tag":713,"props":834,"children":836},{"className":835},[],[837],{"type":718,"value":838},"[1, 2, 4, '-7': 3]",{"type":718,"value":770},{"type":708,"tag":713,"props":841,"children":843},{"className":842},[],[844],{"type":718,"value":845},"3",{"type":718,"value":778},{"type":708,"tag":713,"props":848,"children":850},{"className":849},[],[851],{"type":718,"value":852},"[1, 2, 4]",{"type":718,"value":785},{"type":708,"tag":713,"props":855,"children":857},{"className":856},[],[858],{"type":718,"value":859},"1, 2, 4",{"data":861,"body":862},{},{"type":705,"children":863},[864],{"type":708,"tag":709,"props":865,"children":866},{},[867,869,875,877,883,885,891,893,899,901,907],{"type":718,"value":868},"Следует разделять «элементы массива» (ключи ",{"type":708,"tag":713,"props":870,"children":872},{"className":871},[],[873],{"type":718,"value":874},"0..length-1",{"type":718,"value":876},") и «обычные свойства объекта» (например, ",{"type":708,"tag":713,"props":878,"children":880},{"className":879},[],[881],{"type":718,"value":882},"\"-7\"",{"type":718,"value":884},"), затем отдельно помнить, что ",{"type":708,"tag":713,"props":886,"children":888},{"className":887},[],[889],{"type":718,"value":890},"map()",{"type":718,"value":892}," возвращает новый массив, а ",{"type":708,"tag":713,"props":894,"children":896},{"className":895},[],[897],{"type":718,"value":898},"forEach()",{"type":718,"value":900}," возвращает ",{"type":708,"tag":713,"props":902,"children":904},{"className":903},[],[905],{"type":718,"value":906},"undefined",{"type":718,"value":908},".",{"data":910,"body":911},{},{"type":705,"children":912},[913],{"type":708,"tag":709,"props":914,"children":915},{},[916,918,924,926,932,934,938],{"type":718,"value":917},"Правильный вариант: ",{"type":708,"tag":919,"props":920,"children":921},"strong",{},[922],{"type":718,"value":923},"третий",{"type":718,"value":925}," - Первый: ",{"type":708,"tag":927,"props":928,"children":929},"span",{},[930],{"type":718,"value":931},"1, 2, 4, '-7': 3",{"type":718,"value":933},". Второй: 3. Третий: ",{"type":708,"tag":927,"props":935,"children":936},{},[937],{"type":718,"value":859},{"type":718,"value":939},". Четвёртый: 1, 2, 4",{"data":941,"body":942},{},{"type":705,"children":943},[944,949,1001],{"type":708,"tag":709,"props":945,"children":946},{},[947],{"type":718,"value":948},"В JavaScript массив является объектом. Это означает, что у массива существуют:",{"type":708,"tag":950,"props":951,"children":952},"ul",{},[953,982],{"type":708,"tag":954,"props":955,"children":956},"li",{},[957,959,965,967,973,974,980],{"type":718,"value":958},"Элементы массива по индексам ",{"type":708,"tag":713,"props":960,"children":962},{"className":961},[],[963],{"type":718,"value":964},"0",{"type":718,"value":966},", ",{"type":708,"tag":713,"props":968,"children":970},{"className":969},[],[971],{"type":718,"value":972},"1",{"type":718,"value":966},{"type":708,"tag":713,"props":975,"children":977},{"className":976},[],[978],{"type":718,"value":979},"2",{"type":718,"value":981},", ... (это «индексные» свойства).",{"type":708,"tag":954,"props":983,"children":984},{},[985,987,993,994,999],{"type":718,"value":986},"Обычные свойства объекта с любыми строковыми ключами (например, ",{"type":708,"tag":713,"props":988,"children":990},{"className":989},[],[991],{"type":718,"value":992},"\"foo\"",{"type":718,"value":966},{"type":708,"tag":713,"props":995,"children":997},{"className":996},[],[998],{"type":718,"value":882},{"type":718,"value":1000}," и т.д.).",{"type":708,"tag":709,"props":1002,"children":1003},{},[1004,1006,1012,1014,1019,1021,1027],{"type":718,"value":1005},"Запись ",{"type":708,"tag":713,"props":1007,"children":1009},{"className":1008},[],[1010],{"type":718,"value":1011},"b[\"-7\"] = 3",{"type":718,"value":1013}," добавляет (или изменяет) свойство объекта с именем ",{"type":708,"tag":713,"props":1015,"children":1017},{"className":1016},[],[1018],{"type":718,"value":882},{"type":718,"value":1020},", а не «элемент массива с индексом -7». Отрицательные «индексы» в JavaScript-массивах не являются индексами массива и не участвуют в механике ",{"type":708,"tag":713,"props":1022,"children":1024},{"className":1023},[],[1025],{"type":718,"value":1026},"length",{"type":718,"value":908},{"data":1029,"body":1030},{},{"type":705,"children":1031},[1032],{"type":708,"tag":709,"props":1033,"children":1034},{},[1035,1037,1043,1045,1051,1053,1059],{"type":718,"value":1036},"Ключ свойства при обращении в квадратных скобках фактически является строкой. Поэтому ",{"type":708,"tag":713,"props":1038,"children":1040},{"className":1039},[],[1041],{"type":718,"value":1042},"b[\"2\"]",{"type":718,"value":1044}," и ",{"type":708,"tag":713,"props":1046,"children":1048},{"className":1047},[],[1049],{"type":718,"value":1050},"b[2]",{"type":718,"value":1052}," обращаются к одному и тому же индексному элементу, а ",{"type":708,"tag":713,"props":1054,"children":1056},{"className":1055},[],[1057],{"type":718,"value":1058},"b[\"-7\"]",{"type":718,"value":1060}," — к неиндексному свойству.",{"data":1062,"body":1063},{},{"type":705,"children":1064},[1065,1112,1156,1161],{"type":708,"tag":709,"props":1066,"children":1067},{},[1068,1070,1076,1077,1083,1084,1090,1091,1097,1099,1103,1105,1110],{"type":718,"value":1069},"У массива есть специальное правило: строковый ключ считается индексом массива только если он выглядит как неотрицательное целое число в канонической форме (например, ",{"type":708,"tag":713,"props":1071,"children":1073},{"className":1072},[],[1074],{"type":718,"value":1075},"\"0\"",{"type":718,"value":966},{"type":708,"tag":713,"props":1078,"children":1080},{"className":1079},[],[1081],{"type":718,"value":1082},"\"1\"",{"type":718,"value":966},{"type":708,"tag":713,"props":1085,"children":1087},{"className":1086},[],[1088],{"type":718,"value":1089},"\"2\"",{"type":718,"value":966},{"type":708,"tag":713,"props":1092,"children":1094},{"className":1093},[],[1095],{"type":718,"value":1096},"\"10\"",{"type":718,"value":1098},").",{"type":708,"tag":1100,"props":1101,"children":1102},"br",{},[],{"type":718,"value":1104},"\nСтрока ",{"type":708,"tag":713,"props":1106,"children":1108},{"className":1107},[],[1109],{"type":718,"value":882},{"type":718,"value":1111}," этому условию не соответствует, поэтому:",{"type":708,"tag":950,"props":1113,"children":1114},{},[1115,1127,1145],{"type":708,"tag":954,"props":1116,"children":1117},{},[1118,1120,1125],{"type":718,"value":1119},"не изменяет ",{"type":708,"tag":713,"props":1121,"children":1123},{"className":1122},[],[1124],{"type":718,"value":1026},{"type":718,"value":1126},",",{"type":708,"tag":954,"props":1128,"children":1129},{},[1130,1132,1137,1138,1143],{"type":718,"value":1131},"не участвует в обходах ",{"type":708,"tag":713,"props":1133,"children":1135},{"className":1134},[],[1136],{"type":718,"value":890},{"type":718,"value":966},{"type":708,"tag":713,"props":1139,"children":1141},{"className":1140},[],[1142],{"type":718,"value":898},{"type":718,"value":1144}," как элемент массива,",{"type":708,"tag":954,"props":1146,"children":1147},{},[1148,1150,1155],{"type":718,"value":1149},"не отображается как обычный элемент ",{"type":708,"tag":713,"props":1151,"children":1153},{"className":1152},[],[1154],{"type":718,"value":874},{"type":718,"value":908},{"type":708,"tag":709,"props":1157,"children":1158},{},[1159],{"type":718,"value":1160},"Ниже приведён ориентир по ключам:",{"type":708,"tag":1162,"props":1163,"children":1164},"table",{},[1165,1194],{"type":708,"tag":1166,"props":1167,"children":1168},"thead",{},[1169],{"type":708,"tag":1170,"props":1171,"children":1172},"tr",{},[1173,1179,1184],{"type":708,"tag":1174,"props":1175,"children":1176},"th",{},[1177],{"type":718,"value":1178},"Ключ свойства",{"type":708,"tag":1174,"props":1180,"children":1181},{},[1182],{"type":718,"value":1183},"Считается индексом массива",{"type":708,"tag":1174,"props":1185,"children":1186},{},[1187,1189],{"type":718,"value":1188},"Влияет на ",{"type":708,"tag":713,"props":1190,"children":1192},{"className":1191},[],[1193],{"type":718,"value":1026},{"type":708,"tag":1195,"props":1196,"children":1197},"tbody",{},[1198,1239,1259,1280],{"type":708,"tag":1170,"props":1199,"children":1200},{},[1201,1222,1227],{"type":708,"tag":1202,"props":1203,"children":1204},"td",{},[1205,1210,1211,1216,1217],{"type":708,"tag":713,"props":1206,"children":1208},{"className":1207},[],[1209],{"type":718,"value":1075},{"type":718,"value":966},{"type":708,"tag":713,"props":1212,"children":1214},{"className":1213},[],[1215],{"type":718,"value":1082},{"type":718,"value":966},{"type":708,"tag":713,"props":1218,"children":1220},{"className":1219},[],[1221],{"type":718,"value":1089},{"type":708,"tag":1202,"props":1223,"children":1224},{},[1225],{"type":718,"value":1226},"Да",{"type":708,"tag":1202,"props":1228,"children":1229},{},[1230,1232,1237],{"type":718,"value":1231},"Да (если индекс ≥ текущего ",{"type":708,"tag":713,"props":1233,"children":1235},{"className":1234},[],[1236],{"type":718,"value":1026},{"type":718,"value":1238},")",{"type":708,"tag":1170,"props":1240,"children":1241},{},[1242,1250,1255],{"type":708,"tag":1202,"props":1243,"children":1244},{},[1245],{"type":708,"tag":713,"props":1246,"children":1248},{"className":1247},[],[1249],{"type":718,"value":882},{"type":708,"tag":1202,"props":1251,"children":1252},{},[1253],{"type":718,"value":1254},"Нет",{"type":708,"tag":1202,"props":1256,"children":1257},{},[1258],{"type":718,"value":1254},{"type":708,"tag":1170,"props":1260,"children":1261},{},[1262,1271,1276],{"type":708,"tag":1202,"props":1263,"children":1264},{},[1265],{"type":708,"tag":713,"props":1266,"children":1268},{"className":1267},[],[1269],{"type":718,"value":1270},"\"03\"",{"type":708,"tag":1202,"props":1272,"children":1273},{},[1274],{"type":718,"value":1275},"Нет (не канонично)",{"type":708,"tag":1202,"props":1277,"children":1278},{},[1279],{"type":718,"value":1254},{"type":708,"tag":1170,"props":1281,"children":1282},{},[1283,1292,1296],{"type":708,"tag":1202,"props":1284,"children":1285},{},[1286],{"type":708,"tag":713,"props":1287,"children":1289},{"className":1288},[],[1290],{"type":718,"value":1291},"\"3.5\"",{"type":708,"tag":1202,"props":1293,"children":1294},{},[1295],{"type":718,"value":1254},{"type":708,"tag":1202,"props":1297,"children":1298},{},[1299],{"type":718,"value":1254},{"data":1301,"body":1302},{},{"type":705,"children":1303},[1304,1309,1318,1329,1376,1387,1451,1456],{"type":708,"tag":709,"props":1305,"children":1306},{},[1307],{"type":718,"value":1308},"Исходный код:",{"type":708,"tag":730,"props":1310,"children":1313},{"className":1311,"code":1312,"language":718},[733],"const b = [1, 2, 4];\nb[\"-7\"] = 3;\n\nconsole.log(b); // Первый\nconsole.log(b.length); // Второй\nconsole.log(b.map((item) => item)); // Третий\nconsole.log(b.forEach((item) => console.log(item))); // Четвёртый\n",[1314],{"type":708,"tag":713,"props":1315,"children":1316},{"__ignoreMap":738},[1317],{"type":718,"value":1312},{"type":708,"tag":709,"props":1319,"children":1320},{},[1321,1323],{"type":718,"value":1322},"Шаг 1: ",{"type":708,"tag":713,"props":1324,"children":1326},{"className":1325},[],[1327],{"type":718,"value":1328},"const b = [1, 2, 4];",{"type":708,"tag":950,"props":1330,"children":1331},{},[1332,1358],{"type":708,"tag":954,"props":1333,"children":1334},{},[1335,1337,1343,1344,1350,1351,1357],{"type":718,"value":1336},"Создаются элементы: ",{"type":708,"tag":713,"props":1338,"children":1340},{"className":1339},[],[1341],{"type":718,"value":1342},"b[0] = 1",{"type":718,"value":966},{"type":708,"tag":713,"props":1345,"children":1347},{"className":1346},[],[1348],{"type":718,"value":1349},"b[1] = 2",{"type":718,"value":966},{"type":708,"tag":713,"props":1352,"children":1354},{"className":1353},[],[1355],{"type":718,"value":1356},"b[2] = 4",{"type":718,"value":908},{"type":708,"tag":954,"props":1359,"children":1360},{},[1361,1367,1369,1374],{"type":708,"tag":713,"props":1362,"children":1364},{"className":1363},[],[1365],{"type":718,"value":1366},"b.length",{"type":718,"value":1368}," становится ",{"type":708,"tag":713,"props":1370,"children":1372},{"className":1371},[],[1373],{"type":718,"value":845},{"type":718,"value":1375}," (количество позиций до индекса 2 включительно).",{"type":708,"tag":709,"props":1377,"children":1378},{},[1379,1381],{"type":718,"value":1380},"Шаг 2: ",{"type":708,"tag":713,"props":1382,"children":1384},{"className":1383},[],[1385],{"type":718,"value":1386},"b[\"-7\"] = 3;",{"type":708,"tag":950,"props":1388,"children":1389},{},[1390,1408,1434],{"type":708,"tag":954,"props":1391,"children":1392},{},[1393,1395,1400,1402,1407],{"type":718,"value":1394},"Создаётся обычное свойство объекта-массива: ключ ",{"type":708,"tag":713,"props":1396,"children":1398},{"className":1397},[],[1399],{"type":718,"value":882},{"type":718,"value":1401},", значение ",{"type":708,"tag":713,"props":1403,"children":1405},{"className":1404},[],[1406],{"type":718,"value":845},{"type":718,"value":908},{"type":708,"tag":954,"props":1409,"children":1410},{},[1411,1413,1419,1420,1426,1427,1432],{"type":718,"value":1412},"Элементы ",{"type":708,"tag":713,"props":1414,"children":1416},{"className":1415},[],[1417],{"type":718,"value":1418},"b[0]",{"type":718,"value":966},{"type":708,"tag":713,"props":1421,"children":1423},{"className":1422},[],[1424],{"type":718,"value":1425},"b[1]",{"type":718,"value":966},{"type":708,"tag":713,"props":1428,"children":1430},{"className":1429},[],[1431],{"type":718,"value":1050},{"type":718,"value":1433}," не меняются.",{"type":708,"tag":954,"props":1435,"children":1436},{},[1437,1442,1444,1449],{"type":708,"tag":713,"props":1438,"children":1440},{"className":1439},[],[1441],{"type":718,"value":1366},{"type":718,"value":1443}," не меняется, потому что ключ ",{"type":708,"tag":713,"props":1445,"children":1447},{"className":1446},[],[1448],{"type":718,"value":882},{"type":718,"value":1450}," не индексный.",{"type":708,"tag":709,"props":1452,"children":1453},{},[1454],{"type":718,"value":1455},"Состояние можно представить так:",{"type":708,"tag":730,"props":1457,"children":1460},{"className":1458,"code":1459,"language":718},[733],"b (Array-объект)\n- индексные элементы:\n  - \"0\" -> 1\n  - \"1\" -> 2\n  - \"2\" -> 4\n- обычные свойства:\n  - \"-7\" -> 3\n- length -> 3\n",[1461],{"type":708,"tag":713,"props":1462,"children":1463},{"__ignoreMap":738},[1464],{"type":718,"value":1459},{"data":1466,"body":1467},{},{"type":705,"children":1468},[1469,1493],{"type":708,"tag":709,"props":1470,"children":1471},{},[1472,1474,1479,1480,1483,1485,1491],{"type":718,"value":1473},"В консоли будет показан массив с тремя элементами и дополнительным свойством ",{"type":708,"tag":713,"props":1475,"children":1477},{"className":1476},[],[1478],{"type":718,"value":882},{"type":718,"value":908},{"type":708,"tag":1100,"props":1481,"children":1482},{},[],{"type":718,"value":1484},"\nЧасто это выглядит примерно так: ",{"type":708,"tag":713,"props":1486,"children":1488},{"className":1487},[],[1489],{"type":718,"value":1490},"[ 1, 2, 4, '-7': 3 ]",{"type":718,"value":1492},", но точный формат отображения зависит от среды (браузер, Node.js, настройки DevTools).",{"type":708,"tag":709,"props":1494,"children":1495},{},[1496,1498,1503,1505,1511],{"type":718,"value":1497},"Важно, что элементы массива остаются ",{"type":708,"tag":713,"props":1499,"children":1501},{"className":1500},[],[1502],{"type":718,"value":852},{"type":718,"value":1504},", а ",{"type":708,"tag":713,"props":1506,"children":1508},{"className":1507},[],[1509],{"type":718,"value":1510},"\"-7\": 3",{"type":718,"value":1512}," — именно свойство, а не «вставка» внутрь списка элементов.",{"data":1514,"body":1515},{},{"type":705,"children":1516},[1517],{"type":708,"tag":709,"props":1518,"children":1519},{},[1520,1522,1527,1528,1531,1536,1538,1543,1545,1550],{"type":718,"value":1521},"Будет выведено ",{"type":708,"tag":713,"props":1523,"children":1525},{"className":1524},[],[1526],{"type":718,"value":845},{"type":718,"value":908},{"type":708,"tag":1100,"props":1529,"children":1530},{},[],{"type":708,"tag":713,"props":1532,"children":1534},{"className":1533},[],[1535],{"type":718,"value":1026},{"type":718,"value":1537}," связан с индексными ключами (",{"type":708,"tag":713,"props":1539,"children":1541},{"className":1540},[],[1542],{"type":718,"value":874},{"type":718,"value":1544},") и не увеличивается от присваивания по неиндексному ключу ",{"type":708,"tag":713,"props":1546,"children":1548},{"className":1547},[],[1549],{"type":718,"value":882},{"type":718,"value":908},{"data":1552,"body":1553},{},{"type":705,"children":1554},[1555,1608,1620],{"type":708,"tag":709,"props":1556,"children":1557},{},[1558,1559,1564,1565,1568,1573,1575,1580,1582,1587,1588,1593,1594,1599,1601,1606],{"type":718,"value":1521},{"type":708,"tag":713,"props":1560,"children":1562},{"className":1561},[],[1563],{"type":718,"value":852},{"type":718,"value":908},{"type":708,"tag":1100,"props":1566,"children":1567},{},[],{"type":708,"tag":713,"props":1569,"children":1571},{"className":1570},[],[1572],{"type":718,"value":890},{"type":718,"value":1574}," создаёт новый массив длины ",{"type":708,"tag":713,"props":1576,"children":1578},{"className":1577},[],[1579],{"type":718,"value":1366},{"type":718,"value":1581}," и применяет колбэк только к индексным элементам (позициям ",{"type":708,"tag":713,"props":1583,"children":1585},{"className":1584},[],[1586],{"type":718,"value":964},{"type":718,"value":966},{"type":708,"tag":713,"props":1589,"children":1591},{"className":1590},[],[1592],{"type":718,"value":972},{"type":718,"value":966},{"type":708,"tag":713,"props":1595,"children":1597},{"className":1596},[],[1598],{"type":718,"value":979},{"type":718,"value":1600},"), а свойство ",{"type":708,"tag":713,"props":1602,"children":1604},{"className":1603},[],[1605],{"type":718,"value":882},{"type":718,"value":1607}," в этот обход не попадает.",{"type":708,"tag":709,"props":1609,"children":1610},{},[1611,1613,1618],{"type":718,"value":1612},"Пример того, что делает ",{"type":708,"tag":713,"props":1614,"children":1616},{"className":1615},[],[1617],{"type":718,"value":890},{"type":718,"value":1619}," по смыслу:",{"type":708,"tag":730,"props":1621,"children":1624},{"className":1622,"code":1623,"language":718},[733],"// Смысловая модель (упрощённо)\nconst result = [];\nfor (let i = 0; i \u003C b.length; i++) {\n  // берётся именно b[i], а не b[\"-7\"]\n  result[i] = b[i];\n}\nconsole.log(result);\n",[1625],{"type":708,"tag":713,"props":1626,"children":1627},{"__ignoreMap":738},[1628],{"type":718,"value":1623},{"data":1630,"body":1631},{},{"type":705,"children":1632},[1633,1646],{"type":708,"tag":709,"props":1634,"children":1635},{},[1636,1638,1644],{"type":718,"value":1637},"Вызов ",{"type":708,"tag":713,"props":1639,"children":1641},{"className":1640},[],[1642],{"type":718,"value":1643},"console.log(item)",{"type":718,"value":1645}," выведет элементы массива по порядку:",{"type":708,"tag":730,"props":1647,"children":1650},{"className":1648,"code":1649,"language":718},[733],"1\n2\n4\n",[1651],{"type":708,"tag":713,"props":1652,"children":1653},{"__ignoreMap":738},[1654],{"type":718,"value":1649},{"data":1656,"body":1657},{},{"type":705,"children":1658},[1659],{"type":708,"tag":950,"props":1660,"children":1661},{},[1662,1681,1699,1732],{"type":708,"tag":954,"props":1663,"children":1664},{},[1665,1667,1672,1674,1679],{"type":718,"value":1666},"Варианты с ",{"type":708,"tag":713,"props":1668,"children":1670},{"className":1669},[],[1671],{"type":718,"value":768},{"type":718,"value":1673}," предполагают «вставку в начало» или «сдвиг элементов», но присваивание ",{"type":708,"tag":713,"props":1675,"children":1677},{"className":1676},[],[1678],{"type":718,"value":1058},{"type":718,"value":1680}," сдвигов не делает.",{"type":708,"tag":954,"props":1682,"children":1683},{},[1684,1685,1691,1693,1698],{"type":718,"value":1666},{"type":708,"tag":713,"props":1686,"children":1688},{"className":1687},[],[1689],{"type":718,"value":1690},"length = 4",{"type":718,"value":1692}," предполагают, что добавилось 4-е индексное значение, но ключ ",{"type":708,"tag":713,"props":1694,"children":1696},{"className":1695},[],[1697],{"type":718,"value":882},{"type":718,"value":1450},{"type":708,"tag":954,"props":1700,"children":1701},{},[1702,1704,1709,1710,1716,1718,1723,1725,1730],{"type":718,"value":1703},"Варианты, где ",{"type":708,"tag":713,"props":1705,"children":1707},{"className":1706},[],[1708],{"type":718,"value":890},{"type":718,"value":900},{"type":708,"tag":713,"props":1711,"children":1713},{"className":1712},[],[1714],{"type":718,"value":1715},"... '-7': 3 ...",{"type":718,"value":1717},", неверны, потому что ",{"type":708,"tag":713,"props":1719,"children":1721},{"className":1720},[],[1722],{"type":718,"value":890},{"type":718,"value":1724}," обходит индексные позиции ",{"type":708,"tag":713,"props":1726,"children":1728},{"className":1727},[],[1729],{"type":718,"value":874},{"type":718,"value":1731},", а не произвольные свойства.",{"type":708,"tag":954,"props":1733,"children":1734},{},[1735,1737,1743,1744,1750],{"type":718,"value":1736},"Вариант «Ошибка TypeError» не подходит, потому что операции корректны: присваивание свойства допустимо, ",{"type":708,"tag":713,"props":1738,"children":1740},{"className":1739},[],[1741],{"type":718,"value":1742},"map",{"type":718,"value":1044},{"type":708,"tag":713,"props":1745,"children":1747},{"className":1746},[],[1748],{"type":718,"value":1749},"forEach",{"type":718,"value":1751}," существуют у массивов.",{"data":1753,"body":1754},{},{"type":705,"children":1755},[1756],{"type":708,"tag":709,"props":1757,"children":1758},{},[1759,1761,1767,1769,1774,1776,1782,1784,1789,1791,1796,1797,1802,1804,1810,1811,1816,1818,1824,1826,1831,1833,1838],{"type":718,"value":1760},"Кратко: ",{"type":708,"tag":713,"props":1762,"children":1764},{"className":1763},[],[1765],{"type":718,"value":1766},"b[\"-7\"]=3",{"type":718,"value":1768}," добавляет неиндексное свойство ",{"type":708,"tag":713,"props":1770,"children":1772},{"className":1771},[],[1773],{"type":718,"value":882},{"type":718,"value":1775},", поэтому ",{"type":708,"tag":713,"props":1777,"children":1779},{"className":1778},[],[1780],{"type":718,"value":1781},"b",{"type":718,"value":1783}," отображается с этим свойством, ",{"type":708,"tag":713,"props":1785,"children":1787},{"className":1786},[],[1788],{"type":718,"value":1026},{"type":718,"value":1790}," остаётся ",{"type":708,"tag":713,"props":1792,"children":1794},{"className":1793},[],[1795],{"type":718,"value":845},{"type":718,"value":966},{"type":708,"tag":713,"props":1798,"children":1800},{"className":1799},[],[1801],{"type":718,"value":890},{"type":718,"value":1803}," даёт ",{"type":708,"tag":713,"props":1805,"children":1807},{"className":1806},[],[1808],{"type":718,"value":1809},"[1,2,4]",{"type":718,"value":1504},{"type":708,"tag":713,"props":1812,"children":1814},{"className":1813},[],[1815],{"type":718,"value":898},{"type":718,"value":1817}," печатает ",{"type":708,"tag":713,"props":1819,"children":1821},{"className":1820},[],[1822],{"type":718,"value":1823},"1 2 4",{"type":718,"value":1825}," и возвращает ",{"type":708,"tag":713,"props":1827,"children":1829},{"className":1828},[],[1830],{"type":718,"value":906},{"type":718,"value":1832},", который выводится внешним ",{"type":708,"tag":713,"props":1834,"children":1836},{"className":1835},[],[1837],{"type":718,"value":751},{"type":718,"value":908},1775735655417]