Каталог
Веб-разработка с нуля: четыре курса по порядку.
HTML, затем CSS, JavaScript и SQL. Каждый курс говорит, что нужно знать до него и что вы будете уметь после.
Загружаем курсы…
Каталог
HTML, затем CSS, JavaScript и SQL. Каждый курс говорит, что нужно знать до него и что вы будете уметь после.
Загружаем курсы…
Урок 57 из 114 · 9 мин
Семь примитивов и объекты, передача по значению и по ссылке, приведение типов, Object.is и SameValueZero.
Первая часть пройдена. Теперь разберём JavaScript полностью — каждую конструкцию и каждый встроенный метод.
Ха! Тогда я спрячусь в мелочах: в копиях объектов, в NaN и минус нуле.
number, bigint, string, boolean, undefined, null, symbol. Они неизменяемы и копируются целиком. Всё остальное — объекты.let a = "блокнот";
let b = a;
b = "пенал";
console.log(a, b);const cart = ["Блокнот"];
const same = cart;
same.push("Пенал");
console.log(cart);"5" * 2 → 10, "5" + 2 → "52", [] + {} → строка. В условиях — к boolean.console.log("5" * 2, "5" + 2, true + 1, [] + []);Object.is()===, но Object.is(NaN, NaN) — true, а Object.is(0, -0) — false.===.console.log(NaN === NaN, Object.is(NaN, NaN), Object.is(0, -0));===, но NaN равен NaN. Так сравнивают includes, ключи Map и элементы Set.[NaN].includes(NaN) — true, а indexOf — −1.console.log([NaN].includes(NaN), [NaN].indexOf(NaN));Скопировал объект через = — у тебя не копия, а вторая ссылка на тот же объект.
Сделай copy — независимую копию массива cart (через spread), добавь в копию "Ластик", а в same сравни cart и copy через Object.is.
Выберите один ответ.
Что выведет const a = { n: 1 }; const b = a; b.n = 2; console.log(a.n);?
Выберите один ответ.
Что вернёт Object.is(NaN, NaN)?
Проверяем состояние обучения…