Сообщение от Nazaki
|
Объясните пожалуйста на пальцах, почему alert( foo + '1' ); возвращает '21' а не 'foo1'
|
Перечитайте:
https://learn.javascript.ru/object-c...зования
Сообщение от Nazaki
|
Я не понимаю, что значит фраза "что ожидает получить интерпретатор"
|
Фраза "что ожидает получить интерпретатор" означает что у встроенных функций определёны типы получаемых значений. Например:
функция
alert(message) попытается преобразовать message к строке если это не строка
А вот конструктор
new Date() ожидает горазд большего:
new Date();
new Date(value);
new Date(dateString);
new Date(year, month[, day[, hour[, minute[, second[, millisecond]]]]]);
Или например метод
Array.prototype.splice():
var arr = [3,4,5,6];
arr.splice(['2'], ['1']);
alert(arr);
var arr = [3,4,5,6];
arr.splice('2', ['1']);
alert(arr);
var arr = [3,4,5,6];
arr.splice({'1':'2'}, ['1']);
alert(arr);
Т.е. интерпретатор ожидает получить первые два параметра в виде чисел, и пытается перевести их в числа