Показать сообщение отдельно
  #9 (permalink)  
Старый 31.12.2015, 22:09
Аватар для EmperioAf
Профессор
Отправить личное сообщение для EmperioAf Посмотреть профиль Найти все сообщения от EmperioAf
 
Регистрация: 15.01.2015
Сообщений: 622

Сообщение от 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);

Т.е. интерпретатор ожидает получить первые два параметра в виде чисел, и пытается перевести их в числа
Ответить с цитированием