Привет, читатель,
Я собираюсь объяснить вопрос по кодированию интервью на JavaScript. Как работает компилятор JavaScript и что он на самом деле выдает на выходе.
Я разберу каждую часть вывода, объясню, почему он выглядит таким образом, и соединю его с конкретными строками кода, ответственными за
let a = {}; let b = { key: 'b' }; let c = { key: 'c' }; a[b] = 123; a[c] = 456; console.log(a[b])
Прежде чем мы углубимся в детали, взгляните на этот фрагмент кода. Попробуйте угадать, какой будет результат, исходя из вашего текущего понимания. Этот подход не только помогает закрепить ваши навыки работы с JavaScript, но и делает последующее объяснение гораздо более содержательным
«Подумайте, как JavaScript будет обрабатывать каждую строку. Как только вы сделаете свое предположение, продолжайте читать, чтобы увидеть, правильно ли вы все поняли!»
let a = {};
Выше кода создается пустой объект и присваивается переменной 'a'.
let b = { key: 'b' };
Эта строка создает объект с одним ключом свойства и значением «b» и присваивает его переменной «b».
let c = { key: 'c' };
Эта строка создает объект с одним ключом свойства и значением «c» и присваивает его переменной «c».
a[b] = 123;
a[b] = 123 Эта строка устанавливает свойство объекта a с использованием объекта b в качестве ключа. В JavaScript, когда объект используется в качестве ключа в другом объекте, объект сначала преобразуется в строку с помощью метода toString(). В этом случае строковое представление объекта b — это "[object Object]" . Итак, свойству "[object Object]" объекта a присвоено значение 123.
a[c] = 456;
Подобно предыдущему шагу, "c" также является объектом и преобразуется в строку, он становится ""[object Object]"".
Поэтому строка a[c] = 456; эквивалентна "a[object Object]"=456, что означает, что объект имеет "[object Свойство Object]" и его значение равно 456.
console.log(a[b])
Выход: 456. когда вы пытаетесь получить доступ к свойству "a[b]", javascript снова преобразует b в строку, которая имеет вид "[object Object]". Поскольку у объекта есть свойство с ключом "[object Object]" и его значением является 456. Таким образом, он напечатает результат.
В разделе «Сводка» код демонстрирует, что когда объект используется в качестве ключа в другом объекте, объект сначала преобразуется в строковое представление, которым по умолчанию является «[object Object]». Это означает, что объекты b и c рассматриваются как один и тот же ключ, и извлекается последнее значение, присвоенное этому ключу.
Я надеюсь, что это объяснение не только прояснило код, но и вызвало любопытство для дальнейшего изучения. JavaScript полон сюрпризов и мощных инструментов, и каждая часть, которую вы изучаете, приближает вас к его освоению.
Спасибо за чтение, и я надеюсь, что вам понравился этот обзор! Не стесняйтесь делиться своими мыслями, вопросами или идеями для будущих тем в комментариях.
Удачного программирования!
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3