M3 | WebDev
104 subscribers
105 photos
4 videos
16 links
Your guide to the world of programming 🌐🚀
Download Telegram
🌟 Что будет выведено в консоль?
Anonymous Quiz
4%
12
4%
15
25%
7
68%
NaN
2👍1
📢 Анонс Стрима!

🔥 Прямо сейчас на стриме будем разрабатывать CRM систему на React! Если хотите узнать, как создаются реальные проекты, или просто пообщаться о программировании — присоединяйтесь! 👨‍💻

Мы разберем:

• Как структурировать код в React
• Интеграцию с бекендом и API
• Полезные инструменты для разработки

https://www.twitch.tv/m34r7
1👍1🔥1
💡 Основные способы явного преобразования типов данных в JavaScript 🔄

Явное преобразование типов данных в JavaScript позволяет вручную конвертировать значения из одного типа в другой. Это помогает сделать код более предсказуемым и избежать неожиданных ошибок. Вот все основные методы явного преобразования:

🔢 1. Преобразование в число

- `Number(value)`: Преобразует значение в число.

  Number("123"); // 123
Number(true); // 1
Number(""); // 0
Number("abc"); // NaN

- Унарный оператор `+`: Преобразует значение в число.

  +"456";  // 456
+true; // 1

- Метод `parseInt(string, radix)`: Преобразует строку в целое число с заданной системой счисления.

  parseInt("42", 10); // 42
parseInt("101", 2); // 5

- Метод `parseFloat(string)`: Преобразует строку в число с плавающей точкой.

  parseFloat("3.14"); // 3.14
parseFloat("2.718"); // 2.718

📜 2. Преобразование в строку

- `String(value)`: Преобразует значение в строку.

  String(123); // "123"
String(false); // "false"

- Метод `toString()`: Преобразует значение в строку (доступен у чисел, булевых значений, объектов и т. д.).

  (456).toString(); // "456"
(true).toString(); // "true"

🔘 3. Преобразование в логическое значение

- `Boolean(value)`: Преобразует значение в логическое значение (true или false).

  Boolean(1);      // true
Boolean(0); // false
Boolean("text"); // true
Boolean(""); // false

- Оператор `!!` (двойное отрицание): Преобразует значение в логическое значение.

  !!"hello";  // true
!!0; // false
!!null; // false

🧩 4. Преобразование объектов и массивов

- `JSON.stringify(value)`: Преобразует объект или массив в строку JSON.

  JSON.stringify({ name: "Alice", age: 25 }); // '{"name":"Alice","age":25}'

- `JSON.parse(string)`: Преобразует строку JSON обратно в объект или массив.

  JSON.parse('{"name":"Alice","age":25}'); // { name: "Alice", age: 25 }

📅 5. Преобразование даты

- Метод `Date.prototype.toString()`: Преобразует объект Date в строку.

  new Date().toString(); // "Sat Aug 17 2024 13:42:15 GMT+0000 (Coordinated Universal Time)"

- Метод `Date.prototype.toISOString()`: Преобразует объект Date в строку в формате ISO.

  new Date().toISOString(); // "2024-08-17T13:42:15.000Z"

- Конструктор `Date(value)`: Преобразует строку или число в объект Date.

  new Date("2024-08-17T13:42:15.000Z"); // Date object


🧪6. Сравнение значений: == и ===

Оператор == (нестрогое равенство):
Сравнивает значения после приведения их к одному типу. Это может привести к неожиданным результатам из-за автоматического преобразования типов.

0 == '0';         // true (строка '0' преобразуется в число 0)
null == undefined; // true (специальное правило в JavaScript)
1 == true; // true (булевое значение true преобразуется в 1)

Оператор === (строгое равенство): Сравнивает значения без преобразования типов. Значения должны быть одного типа и равными, чтобы результат был true.

0 === '0';        // false (разные типы данных)
null === undefined; // false (разные значения)
1 === true; // false (разные типы данных)

📌 Заключение

Явное преобразование типов позволяет вам точно контролировать, как значения преобразуются между различными типами данных. Это помогает избежать ошибок и делает код более понятным и предсказуемым. В следующей части мы поговорим о неявных преобразованиях .

Тэги : #javascript
🔥42
4👍2
🌟 Неявные преобразования в JavaScript 🔄

В JavaScript часто происходят неявные преобразования типов. Давайте рассмотрим некоторые примеры, чтобы понять, как это работает!

1️⃣ true + false
true + false; // 1 + 0 => 1
Оператор + преобразует логические значения к числам.

2️⃣ 12 / '6'
12 / '6'; // 12 / 6 => 2
Арифметический оператор вызывает преобразование строки к числу.

