Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #281 (permalink)  
Старый 28.11.2013, 21:44
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от Gozar
Что еще за значение блока? расскажи поподробней, может я чего не знаю и у блоков есть значения?
да он укурен по самые помидоры )
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #282 (permalink)  
Старый 28.11.2013, 22:11
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Сообщение от nerv_ Посмотреть сообщение
да он укурен по самые помидоры )
Ты что то имеешь против помидоров ?
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Ответить с цитированием
  #283 (permalink)  
Старый 28.11.2013, 22:35
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

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

let fn = () => {
    1
}


Проверить можно уже в FF и Traceur, что 1 не вернется, а return {1} приведет к ошибке.

Последний раз редактировалось monolithed, 28.11.2013 в 22:40.
Ответить с цитированием
  #284 (permalink)  
Старый 28.11.2013, 22:40
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Оставлю это тут может кому пригодиться.
https://github.com/cyberua/gallery_course_work/
https://drive.google.com/folderview?...&usp=sha ring
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #285 (permalink)  
Старый 28.11.2013, 23:13
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 18.11.2013
Сообщений: 275

Сообщение от monolithed
Пример в студию тебя не понимают.
какое слово те не понятно в предложении "блок возвращает результат последнего выражения в нем" ?

не забываем что тут 1-3 человека включая меня которые знают как устроен яваскрипт, остальные нубы нубами. так что не удивительно что вы не понимаете о чем я.

var block = eval('{1+2; 3+5;}')
alert(block)



Сообщение от monolithed
return {1} приведет к ошибке.


ВОЗМОЖНО ПО ЭТОМУ я поднял вопрос как синтаксически грамотно вывести блок не используя ивал, использовать ухищрения парсера яваскрипта чтобы заставить его вернуть значение блока????


п.с. к слову arr.1 тоже ошибка будет, но это не значит что там нет ключа 1, это значит что парсер не может распознять такую конструкцию, то же и с блоками, return ожидает немного другое.

Сообщение от kobezzza
Заменяет строки, комменты и регулярные выражения на __ESCAPER_QUOT__номер_ , чтобы удобней было парсить, а потом сделать обратную замену.
либа использовать не буду но идея годная, а я че то все дерево строил потом обратно разворачивал в код, короче по правильно, но я понял что тут это лишнее =)

Последний раз редактировалось Maxmaxmaximus3, 28.11.2013 в 23:23.
Ответить с цитированием
  #286 (permalink)  
Старый 28.11.2013, 23:29
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Maxmaxmaximus3
не забываем что тут 1-3 человека включая меня которые знают как устроен яваскрипт, остальные нубы нубами. так что не удивительно что вы не понимаете о чем я.

var block = eval('{1+2; 3+5;}')
alert(block)
Какое отношение этот школьный пример имеет к твоему вопросу?

function name(){

  {
    2+3;
    5+1;
  }

}


Сообщение от Maxmaxmaximus3
в будущих версиях экмы, и функции так будут делать
Как так, кроме тебя еще кто-нибудь об этом знает?

Последний раз редактировалось monolithed, 28.11.2013 в 23:40.
Ответить с цитированием
  #287 (permalink)  
Старый 28.11.2013, 23:34
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 18.11.2013
Сообщений: 275

Сообщение от monolithed
Какое отношение этот пример имеет к твоему вопросу?
тут я показываю тебе предложение "блок возвращает последнее выражение" как ты и просил показать.
Ответить с цитированием
  #288 (permalink)  
Старый 28.11.2013, 23:41
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Maxmaxmaximus3
ВОЗМОЖНО ПО ЭТОМУ я поднял вопрос как синтаксически грамотно вывести блок не используя ивал, использовать ухищрения парсера яваскрипта чтобы заставить его вернуть значение блока????

тут я показываю тебе предложение "блок возвращает последнее выражение" как ты и просил показать.

{
  var a = 1;
}

alert(a); // 1


В ES6 добавится блочная область видимости:


{
   let a = 1;
}

alert(a); // ReferenceError
Ответить с цитированием
  #289 (permalink)  
Старый 29.11.2013, 00:06
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 18.11.2013
Сообщений: 275

monolithed, так, давай другой пример,

function (){
2+2;
4+3;
}


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

иными словами я из

function (){
2+2;
4+3;
}


хочу сделать

function () {
return {
2+2;
4+3;
}

}

Почему не ивал? Потому что я хочу составить такой код функции который бы реализовывал такое поведение, и я бы создал из него новую функцию new Function('code'); и она работала бы с нативной скоростью.


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

Последний раз редактировалось Maxmaxmaximus3, 29.11.2013 в 00:10.
Ответить с цитированием
  #290 (permalink)  
Старый 29.11.2013, 00:14
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Maxmaxmaximus3
я хочу вырезать тело функции и использовать его как блок
К чему весь это бред?

Используй Perl

Сообщение от Maxmaxmaximus3
блок возвращает результат последнего выражения в нем
А может и не возвращать:
foo: {
    var a = 0;

    break foo;

    var a = 1;
}

alert(a) //0



Последний раз редактировалось monolithed, 29.11.2013 в 00:17.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск плагина Менеджер картинок serhio11 jQuery 2 27.01.2014 15:43
Автопереключатель картинок Vempel Общие вопросы Javascript 0 03.10.2013 18:36
Смишных видео с намеком тред godofjavascript Оффтопик 4 30.12.2012 23:50
Одинаковая высота картинок Irina13 Javascript под браузер 15 29.02.2012 12:06
Загрузчик картинок Livanderiaamarum Общие вопросы Javascript 1 15.01.2012 17:21