pboris7
Новичок
Дата регистрации:
26.06.2012 09:51:33
Сообщений: 8
Приступив к изучению JS воспользовался очень полезными примерами, приведенными Михаилом на этом сайте. Сразу возникло много вопрсов, и в частности, следующий (привожу два примера):
Пример 1. (Ротатор изображений):
function imageRotator(i) {.....}
setTimeout("imageRotator(" + i + "
", delay);
Пример 2. ()
function func () {....}
setTimeout(func, 3000);
Вопрос: почему для одной и той же функции setTimeout() в разных примерах, синтаксис разнится? Понимаю, что в первом примере функция содержит аргумент и его надо передать тоже, но почему нужно столько кавычек для первого случая и особенно "плюсы" в скобках с аргументом - (" + i + "
и совсем не нужно кавычек для второго примера?
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Кавычки нужно, чтобы ограничить строки, чтобы + воспринимался, не как часть строки, а как операция соединения строк.
pboris7
Новичок
Дата регистрации:
26.06.2012 09:51:33
Сообщений: 8
А причем тут строки, ведь в этом примере я оперирую картинками (*.jpg файлами) а не строками? А аргумент у меня один - "i" - который является числом.
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Плохо, что Вы не знаете основ JavaScript, и даже основные типы. Рекомендую ознакомиться с базовыми типами JavaScript и работе с ними.
pboris7
Новичок
Дата регистрации:
26.06.2012 09:51:33
Сообщений: 8
Да, это очень плохо. Если честно, не имея другого учебника под рукой, изучение начал именно с Вашего краткого курса по основам JS помещенного на Вашем сайте, но там я оьъяснений на этот счет, к сожалению, не нашел. Скачал пару книжек из интернета, но там тоже информации почему, в одном случае, для одной и той же функции (в данном случае - setTimeout()) нужно писать так, а в другом случае - иначе, не нашел. Все больше и больше стал проникаться уважением к С++. Да, он сложней, но насколько он более внятен и понятен по своей логике... Во всяком случае для каждой стандартной функции запросто можно найти правила ее написания, передачи аргументов, возвращаемых значений и т.д. Забил в Гугле поиск функции setTimeout() в JS - чтоб получить ответ на свой вопрос - много чего нашлось, но только не то, что мне было нужно, чтоб понять описанную разницу в синтаксисе. Может Вы подскажете - где искать ответ.
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Начать надо с Hello World, большее пока что рано. Затем разбирать все типы: целый, строки, булевский и так далее. Затем должно дойти что типа "изображение" не существует (это из какого-то Вашего сообщения выше). Есть объект Image, но он не имеет никакого отношения к данной ситуации. "image.jpg" - это не изображение, а строка. Но ещё раз повторюсь, начинайте всё заново, setTimeout() ещё рано разбирать.