3️⃣ "number" + 15 + 3
"number" + 15 + 3; // "number15" + 3 => "number153"
Строка приоритетнее, поэтому число 15 преобразуется в строку.

4️⃣ 15 + 3 + "number"
15 + 3 + "number"; // 18 + "number" => "18number"
Сначала складываются числа, затем происходит конкатенация со строкой.

5️⃣ [1] > null
[1] > null; // '1' > 0 => true
Массив [1] преобразуется к строке, а затем к числу.

6️⃣ "foo" + + "bar"
"foo" + + "bar"; // "foo" + NaN => "fooNaN"
Унарный + приводит строку "bar" к NaN.

7️⃣ 'true' == true и false == 'false'
'true' == true; // NaN == 1 => false
false == 'false'; // 0 == NaN => false
Оператор == вызывает неявное преобразование к числу.

8️⃣ null == ''
null == ''; // false
Значение null не равно пустой строке.

9️⃣ !!"false" == !!"true"
!!"false" == !!"true"; // true == true => true
Оба значения приводятся к логическому типу.

🔟 ['x'] == 'x'

['x'] == 'x'; // true
Массив преобразуется к строке.

1️⃣1️⃣ [] + null + 1
[] + null + 1; // 'null1'
Пустой массив преобразуется в пустую строку.

1️⃣2️⃣ 0 || "0" && {}
0 || "0" && {}; // {}
Логические операторы приводят к логическому типу.

1️⃣3️⃣ [1,2,3] == [1,2,3]
[1,2,3] == [1,2,3]; // false
Сравниваются ссылки на объекты.

1️⃣4️⃣ {} + [] + {} + [1]
{} + [] + {} + [1]; // '0[object Object]1'
Первый блок фигурных скобок игнорируется как код.

1️⃣5️⃣ !+[] + [] + ![]

!+[] + [] + ![]; // 'truefalse'
Поэтапное преобразование приводит к строке.

1️⃣6️⃣ new Date(0) — 0
new Date(0) - 0; // 0
Преобразование объекта Date в число.

1️⃣7️⃣ new Date(0) + 0
new Date(0) + 0; // 'Thu Jan 01 1970 02:00:00 GMT+0200 (EET)0'
Преобразование в строку, а не в число.

📌 Заключение
Неявные преобразования — это важная часть JavaScript. Понимание того, как они работают, поможет избежать неожиданных результатов. Будьте внимательны с операторами, и используйте явные преобразования, когда это необходимо!
👍1
1🔥1
👾 Что будет выведено в консоль?
Anonymous Quiz
65%
"105nulltruefalse"
25%
"15nulltruefalse"
5%
"1051false"
5%
"105truefalse"
🚀 Массивы в JavaScript: Методы и манипуляции! 🚀

Массивы в JavaScript — это мощный инструмент для работы с упорядоченными данными! 🛠 Они позволяют хранить и управлять коллекциями элементов. Давайте подробнее рассмотрим массивы и некоторые полезные методы для работы с ними. 📚

🌟 Что такое массив?

Массив — это объект, который позволяет хранить несколько значений в одном месте. Эти значения могут быть любого типа: числа, строки, объекты и даже другие массивы! 📊

1️⃣ Создание массива

Вы можете создать массив несколькими способами:

С помощью литерала массива

const fruits = ['Apple', 'Banana', 'Orange'];
console.log(fruits); // Выведет: ["Apple", "Banana", "Orange"]


С помощью конструктора массива

const numbers = new Array(1, 2, 3);
console.log(numbers); // Выведет: [1, 2, 3]


2️⃣ Основные методы массива

`push` и `pop`

Добавляют и удаляют элементы с конца массива.

const stack = [1, 2, 3];
stack.push(4); // Добавляет 4 в конец
console.log(stack); // Выведет: [1, 2, 3, 4]

stack.pop(); // Удаляет последний элемент
console.log(stack); // Выведет: [1, 2, 3]


`shift` и `unshift`

Добавляют и удаляют элементы с начала массива.

const queue = [1, 2, 3];
queue.unshift(0); // Добавляет 0 в начало
console.log(queue); // Выведет: [0, 1, 2, 3]

queue.shift(); // Удаляет первый элемент
console.log(queue); // Выведет: [1, 2, 3]


`map`

Создает новый массив с результатами вызова функции для каждого элемента.

const numbers = [1, 2, 3];
const doubled = numbers.map(x => x * 2);
console.log(doubled); // Выведет: [2, 4, 6]


`filter`

Создает новый массив с элементами, которые прошли проверку функции.

const numbers = [1, 2, 3, 4];
const even = numbers.filter(x => x % 2 === 0);
console.log(even); // Выведет: [2, 4]


`reduce`

