👍1
Какие типы данных есть в JS?
Есть восемь основных типов данных в JavaScript.
1. Number представляет как целочисленные значения, так и числа с плавающей точкой.
Оно означает, что «значение не было присвоено».
Объекты используются для хранения коллекций данных или более сложных объектов.
Есть восемь основных типов данных в JavaScript.
1. Number представляет как целочисленные значения, так и числа с плавающей точкой.
let n = 123;2. BigInt позволяет работать с целыми числами произвольной длины.
const bigInt = 1234567890123456789012345678901234567890n;3. String в JavaScript должна быть заключена в кавычки.
let str = "Привет";4. Boolean)может принимать только два значения: true (истина) и false (ложь).
let nameFieldChecked = true;5. Null формирует отдельный тип, который содержит только значение null:
let ageFieldChecked = false;
let age = null;6. Undefined формирует тип из самого себя так же, как и null.
Оно означает, что «значение не было присвоено».
let x;7. Тип object (объект) – особенный.
alert(x); // выведет "undefined"
Объекты используются для хранения коллекций данных или более сложных объектов.
const object = {
name="Hello"
}
8. Тип symbol (символ) используется для создания уникальных идентификаторов объектов.var sym1 = Symbol();
❤1
👍1
Что значит ссылка на переменную?
Одним из фундаментальных отличий объектов от примитивных типов данных является то, что они хранятся и копируются «по ссылке».
Примитивные типы: строки, числа, логические значения – присваиваются и копируются «по значению».
Например:
Объекты ведут себя иначе.
Сам объект хранится где-то в памяти. А в переменной лежит «ссылка» на эту область памяти.
Когда переменная объекта копируется – копируется ссылка, сам же объект не дублируется.
Если мы представляем объект как ящик, то переменная – это ключ к нему. Копирование переменной дублирует ключ, но не сам ящик.
Например:
Одним из фундаментальных отличий объектов от примитивных типов данных является то, что они хранятся и копируются «по ссылке».
Примитивные типы: строки, числа, логические значения – присваиваются и копируются «по значению».
Например:
let message = "Hello!";
let phrase = message;
В результате мы имеем две независимые переменные, каждая из которых хранит строку "Hello!".Объекты ведут себя иначе.
Сам объект хранится где-то в памяти. А в переменной лежит «ссылка» на эту область памяти.
Когда переменная объекта копируется – копируется ссылка, сам же объект не дублируется.
Если мы представляем объект как ящик, то переменная – это ключ к нему. Копирование переменной дублирует ключ, но не сам ящик.
Например:
let user = { name: "John" };
let admin = user; // копируется ссылка
Теперь у нас есть две переменные, каждая из которых содержит ссылку на один и тот же объект и мы можем использовать любую из переменных для доступа и изменения содержимого.Гудлиф П. "Ремесло программиста. Практика написания хорошего кода"
Книга Питера Гудлифа «Ремесло программиста» поможет вам перейти на более высокий уровень мастерства программирования и покажет, как писать код, который больше чем «просто работает».
Перед вами руководство по выживанию в условиях промышленного производства ПО. Эта книга посвящена тому, чему вас никто не учил: как правильно программировать в реальной жизни. Здесь вы найдете не связанные с конкретными языками рекомендации, полезные всем разработчикам и касающиеся таких проблем, как стиль представления, выбор имен переменных, обработка ошибок, безопасность, эффективность групповой работы, технологии разработки и составление документации.
Читатель должен обладать опытом программирования, ибо книга не учит программированию - она учит правильно программировать. Издание будет полезно и студентам старших курсов, знакомым с принципами программирования.
Книга Питера Гудлифа «Ремесло программиста» поможет вам перейти на более высокий уровень мастерства программирования и покажет, как писать код, который больше чем «просто работает».
Перед вами руководство по выживанию в условиях промышленного производства ПО. Эта книга посвящена тому, чему вас никто не учил: как правильно программировать в реальной жизни. Здесь вы найдете не связанные с конкретными языками рекомендации, полезные всем разработчикам и касающиеся таких проблем, как стиль представления, выбор имен переменных, обработка ошибок, безопасность, эффективность групповой работы, технологии разработки и составление документации.
Читатель должен обладать опытом программирования, ибо книга не учит программированию - она учит правильно программировать. Издание будет полезно и студентам старших курсов, знакомым с принципами программирования.
CSS Что делает свойство margin? Какие есть особенности у отрицательных значений? Что такое margin collapsing?
margin - Устанавливает величину отступа от каждого края элемента.
Отрицательные
Отрицательные
Если у элемента нет родителя, отступом будет расстояние от края элемента до края окна браузера с учетом того, что у самого окна по умолчанию тоже установлены отступы. Чтобы от них избавиться, следует устанавливать значение margin для селектора <body> равное нулю.
margin-top и margin-bottom иногда объединяются в один, с размером равным наибольшему из них (или размеру одного, если они равны).
Это поведение известно как margin collapsing.
Схлопываются отступы соседних элементов (за исключением случая, когда к последнему элементу применено свойство
margin - Устанавливает величину отступа от каждого края элемента.
Отрицательные
margin-left/top сдвигают элемент влево-вверх. Остальные элементы это учитывают, в отличие от сдвига через position.Отрицательные
margin-right/bottom заставляют другие элементы думать, что блок меньше по размеру справа-внизу, чем он на самом деле.Если у элемента нет родителя, отступом будет расстояние от края элемента до края окна браузера с учетом того, что у самого окна по умолчанию тоже установлены отступы. Чтобы от них избавиться, следует устанавливать значение margin для селектора <body> равное нулю.
margin-top и margin-bottom иногда объединяются в один, с размером равным наибольшему из них (или размеру одного, если они равны).
Это поведение известно как margin collapsing.
Схлопываются отступы соседних элементов (за исключением случая, когда к последнему элементу применено свойство
clear).Когда при обращении к свойству объекта стоит использовать точечную нотацию, а когда через строку в квадратных скобках?
При обращении к свойствам через точку ключ должен представлять собой действительный JavaScript-идентификатор.
При обращении к свойствам через точку ключ должен представлять собой действительный JavaScript-идентификатор.
let obj = {
message : "A message"
}
obj.message //"A message"
obj["message"] //"A message"
При попытке обращения к несуществующему свойству объекта сообщения об ошибке не появится, но возвращено будет значение undefined:obj.otherProperty //undefinedПри использовании для доступа к свойствам квадратных скобок можно применять ключи, которые не являются действительными JavaScript-идентификаторами. Они могут иметь любое значение, которое можно привести к строке:
let french = {};
french["merci beaucoup"] = "thank you very much";
french["merci beaucoup"];
//"thank you very much"
Если в качестве ключей используются нестроковые значения, они автоматически преобразуются к строкам (с использованием, если это возможно, метода toString()):Какое изначальное значение у CSS свойства height?
Anonymous Quiz
9%
0%
3%
100vw
66%
auto
11%
100%
11%
normal
Что такое box-sizing? Что делает CSS-правило * { box-sizing: border-box; }? Зачем оно нужно?
Согласно спецификации CSS ширина блока складывается из ширины контента (width), значений отступов (margin), полей (padding) и границ (border). Аналогично обстоит и с высотой блока. Свойство box-sizing позволяет изменить этот алгоритм, чтобы свойства width и height задавали размеры не контента, а размеры блока.
Значения:
content-box - основывается на стандартах CSS, при этом свойства width и height задают ширину и высоту контента и не включают в себя значения отступов, полей и границ.
border-box - свойства width и height включают в себя значения полей и границ, но не отступов (margin).
padding-box - свойства width и height включают в себя значения полей, но не отступов (margin) и границ (border).
Самый распространенный вариант использования:
Согласно спецификации CSS ширина блока складывается из ширины контента (width), значений отступов (margin), полей (padding) и границ (border). Аналогично обстоит и с высотой блока. Свойство box-sizing позволяет изменить этот алгоритм, чтобы свойства width и height задавали размеры не контента, а размеры блока.
Значения:
content-box - основывается на стандартах CSS, при этом свойства width и height задают ширину и высоту контента и не включают в себя значения отступов, полей и границ.
border-box - свойства width и height включают в себя значения полей и границ, но не отступов (margin).
padding-box - свойства width и height включают в себя значения полей, но не отступов (margin) и границ (border).
Самый распространенный вариант использования:
*::before, *::after {
box-sizing: border-box;
}
Вы задаете ширину элементу, и вам не нужно производить вычисления при изменении границ, или внутренних отступов.