CodeRoll | Frontend


Гео и язык канала: Россия, Русский
Категория: Технологии


— Лучшее для разработчика и дизайнера / IT инструменты, курсы и книги
— Веб-разработка на JavaScript, HTML, CSS, React, Vue,Angular
Купить рекламу: https://telega.in/c/coderoll
Чат: https://t.me/coderoll_chat
По всем вопросам пишите сюда - @poxvawe322

Связанные каналы  |  Похожие каналы

Гео и язык канала
Россия, Русский
Категория
Технологии
Статистика
Фильтр публикаций


Пояснение к ответу

В операциях сравнения примитивы сравниваются по значениям, а объекты - по ссылкам. JavaScript проверяет, чтобы объекты указывали на одну и ту же область памяти. Сравниваемые объекты в рассматриваемом примере не такие: объект, переданный в качестве аргумента, указывает на другое место в памяти, нежели объекты, используемые в сравнениях. Поэтому выражения { age: 18 } === { age: 18 } и { age: 18 } == { age: 18 } возвращают false.


Что будет в консоли ?
Опрос
  •   Ты взрослый!
  •   Ты по-прежнему взрослый.
  •   Хм... У тебя что, нет возраста?
  •   undefined
33 голосов


function checkAge(data) {
if (data === { age: 18 }) {
console.log("Ты взрослый!")
} else if (data == { age: 18 }) {
console.log("Ты по-прежнему взрослый.")
} else {
console.log("Хм... У тебя что, нет возраста?")
}
}

checkAge({ age: 18 })


Организация кода это важно и легко на основе Layer Architecture

Думаю многие читали кучу книжек по поводу Hexagonal, Onion, Clean, Layer Architecture и у вас могли остаться спорные вопросы как в сложности понимания материала, так и в реализации данных подходов в ваших проектах. Сегодня я хочу затронуть тему “Организации кода” и показать насколько это важно и легко одновременно на примере Layer Architecture (Слоистая архитектура).

Ссылка

#статьи


Пояснение к посту

При использовании тегированных шаблонных литералов (tagged template literals) первым значением, возвращаемым функцией, является массив строк. Прочими значениями являются значения, переданные функции в качестве аргументов.


Что будет в консоли ?
Опрос
  •   John 30 ["", " is ", " years old"]
  •   ["", " is ", " years old"] John 30
  •   John ["", " is ", " years old"] 30
  •   undefined
91 голосов


function getPersonInfo(one, two, three) {
console.log(one)
console.log(two)
console.log(three)
}

const person = "John"
const age = 30

getPersonInfo`${person} is ${age} years old`


TypeScript: лучшие практики

TypeScript используется все чаще, начиная небольшими пет-проектами и заканчивая огромнейшими веб-приложениями. Но разработчики до сих пор не всегда используют всю мощь этого языка и совершают ошибки. Например, на некоторых проектах можно встретить кучу any и Function.

Давайте разберемся используете ли вы этот невероятно мощный инструмент правильно

Ссылка

#ts


Пояснение к ответу

Постфиксный оператор ++:

- возвращает значение (0);
- увеличивает (инкрементирует) значение (после чего значением переменной number становится 1).

Префиксный оператор ++:
- инкрементирует значение (теперь number === 2);
- возвращает значение (2). Результат: 0 2 2.


Что будет в консоли ?
Опрос
  •   1 1 2
  •   1 2 2
  •   0 2 2
  •   0 1 2
153 голосов


let number = 0
console.log(number++)
console.log(++number)
console.log(number)


Модули ES6: Rollup

Когда-то были времена, когда весь JavaScript-код приложения складывался в один огромный файл. Это было не только неудобно, но и было множество ошибок из-за глобального пространства имен и сложностей с зависимостями. Тогда появилась необходимость в модульности.

Ссылка

#статьи


Пояснение к ответу

JavaScript - это динамически типизированный язык: мы не определяем тип данных при объявлении переменных (для этого был придуман TypeScript). Значения переменных могут быть автоматически преобразованы из одного типа в другой без нашего участия. Это называется "неявным приведением типов". Приведение - это преобразование данных из одного типа в другой. В рассматриваемом примере JavaScript конвертировал число 1 в строку, чтобы операция имела смысл и вернула хоть какое-то значение. При сложении числа (1) и строки ("2") число преобразуется в строку. Мы можем объединять строки так: "Hello" + "World". Это называется конкатенацией строк. Таким образом, 1 + "2" возвращает "12".


Что будет в консоли ?
Опрос
  •   NaN
  •   ошибка
  •   "12"
  •   3
170 голосов


function sum(a, b) {
return a + b
}

console.log(sum(1, "2"))


Пояснение к посту

Мы создаем объект jane без помощи ключевого слова new. Использование new приводит к созданию нового объекта (экземпляра). Без new создается глобальный объект. Мы указали, что this.firstName равняется Jane и this.lastName равняется Air. На самом деле, мы определили global.firstName = 'Jane' и global.lastName = 'Air'. Значением jane является undefined, поскольку мы ничего не возвращаем из функции Person.


Что будет в консоли ?
Опрос
  •   Person {firstName: "John", lastName: "Smith"} и undefined
  •   Person {firstName: "John", lastName: "Smith"} и Person {firstName: "Jane", lastName: "Air"}
  •   Person {firstName: "John", lastName: "Smith"} и {}
  •   Person {firstName: "Smith", lastName: "Smith"} и ошибка
112 голосов


function Person(firstName, lastName) {
this.firstName = firstName
this.lastName = lastName
}

const john = new Person("John", "Smith")
const jane = Person("Jane", "Air")

console.log(john)
console.log(jane)


Пояснение к ответу

Нельзя добавлять свойства к конструктору как к обычному объекту. Если необходимо добавить свойство или метод всем экземплярам, то следует использовать прототипы. В данном случае выражение Person.prototype.getFullName = function () { return ${this.firstName} ${this.lastName} } сделает метод getFullName рабочим. В чем здесь преимущество? Предположим, что мы добавили этот метод к конструктору. Возможно, он нужен не каждому экземпляру класса Person. Это приведет к лишнему расходованию памяти, т.к. все экземпляры будут иметь указанный метод. Напротив, если мы добавим данный метод к прототипу, у нас будет только одно место в памяти, к которому смогут обращаться все экземпляры. Такие методы называются совместными или распределенными (shared).


Что будет в консоли ?
Опрос
  •   ошибка
  •   ""
  •   John Smith
  •   undefined undefined
138 голосов

Показано 20 последних публикаций.