|
|
|
| Здравствуйте. Написал код бегущей статусной строки (сначала просмотрел листинг учебника).
<html>
<head>
<title></title>
</head>
<body onLoad="move_status_line()">
<script>
str = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna. ";
i = 0;
function move_status_line()
{
window.status = str.substring(i, str.length) + str.substring(0, i);
if(i < str.length)
i++;
else
i = 0;
setTimeout("move_status_line()", 100);
}
</script>
</body>
</html>
|
Смущают две вещи:
1. Переменные i и str видны в функции move_status_line(), хотя мы не передавали их как параметры. До сих пор думал, что области видимости переменных в js и php одинаковы. В чем отличие?
2. Всегда ставил при обновлении переменной var i = 0; А здесь var опущено. Я использую устаревший синтаксис? | |
|
|
|
|
|
|
|
для: antf
(19.11.2008 в 22:49)
| | >1. Переменные i и str видны в функции move_status_line(), хотя мы не передавали их как параметры.
В js переменная, объявленная вне функции является глобальной и видна везде.
>Всегда ставил при обновлении переменной var
Вообще работает и так. На эту тему много споров, но имхо лучше не эксперементировать и следовать протоколу. А в нем четко написано, переменная объявляется ключевым словом var. Я где то слышал фразу, произнесенную очень авторитетным человеком в js.
"Нет var, - нет переменной". | |
|
|
|
|
|
|
|
для: Николай2357
(20.11.2008 в 02:49)
| | Ясно, спасибо, но только переменные без вар встречаются уже в книгах. | |
|
|
|
|
|
|
|
для: antf
(20.11.2008 в 23:13)
| | Они и раньше встречались. Но книги то пишут люди, и у них свои взгляды. Иногда идущие в разрез с концепциями разработчиков.
Вообще js много прощает, но это палка о двух концах. В какой то момент может вылезти боком. | |
|
|
|