Что вернут Javascript-команды Var N = 100; Eval(n++ + + ++n);?

Статус
Закрыто для дальнейших ответов.

nikee

Новичок
Регистрация
23.07.2006
Сообщения
2
Что вернут JavaScript-команды var n = 100; eval(n++ + + ++n);?
ошибку
число 200
число 201
число 202
строку "n++ + + ++n"

И ещё:
Какая из этих же команд создаст объект со свойствами width = 320 и height = 200?

var obj = new Object (width: 320, height: 200);
var obj = [width = 320, height = 200];
var obj = new Object (width = 320, height = 200);
var obj = new function() {this.width = 320; this.height = 200};
var obj = new Object (this.width = 320, this.height = 200);

Спасибо!


И ещё:
Какая из этих строк на JavaScript вызовет ошибку?

var obj = new Object (width: 320, height: 200);

var obj = [width = 320, height = 200];

var obj = new Object (width = 320, height = 200);

var obj = new function() {this.width = 320; this.height = 200};

var obj = new Object (this.width = 320, this.height = 200);

Сорри, что так много вопросов.... :)
 

deMone

Злой страшный дядька
Регистрация
30.01.2006
Сообщения
937
Пытаетесь устроиться на работу в студию Лебедева за чужой счёт? Идите на **й.
 

nikee

Новичок
Регистрация
23.07.2006
Сообщения
2
Вопрос к администратору форума: у Вас все модераторы посылают на*уй пользователей?

Персонально deMone: Видимо Ваш уровень не позваляет выразить негодование цивилизовано и в рамках приличий.

По существу: да, я проходил там тест. На вопросы я дал свои ответы, и решил себя проверить, так как в JS я не очень силён. С вопросом 1 получается интересная петрушка:
а) eval не используется для математических выражений, а здесь использовано
б) я посчитал что должно получится 202, но браузер, если запустить - даёт 102.
Так что первый вопрос - весьма интересный.

Так как этот форум специально для того и создан, что бы обсуждать, помогать и.т.д. - считаю свой поступок вполне правомерным и не аморальным :).
 

v0rbis

selfcoded
Регистрация
02.05.2005
Сообщения
923
2ДеМоне: угу. в следующий раз просто проси "убитьсибя". злой_стрррррашный_дядька

2Никее: както не очень связано с форумом... тесты тесты.. тут конкретные проблемы решаются.
 

deMone

Злой страшный дядька
Регистрация
30.01.2006
Сообщения
937
Значит, поясняю свои действия.
Так как Вы не пояснили, что решаете-то интересу ради, я вполне правомерно решил, что Вы захотели на чужой счёт пройти тест. А это уже не есть хорошо. Если бы Вы написали хоть строчку пояснения — тогда я бы понял и был более вежлив. А так не обессудьте.

Что касаемо первого вопроса, то браузер действует совершенно правильно.
Смотрите сами (для удобства я код разделил):
Код:
eval(
   n++
   + +
   ++n
);
Начнём со второй строки. n++ увеличит n на единицу. Значит после этого n=101.

Теперь четвёртая строка: ++n сделает то же самое: увеличит n ещё на единицу. Теперь n=102

Теперь два знака +. Они будут действовать как один знак плюс.

Значит у нас получается код: eval(100 + 102); (почему 100 потому что ++ после переменной — это постфиксное увеличение).

То есть фактически получилось eval(202);. А теперь думаем головой. Что сделает браузер с кодом 202?

Ничего! Он никуда его не запишет и ничему не присвоит.

N по прежнему равно 102.

Что и требовалось.
 

v0rbis

selfcoded
Регистрация
02.05.2005
Сообщения
923
ОТ:
не знаю как тут, но в С++ существуют приоритеты для совершения операций. тоесть что к чему сначал прибавляется.
 

Makogon

New Member
Регистрация
19.08.2006
Сообщения
9
Никогда не любил подобных задачек. Подобными головоломками можно завалить на тестах любого, а практической пользы от них НОЛЬ. Слава Богу что я самоучка и никому никаких тестов не сдавал, и ничего, и работа программистом есть и зарплата не самая плохая :)
 

deMone

Злой страшный дядька
Регистрация
30.01.2006
Сообщения
937
А на мой взгляд это задача больше на соображаловку, а не на знания.
 

Makogon

New Member
Регистрация
19.08.2006
Сообщения
9
<html>
<head>
<script>

function change_style(id) {
obj=document.getElementById(id);
obj.style.fontSize="50px";
var n = 100;
alert(eval(n++ + + ++n));
}

</script>
</head>
<body>
<div id="div1"> ПРОВЕРКА </div>
<a href="java script:change_style('div1')">Жми</a>
</body>
</html>

У меня выдает 202, а у вас?
 

deMone

Злой страшный дядька
Регистрация
30.01.2006
Сообщения
937
202, конечно. Но вы не посмотрели задание и сделали неправильно.

Вопрос был не «что выведет eval», а чему в итоге будет равно n.

добавьте alert(n); после eval() и посмотрите :)
 

Makogon

New Member
Регистрация
19.08.2006
Сообщения
9
"Что вернут JavaScript-команды var n = 100; eval(n++ + + ++n);? "

Вот оригинал вопроса. Про "n" там ни слова. Там спрашивается "JavaScript-команды". Как по мне то вопрос сформулирован по дурацки. Поэтому о ответ, если правильно, НИХРЕНА ТАМ НИЧЕГО НЕ ВЕРНЁТ :)
 

deMone

Злой страшный дядька
Регистрация
30.01.2006
Сообщения
937
Посмотрел. Очень правильный ответ. Не вернёт нихрена.
 
Статус
Закрыто для дальнейших ответов.
Верх Низ