Мои задачи по Javascript
Случайная задача
Список всех задач

Задача 18

var a = { m: 4, toString: function() { return this.m; } };
var b = 0;
var c = [3];
var d = [4];

console.log(a + b - c + d);
1
2
3
4
5
6
7
8
← Задача 17Задача 19 →
Пояснение Обратите внимание: собственный метод toString объекта a в задаче возвращает число, а не строку. Не имеет значения, что в названии "toString" есть слово string, тип возвращаемой этим методом переменной зависит только от самой переменной.

В случае переменных c и d автоматически вызываемый на массиве метод Array.prototype.toString() всегда возвращает строку.

В итоге получилось:
4 + 0 - '3' + '4';

Оператор плюс всегда выполняет конкатенацию, а не сложение, если хотя бы один из операндов является строкой.



Написать сообщение - отзыв, пожелание и т.п.