Неявное преобразование происходит, когда мы заставляем JavaScript работать со значениями разных типов. Например, если мы хотим «сложить» число и строку.

Дело в том, как JavaScript пробует эти два типа «сопоставить» друг с другом, чтобы с ними работать.

Когда мы складываем число со строкой получаем строку (контатанация строк)

value = 30 + ''__"  // 30 получается неявное преобразование в строку
value = 30 + " _" + 30 // 3030
value = 30 - " " // 30
value = 30 - "asds" // NaN
value = 30 - "5" // 25 JS автоматически преобразует строку "5" в число 5, так как оператор "-" применяется только к числам.
const myString = "abc"
// console.log(typeof myString) // строка
 
const myNumber = 10
// console.log(typeof myNumber) // число
 
const myBoolean = true
// console.log(typeof myBoolean) // boolean
 
const myNull = null
// console.log(typeof myNull) // объект
 
let myUndefined
//  console.log(typeof myUndefined) // underfined
 
const myObject = {}
// console.log(typeof myObject) // обьект
 
const myArray = []
// console.log(typeof myArray) // обьект

Задача

true + false // 1
12 / "6" // 2
"number" + 15 + 3 // 'number153'
15 + 3 + "number" // '18number'
[1] > null // true
"foo" + + "bar" // 'fooNaN'
'true' == true // false
false == 'false' // false
null == '' // false js
!!"false" == !!"true" // true
['x'] == 'x' // true
[] + null + 1 // 'null1'
[1,2,3] == [1,2,3] // false
{}+[]+{}+[1] // '0[object Object]1'
!+[]+[]+![] // 'truefalse'
new Date(0) - 0 // 0
new Date(0) + 0 // 'Thu Jan 01 1970 02:00:00(EET)0'

Назад