🖥 Как работает Javascript
const price = document.querySelector('#price').value; // "10"
const qty = document.querySelector('#qty').value; // "20"
console.log(price + qty); // "1020"
console.log(+price + +qty); // 30
console.log(Number(price) + Number(qty)); // 30
1 + 2 + "3" // "33" — сначала 3, потом склейка
"3" + 1 + 2 // "312" — дальше всё клеится как строки
[1, 2] + [3, 4] // "1,23,4"
[] + [] // ""
[] + 1 // "1"
[1] + 1 // "11"
[1,2] + 3 // "1,23"
[] + {} // "[object Object]"
({} + []) // "[object Object]" (в скобках)
{} + [] // 0 — но это уже не выражение, а блок + унарный +[]
1 + - + + + - + 1 // 2 😵
+true // 1
+!![] // 1
+!+[] // 1
"b" + "a" + +"a" + "a" // "baNaNa" — потому что +"a" === NaN
true + true // 2
true + "true" // "truetrue"
"true" == true // false (true → 1, "true" → NaN)
[1, 2, 10, 20, 3].sort() // [1, 10, 2, 20, 3]
[1, 2, 10].sort((a, b) => a - b) // [1, 2, 10]
0.1 + 0.2 // 0.30000000000000004
0.1 + 0.2 === 0.3 // false
typeof NaN // "number"
NaN === NaN // false
Math.min() > Math.max() // true (Infinity > -Infinity)
1 < 2 < 3 // true → (1<2)=true → true<3 → 1<3 → true
3 > 2 > 1 // false → (3>2)=true → true>1 → 1>1 → false
typeof null // "object" (исторический баг)
null + 1 // 1
undefined + 1 // NaN
null + null // 0
const a = 1, b = 2;
console.log("Результат: " + a + b); // "Результат: 12"
console.log("Результат: " + (a + b)); // "Результат: 3"
console.log(`Результат: ${a + b}`); // "Результат: 3"
Правила:
+ если хоть один операнд строка — конкатенация
-, *, /, % всегда приводит к числу
унарный + превращает в число: +x
Number(x) явное преобразование
шаблонные строки ${} безопаснее, чем "..." + ...
В местах, где ожидаются числа, всегда используй Number() / +x / parseInt(x, 10) — особенно для значений из DOM, URL и localStorage.
🔵 Эпсилон // @epsilon_h
6 · 290 · Сообщение 🖥 Как работает Javascript
21 октября 2026Рядом в ленте
Ээто сообщение