Инкремент и декремент
Привет! Накидайте задачек для закрепления материала http://learn.javascript.ru/task/inkr...ent-1708223838
|
объясни почему этот код не работает
var a = 1++; alert(a); |
потому что все нормальные люди напишут:
var a =2; alert(a); или alert(2); |
BaBaKa, по-твоему некий код может не работать только потому, что кто-то пишет какой-то другой код? :D
|
Цитата:
|
bes,
Потому что число является иммутабельным объектом? Соответственно, такой синтаксис является недопустимым. Только я не понимаю, нахрена, чтобы продемонстрировать это, нужно присваивание? При какой п*де тут оно? ++1 |
Цитата:
var a = 1++; alert("something else"); |
bes скинул задачку, как пример "объясни почему этот код не работает" некоторых понесло не туда и не в тему, ладно тему можно закрыть сам напридумывал.
|
Цитата:
throw "ERROR" var rows=document.getElementsByTagName("tr");var j=0;var row=false;var item=false;var imglist=false;var attr="";var change=false;var found=false;var tcat=false;for(var i=0;i<rows.length;i++) {row=rows[i];if(!row.className||row.className=='') {change=false;tcat=false;for(j=0;j<row.childNodes.length;j++) {item=row.childNodes[j];if(item.className&&item.className=='thead') {change=true;} if(item.className&&item.className=='tcat') {if(tcat) {item.className='tcat tcat2';} tcat=true;}} if(change) {row.className='thead-row';imglist=row.getElementsByTagName("img");for(j=0;j<imglist.length;j++) {attr=imglist.item(j).src;if(attr.indexOf('menu_open.gif')>0) {attr=attr.replace(/menu_open.gif/,'menu_open2.gif');imglist.item(j).src=attr;}}}} if(row.className&&row.className=='vbmenu_dark') {imglist=row.getElementsByTagName("img");for(j=0;j<imglist.length;j++) {attr=imglist.item(j).src;if(attr.indexOf('menu_open.gif')>0) {attr=attr.replace(/menu_open.gif/,'menu_open2.gif');imglist.item(j).src=attr;}}}} item=document.getElementById('posts');if(item) {rows=item.getElementsByTagName('table');if(rows&&rows.length>1&&rows[1].className&&rows[1].className==='tborder') {rows[1].style.borderTopWidth='0';}} item=document.getElementById('post');if(item&&item.className&&item.className==='tborder') {item.style.borderTopWidth='0';} ca_parse_bbcode_block(document);function ca_parse_bbcode_block(parent) {rows=parent.getElementsByTagName("table");for(i=0;i<rows.length;i++) {ca_parse_bbcode_table(rows[i]);}} function ca_parse_bbcode_table(row) {return if(row.className&&row.className=='bbcode-rounded bbcode-rounded-code') {item=row.parentNode;if(item.offsetWidth==row.offsetWidth&&item.offsetWidth>0) {change=row.offsetWidth- 40;if(item.className&&item.className=='bbcode-rounded-content') {change=change- 10;} row.style.width=change+'px';imglist=row.getElementsByTagName('pre');if(imglist.length) {imglist[0].style.width=(change- 8)+'px';}} else {change=item.offsetWidth- 40- row.offsetWidth;if(change>10) {if(item.className&&item.className=='bbcode-rounded-content') {change=change- 10;} row.style.width=(row.offsetWidth+ change)+'px';imglist=row.getElementsByTagName('pre');if(imglist.length) {imglist[0].style.width=(imglist[0].offsetWidth+ change- 8)+'px';}}}} if(row.className&&row.className=='bbcode-rounded bbcode-rounded-quote') {item=row.parentNode;if(item.offsetWidth==row.offsetWidth&&item.offsetWidth>0) {change=row.offsetWidth- 40;if(item.className&&item.className=='bbcode-rounded-content') {change=change- 10;} row.style.width=change+'px';} else {change=item.offsetWidth- 40- row.offsetWidth;if(change>10) {if(item.className&&item.className=='bbcode-rounded-content') {change=change- 10;} row.style.width=(row.offsetWidth+ change)+'px';}}}} var ca_bbcode_parsed=true; |
Цитата:
или что, попросил заданий, а, не решив и первого, сразу в кусты? Цитата:
подсказываю http://es5.javascript.ru/x11.html#x11.3 Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
вывод - ищи ответ в последующих строчках |
Цитата:
|
bes,
Не "оно" выводит тебе алерт. Еще раз 1++ |
Цитата:
|
Продолжаем разговор :) Дело в том что я изучаю основы и хотел от Вас получить задачи не такого уровня, а на подобии http://learn.javascript.ru/task/inkr...rement-primery пока считаю не время углубляться, а держаться курса и проходить все постепенно.
|
soltx, вот тебе генератор таких задач: http://learn.javascript.ru/play/6MPGrc
|
Академики охренели. На практике задача проявляется в таком вот контексте
function some_func(){ var i=5; // some logics return i++; } Кодер недоумевает почему вернулось 5. |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
вот весь алгоритм http://es5.javascript.ru/x11.html#x11.3.1 Цитата:
|
bes,
Какой вопрос, я не люблю портянки читать. Сформулируй внятно и кратко. |
Цитата:
1++; |
bes,
Нахрен мне сраная спецификация? Надо быть дебилом, чтобы не понимать, почему это не работает. Почему тогда это не работает +++ А чо, пусть арифметическая операция инкрементируется, чем она хуже? Тебе, наверное, лекарство пора принять. |
Цитата:
иногда, правда, объяснить могут - не работает :D Цитата:
http://es5.javascript.ru/x7.html#x7 Цитата:
http://es5.javascript.ru/x11.html#x11.4.4 Цитата:
Цитата:
|
:-? подожду может кто-то обьяснит почему это не работает. :(
|
Цитата:
|
Цитата:
|
Токены-хуекины тут не стояли. Скалярное значение это не переменная. Запись 1++ означает абсурд, нонсенс, nonsense, бред укуренного стрептококка. Дизайн-тайм наезжает на рантайм и что вы лично bes предложили бы писателям интерпретатора чтобы развести этих братков?
Интерпретатор НЕ может менять исходный текст программы как ему там захочется. Если написано 1 - значит там написано 1, а ++ - идут в жопу, ибо это попытка принудить интерпретатор изменить исходник. Конкретная реализация реакции интерпретатора на свое "нипонял" - вообще не колебет. |
Цитата:
можно писать всё, что угодно, лишь бы транслятор мог это выполнить, а ты понимал, к чему это приведёт, как это всё будет интерпретироваться описано в спецификации, чтобы и другие это поняли также как и ты хорошо, интуитивно вроде бы всем понятно, что 1++ работать не должно кому не понятно, смотрит в консоль и убеждается - действительно, не работает :cray: http://es5.javascript.ru/x11.html#x11.3.1 пункт 1 - описательный числовой литерал в исходном тексте программы представляет собой неизменное значение и не создаёт ссылку (не типа Reference), поэтому пункт 2 проходим без проблем (было рассуждал на тему http://javascript.ru/forum/offtopic/...-perevoda.html) 3, 4 - норма затык на пункте 5 Цитата:
Цитата:
|
Вопрос 2: откуда NaN?
var a = function () {}; a++; alert(a); |
Цитата:
http://es5.javascript.ru/x11.html#x11.3.1 Цитата:
Цитата:
Цитата:
http://es5.javascript.ru/x8.html#x8.12.8 Цитата:
|
Вопрос 3: null :D
|
bes,
Спасибо конечно за науку, но сия премудрость мне не подвласна, не осилил, я уж по привычке: не работает и нафиг, а уж почему не работает, мне то неведомо ...эхх :( |
Цитата:
как полностью осилю - скажу "ничего там сложного нет" :D как бы то ни было, логично для объяснения того, как работают конструкции javascript, использовать именно эти основные правила движения по дорогам исходного кода, а ничто другое и я в подобных темах ещё пару лет назад хотел бы видеть лучше кучу вырезок из спецификации с пояснениями, чем что-либо другое возможно странно, что здесь такое мало практикуется :-? |
:write: может кроме доступного изложения в учебнике добавлять сполер с докой из ECMAScript ... мысли вслух
|
Цитата:
http://learn.javascript.ru/prototype Цитата:
|
Часовой пояс GMT +3, время: 23:13. |