Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Жестокий глюк или ошибка в условии?..

431
23 октября 2006 года
sherry
207 / / 16.10.2006
Столкнулся со странной проблемой. Делаю HTML-страничку, которая содержать некоторые элементы(неважно) и текущую дату и время. Всё бы ничего, но есть один жестокий глюк вот в таком моменте:

<SCRIPT LANGUAGE="JavaScript">
day_of_week=new Date();

var q=day_of_week.getDay();
if (q=0)
q="воскресенье";
if (q=6)
q="cуббота";
if (q=5)
q="пятница";
if (q=4)
q="четверг";
if (q=3)
q="среда";
if (q = 2)
q="вторник";
if (q = 1)
q="понедельник";
document.write(q);
</SCRIPT>

По идее эта последовательность должна давать имя дня недели, но у меня браузер выполняет все условия if, как условия поочерёдного применения и выводит на экран последнее значение(в данном случае - понедельник). Может я чего-то напутал?:confused: [FONT="Comic Sans MS"]:confused: [/FONT]
8
23 октября 2006 года
mfender
3.5K / / 15.06.2005
Хм... А не проще было сделать массив?
WeekDays = Array("опнедельник", "вторник", "среда" ... etc);
а потом просто взять нужное значение:

day_of_week=new Date();
var q=day_of_week.getDay();
document.write(WeekDays[q]);

Сдаётся мне, что так проще...

Ошибка тут в том, что в JavaScript оператор "=" - совсем не то, что "=" скажем в Delphi. Для данного случая наиболее подходит "=="
8.5K
23 октября 2006 года
infernodiablo
73 / / 04.03.2006
Я конечно в JVS не бум-бум, но я бы запихал в массив имена дней а потом по индексу и выбрал:
 
Код:
n=new Array("понедельник","вторник","среда","четверг","пятница","суббота","воскресенье")
document.write(n[q])
431
23 октября 2006 года
sherry
207 / / 16.10.2006
[QUOTE=mfender]Хм... А не проще было сделать массив?
WeekDays = Array("опнедельник", "вторник", "среда" ... etc);
а потом просто взять нужное значение:

day_of_week=new Date();
var q=day_of_week.getDay();
document.write(WeekDays[q]);

Сдаётся мне, что так проще...

Ошибка тут в том, что в JavaScript оператор "=" - совсем не то, что "=" скажем в Delphi. Для данного случая наиболее подходит "=="[/QUOTE]
=================================
Спасибо за вариант, но всё равно не совсем то, что хотелось бы. Значение "ошибается" на один день. Вот только что подставил,
WeekDays = Array("понедельник", "вторник", "среда", "четверг", "пятница", "суббота", "воскресенье");
day_of_week=new Date();
var q=day_of_week.getDay();
document.write(WeekDays[q]);
мне высветился вторник. А сегодня(насколько я помню:) ) - понедельник. Но всё равно, спасибо.;)
244
23 октября 2006 года
UAS
2.0K / / 19.07.2006
В массиве поставь воскресенье на первое место...
431
23 октября 2006 года
sherry
207 / / 16.10.2006
[QUOTE=UAS]В массиве поставь воскресенье на первое место...[/QUOTE]
Я пробовал эту идею, при первом редактировании проги. Перебирал все варианты - эфффект один: выдаёт последнее:(
8
23 октября 2006 года
mfender
3.5K / / 15.06.2005
[QUOTE=sherry]Я пробовал эту идею, при первом редактировании проги. Перебирал все варианты - эфффект один: выдаёт последнее:([/QUOTE]
Блин, человек, говорят тебе: поставь воскресенье в массиве элементом с индексом 0. В JavaScript именно так и считается: воскресенье = 0, суббота = 6.
14K
24 октября 2006 года
Pheonix
31 / / 23.10.2006
Да поставь вместо равно(= оно считается как присвоение, а не сравнение) двойное равно (==)
300
25 октября 2006 года
ReDrum
689 / / 20.04.2000
Код:
if( a < b) {
... a действительно меньше b
}

if (a == b) {
 .. a равно б
}

if (a > b) {
   ....
}


если ты в пишешь именно таким образом то проверяются все 3 условия

 
Код:
if( a < b) {
... a действительно меньше b
} else if (a == b) {
 .. a равно б
} else if (a > b) {
   ....
} else {
.. если окажесмся здесь, то устои будут потрясены
}

если ты формулируешь условие таким образом, то выполняется только одно из условий.

смотри в доке ключевые слова условный переход
17K
25 октября 2006 года
SuhOFF
24 / / 27.09.2006
Вся проблема в использовании присваивания (=) вместо сравнения (==)
17K
25 октября 2006 года
Dionis
23 / / 29.08.2006
[QUOTE=mfender]Блин, человек, говорят тебе: поставь воскресенье в массиве элементом с индексом 0. В JavaScript именно так и считается: воскресенье = 0, суббота = 6.[/QUOTE]

:D ну это не только в JavaScript считается так. А еще и в PHP и в C# и т.д. :D
17K
25 октября 2006 года
Dionis
23 / / 29.08.2006
[QUOTE=SuhOFF]Вся проблема в использовании присваивания (=) вместо сравнения (==)[/QUOTE]

Краткий и точный ответ
431
26 октября 2006 года
sherry
207 / / 16.10.2006
Всем спасибо! Прога пашет!!!!!!!! :) :) :) ;)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог