Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   В чем здесь смысл применения void ? (https://javascript.ru/forum/misc/12928-v-chem-zdes-smysl-primeneniya-void.html)

Riim 09.11.2010 06:20

В чем здесь смысл применения void ?
 
function uncheckall() {
  void(d=document);
  void(el=d.getElementsByTagName('INPUT'));
  for(i=0;i<el.length;i++) {
    void(el[i].checked=0);
  }
}


в чем смысл применения void ?

Octane 09.11.2010 06:41

тут бессмысленно

Kolyaj 09.11.2010 08:49

Знатная бредятина.

monolithed 09.11.2010 10:05

А вообще кто-нибудь может привести пример, реальной необходимости применения viod()?

ps: кроме подобных случаев:
javascript:void(document.designMode="on" || contentEditable="true");

Kolyaj 09.11.2010 10:25

Один из способов получения значения undefined.

monolithed 09.11.2010 10:37

Цитата:

Сообщение от Kolyaj
Один из способов получения значения undefine

Так для этого можно же использовать undefined? или есть другие нюансы?

Kolyaj 09.11.2010 10:42

undefined могут переопределить.

monolithed 09.11.2010 10:45

Цитата:

Сообщение от Kolyaj
undefined могут переопределить.

А можно пожалуйста пример

Kolyaj 09.11.2010 10:57

// Подлый код
undefined = 5;

// Ваш код, ничего не знающий о подлом коде
if (window.foo == undefined) {
    alert('Переменная foo не определена');
} else {
    alert('Переменная foo определена');
}

vladlen 10.11.2010 22:59

Интересно, если переменной указать NULL, то указатель сотрется сборщиком мусора, а если void(0), то ...? Станет тоже равна undefined, но не сотрется. Так что ли? Или получит указатель на undefined и опять таки не сотрется. А может все-таки сотрется сразу?
Есть тут тайный смысл, хотя может и нет его :) Узнал бы кто-нибудь и все бы знали. Скорее всего просто восстанавливает значение undefined и не более.
Да, и все это я к тому, что данная функция освобождает память, а от чего я сказать не могу, т.к. и сам не знаю. Надо JS интерпретатор ковырять, а гига монстров тут не наблюдается :(

vladlen 10.11.2010 23:19

Да, как я и думал :) Так заманила эта тема что решил таки попробовать :)
undefined = 5;
alert(undefined);
var i;
undefined = void(i = undefined);
alert(i);
alert(undefined);

Сами куда нить засуньте и выполните :)
Смысл вот в чем: после объявления переменной интерпретатору необходимо время на ее инициализацию, чтобы этого избежать мы используем уже имеющуюся, а после выполнения необходимого кода возвращаем ей значение. Все гениальное просто, а простое гениально ;)
ПРЕДУПРЕЖДЕНИЕ не надо использовать такие подходы, они окупаются только в больших и сложных фреймворках, а в маленьких проектах могут натворить кучу бед!

Kolyaj 10.11.2010 23:24

О чём говорит приведённый кусок кода?

Цитата:

Сообщение от vladlen
после объявления переменной интерпретатору необходимо время на ее инициализацию, чтобы этого избежать мы используем уже имеющуюся, а после выполнения необходимого кода возвращаем ей значение.

Ну что за бред.

vladlen 10.11.2010 23:31

Kolyaj, ну опять ты! Ну сам ты бред! Холи вар?
И ты уж извини, но тут есть масса людей: Gvozd, subzey и многие другие, не примите в обиду вас много, и в том числе и ты, кто кидает в форум "рациональное зерно". Но из твоего сообщения видно, что человек ты не далекий. Я с удовольствием воспринимаю твои замечания по делу, но ревностно отношусь к дибилизму.
Есть что сказать? Приват. Не надо в тему флудить.

B@rmaley.e><e 10.11.2010 23:44

Цитата:

Сообщение от vladlen
Смысл вот в чем: после объявления переменной интерпретатору необходимо время на ее инициализацию

Что? Капитан каг-бэ намекает, что на любое действие интерпретатору необходимо время.
Смысл следующего предложения прошел мимо меня.

vladlen 10.11.2010 23:50

Цитата:

Сообщение от B@rmaley.e><e
Смысл следующего предложения прошел мимо меня

Очень грустно, учите ASM а потом языки высокого уровня.

Kolyaj 10.11.2010 23:55

Цитата:

Сообщение от vladlen
ревностно отношусь к дибилизму

