Явное и неявное преобразование типов
Преобразование типов может быть явным и неявным. Когда разработчик выражает намерение сконвертировать значение одного типа в значение другого типа, записывая это соответствующим образом в коде, скажем, в виде Number(value)
, это называется явным приведением типов (или явным преобразованием типов).
Так как JavaScript — это язык со слабой типизацией, значения могут быть конвертированы между различными типами автоматически. Это называют неявным приведением типов. Обычно такое происходит, когда в выражениях используют значения различных типов, вроде:
1 == null
2/’5'
null + new Date()
Неявное преобразование типов может быть вызвано и контекстом выражения, вроде if (value) {…}
, где value
неявно приводится к логическому типу данных.
Существует оператор, который не вызывает неявного преобразование типов — это оператор строгого равенства, ===
. Оператор нестрогого равенства, ==
, с другой стороны, выполняет и операцию сравнения, и, если нужно, выполняет неявное преобразование типов.