Применяет функцию к каждому элементу массива (слева направо) и возвращает одно значение.

const numbers = [1, 2, 3, 4];
const sum = numbers.reduce((acc, current) => acc + current, 0);
console.log(sum); // Выведет: 10


`find`

Возвращает первый элемент, который удовлетворяет условию функции.

const numbers = [1, 2, 3, 4];
const found = numbers.find(x => x > 2);
console.log(found); // Выведет: 3


`forEach`

Выполняет функцию для каждого элемента массива.

const numbers = [1, 2, 3];
numbers.forEach(x => console.log(x));
// Выведет:
// 1
// 2
// 3


### 3️⃣ Методы для поиска и сортировки

`includes`

Проверяет, содержит ли массив определенный элемент.

const fruits = ['Apple', 'Banana', 'Orange'];
console.log(fruits.includes('Banana')); // Выведет: true
console.log(fruits.includes('Grape')); // Выведет: false


`sort`

Сортирует элементы массива.

const numbers = [4, 2, 3, 1];
numbers.sort((a, b) => a - b);
console.log(numbers); // Выведет: [1, 2, 3, 4]


🔍 Заключение

Массивы и их методы в JavaScript — это неотъемлемая часть работы с данными. Они позволяют эффективно управлять коллекциями элементов и выполнять множество операций. 🌟 Надеюсь, этот пост помог вам лучше понять массивы и их методы!

Тэги : #javascript
3
🫧 Что будет выведено в консоль?
Anonymous Quiz
0%
14
24%
12
71%
18
6%
16
Понимание this в JavaScript 🔍

Ключевое слово this в JavaScript — это один из самых важных, но и наиболее запутанных аспектов языка. Оно указывает на объект, в контексте которого выполняется функция. Важно понимать, как this изменяется в зависимости от того, как функция была вызвана. Давайте разберем основные случаи и методы управления this:

1. Методы объекта 🧩

Когда функция вызывается как метод объекта, this ссылается на этот объект:

const person = {
name: 'Alice',
greet: function() {
console.log(this.name); // Выводит 'Alice'
}
};
person.greet();


2. Функции как вызов 🚀

Когда функция вызывается без привязки к объекту (как обычная функция), this ссылается на глобальный объект в нестрогом режиме (window в браузере) или undefined в строгом режиме:

function show() {
console.log(this); // В браузере выведет объект window
}
show();


Если включить строгий режим ('use strict';), то this будет undefined:

'use strict';
function show() {
console.log(this); // Выводит undefined
}
show();


3. Конструкторы 🛠

При использовании функции как конструктора с помощью new, this ссылается на создаваемый объект:

function Person(name) {
this.name = name;
}
const person = new Person('Bob');
console.log(person.name); // Выводит 'Bob'


4. Стрелочные функции →

Стрелочные функции не имеют собственного this. Вместо этого они захватывают значение this из окружающего контекста, в котором были определены:

const person = {
name: 'Carol',
greet: function() {
setTimeout(() => {
console.log(this.name); // Выводит 'Carol'
}, 1000);
}
};
person.greet();


5. Управление this с помощью call, apply и bind 🎯

JavaScript предоставляет несколько способов явного управления значением this в функциях:

- call: Метод call позволяет вызвать функцию с определенным значением this и передать аргументы:


function greet(greeting) {
console.log(`${greeting}, ${this.name}`); // Выводит 'Hello, Dave'
}

const person = { name: 'Dave' };
greet.call(person, 'Hello');


- apply: Метод apply похож на call, но принимает аргументы в виде массива:


function greet(greeting, punctuation) {
console.log(`${greeting}, ${this.name}${punctuation}`); // Выводит 'Hi, Eve!'
}

const person = { name: 'Eve' };
greet.apply(person, ['Hi', '!']);


- bind: Метод bind создает новую функцию, которая при вызове будет иметь заданное значение this и, при необходимости, переданные аргументы. В отличие от call и apply, bind не вызывает функцию сразу, а возвращает новую функцию:


function greet(greeting) {
console.log(`${greeting}, ${this.name}`); // Выводит 'Hey, Frank'
}

const person = { name: 'Frank' };
const greetPerson = greet.bind(person);
greetPerson('Hey');


Заключение 🎉

Понимание того, как this работает в различных контекстах и как управлять его значением с помощью call, apply и bind, является ключом к написанию надежного и предсказуемого кода в JavaScript. Эти правила помогают избежать распространенных ошибок и сделать код более понятным и поддерживаемым.

Тэги : #javascript
🔥2
🌐 Что будет выведено в консоль?
Anonymous Quiz
69%
hello
13%
undefined
6%
ReferenceError
13%
TypeError
🔥2