Так я тоже, поэтому и говорю, что ты бред написал. Если в тексте есть какая-то неточность, то это можно обсудить. Если полностью бред, то что там обсуждать?

Цитата:

Сообщение от vladlen
Очень грустно, учите ASM а потом языки высокого уровня.

Давайте лучше вы сначала изучите JS до нормального уровня, спецификацию языка почитаете. JS не транслируется в ASM, зачем его упоминать не первый раз уже?

vladlen 10.11.2010 23:55

Я вдоволь нарадовался с типизированными языками, посему мне сей язык и нравиться: нет проблем. Не надо считать всех заочно идиотами! Хотите померятся своими маленькими пипками? Если хоть кто-то из вас окатиться не выскочкой я принесу публичные извинения! Это очень унизительно. Вы бред несете. Бред в личку
З.Ы. Вы сначала разберитесь как работает вычислительное устройство, а потом будем мериться у кого длиннее, и дай бог чтобы вы говорили правду. Я из этого разговора открою для себя что-то новое. А вам видимо это не интересно. Но это ваши проблемы.

B@rmaley.e><e 11.11.2010 00:01

Цитата:

Сообщение от vladlen
Очень грустно, учите ASM а потом языки высокого уровня.

К сожалению, даже изучение ассемблера не поможет понимать смысл криво сформулированных предложений.
Цитата:

Сообщение от vladlen
нравиться

http://tsya.ru/

vladlen 11.11.2010 00:20

Последний комментарий! Всем кто хочет написать очередной не аргументированный бред, мнящий себя спецом русского языка, живущий в Москве и желающий попить пива - пишите в личку, не засоряйте тему.

DooMer 11.11.2010 11:23

Цитата:

Сообщение от vladlen (Сообщение 78516)
живущий в Москве и желающий попить пива - пишите в личку, не засоряйте тему.

это тебе клуб знакомств чтоле ?

x-yuri 12.11.2010 07:23

Цитата:

Сообщение от vladlen
Очень грустно, учите ASM а потом языки высокого уровня

я так и сделал... эх, положа руку на сердце, перед этим еще было, к сожалению, немного Basic'a и Pascal'а ):

но что это меняет? Очень хотелось бы узнать смысл той фразы

Цитата:

Сообщение от vladlen
Не надо считать всех заочно идиотами

кто так считает? Кто кроме вас в этой теме перешел на личности?

vladlen 12.11.2010 16:53

Цитата:

Сообщение от x-yuri
к сожалению, немного Basic'a и Pascal'а ):
но что это меняет?

Не к сожалению, а к счастью, потом ASM отрезвляет и освежает :)

Цитата:

Сообщение от x-yuri
Кто кроме вас в этой теме перешел на личности?

А я не переходил на личности с флеймом.

vladlen 12.11.2010 17:09

Кстати, после общения на эту тему с B@rmaley.e><e, появилось неприятное ощущение что никакой переменной undefined не существует вообще, а при первой же попытке ей что-то присвоить она создается. А это грозит печальными последствиями. Посему undefined вообще трогать нельзя, ровно как и не стоит ей пользоваться.

blessmaster 14.11.2010 00:23

ECMA постулирует, что undefined - это свойство объекта Global. Но каждая конкретная реализация движка может накладывать свои нюансы.
А вообще не представляю, какой выигрыш можно получить от подмены смысла стандартной переменной, кроме как испортить кому-то код.

x-yuri 14.11.2010 11:38

Цитата:

Сообщение от vladlen
Не к сожалению, а к счастью, потом ASM отрезвляет и освежает

нет, именно, к сожалению. Не люблю ни тот, ни другой. И никакого отрезвления не помню. Абсолютно непонятно, каким боком тут ассемблер. Может расскажете?

Цитата:

Сообщение от vladlen
А я не переходил на личности с флеймом

ну конечно. А как же это?
Цитата:

Сообщение от vladlen
Но из твоего сообщения видно, что человек ты не далекий.

все остальные комментарии касались только утверждений, а не людей

p.s. так как вы отказались объяснять смысл фразы, делаю вывод, что там написан бред

p.p.s.
Цитата:

Сообщение от vladlen
а при первой же попытке ей что-то присвоить она создается. А это грозит печальными последствиями. Посему undefined вообще трогать нельзя, ровно как и не стоит ей пользоваться.

объясните? Или еще один бред?


Часовой пояс GMT +3, время: 03:31.