вернуться к уроку

Вопросник по преобразованиям, для примитивов

важность: 5
"" + 1 + 0 = "10" // (1)
"" - 1 + 0 = -1 // (2)
true + false = 1
6 / "3" = 2
"2" * "3" = 6
4 + 5 + "px" = "9px"
"$" + 4 + 5
 = "$45"
"4" - 2
 = 2
"4px" - 2
 = NaN
7 / 0
 = Infinity
" -9\n" + 5 = " -9\n5"
" -9\n" - 5 = -14
5 && 2
 = 2
2 && 5
 = 5
5 || 0
 = 5
0 || 5 = 5
null + 1 = 1 // (3)
undefined + 1 = NaN // (4)
null == "\n0\n" = false // (5)
+null == +"\n0\n" = true // (6)
  1. Оператор "+" в данном случае прибавляет 1 как строку, и затем 0.
  2. Оператор "-" работает только с числами, так что он сразу приводит "" к 0.
  3. null при численном преобразовании становится 0
  4. undefined при численном преобразовании становится NaN
  5. При сравнении == с null преобразования не происходит, есть жёсткое правило: null == undefined и только.
  6. И левая и правая часть == преобразуются к числу 0.

Подумайте, какой результат будет у выражений ниже. Тут не только преобразования типов. Когда закончите – сверьтесь с решением.

"" + 1 + 0
"" - 1 + 0
true + false
6 / "3"
"2" * "3"
4 + 5 + "px"
"$" + 4 + 5

"4" - 2

"4px" - 2

7 / 0

"  -9\n" + 5
"  -9\n" - 5
5 && 2

2 && 5

5 || 0

0 || 5
null + 1
undefined + 1
null == "\n0\n"
+null == +"\n0\n"