Найти тему

Типы операндов JavaScript

JavaScript - нетипизированный язык. Вам не надо указывать тип данных при объявлении переменных. Но, тем не менее, типы данных как таковые в JavaScript существуют, и это надо учитывать, когда вы используете операторы с переменными определённых типов или с выражениями, которые возвращают определённый тип. И различные операторы требуют, чтобы операнды возвращали значения определённого типа.

Например, нельзя умножать строки:

"F" * "A"

Такое выражение не является допустимым. Хотя в современных браузерах ошибки не произойдет. Это выражение, скорее всего, вернёт значение NaN. Но всё равно так делать не следует.

В то же время интерпретатор JavaScript по мере своих сил пытается преобразовать любое выражение в правильный тип. Поэтому вот такое выражение:

"5" * "3"

является вполне допустимым. Здесь строки будут преобразованы в числа, а затем будет выполнено умножение. А итогом применения оператора * будет уже не строка, а число (в данном примере 15). См. также преобразование числа в строку.

Некоторые операторы ведут себя по разному в зависимости от того, с какими типами данных они используются. Например, оператор + складывает два числа в случае с числами, и выполняет конкатенацию (объединение) строк в случае со строками. Если же использовать его с операндами разных типов, то он вернёт строковое значение. При этом нестроковый операнд будет преобразован в строку:

"5" + 10

Результатом будет строка 510.

"Логика " + (10 == 10)

Результатом будет строка “Логика true”.

Также операторы не всегда возвращают значения того же типа, к которому принадлежат операнды. Например, операторы сравнения (больше, меньше, равно и т.д.) могут работать с числами, строками и другими типами. А возвращают всегда логический тип.

На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.