Цитата:
|
Цитата:
|
Цитата:
let fn = () => { 1 } Проверить можно уже в FF и Traceur, что 1 не вернется, а return {1} приведет к ошибке. |
Оставлю это тут может кому пригодиться.
https://github.com/cyberua/gallery_course_work/ https://drive.google.com/folderview?...&usp=sha ring |
Цитата:
не забываем что тут 1-3 человека включая меня которые знают как устроен яваскрипт, остальные нубы нубами. так что не удивительно что вы не понимаете о чем я. var block = eval('{1+2; 3+5;}') alert(block) Цитата:
![]() ВОЗМОЖНО ПО ЭТОМУ я поднял вопрос как синтаксически грамотно вывести блок не используя ивал, использовать ухищрения парсера яваскрипта чтобы заставить его вернуть значение блока???? п.с. к слову arr.1 тоже ошибка будет, но это не значит что там нет ключа 1, это значит что парсер не может распознять такую конструкцию, то же и с блоками, return ожидает немного другое. Цитата:
|
Цитата:
function name(){ { 2+3; 5+1; } } Цитата:
|
Цитата:
|
Цитата:
{ var a = 1; } alert(a); // 1 В ES6 добавится блочная область видимости: { let a = 1; } alert(a); // ReferenceError |
monolithed, так, давай другой пример,
function (){ 2+2; 4+3; } я хочу вырезать тело функции и использовать его как блок, и то что вернет этот блок отретурнить, таким образом я реализую поведение когда функция возвращает результат последнего выражения и без оператора return. ивал использовать нельзя потому что он медленный. иными словами я из function (){ 2+2; 4+3; } хочу сделать function () { return { 2+2; 4+3; } } Почему не ивал? Потому что я хочу составить такой код функции который бы реализовывал такое поведение, и я бы создал из него новую функцию new Function('code'); и она работала бы с нативной скоростью. И это решение просто красивое, разумеется если нет способа, то придется парсить код функции и искать последнее выражение и перед ним рисовать return. |
Цитата:
Используй Perl Цитата:
foo: { var a = 0; break foo; var a = 1; } alert(a) //0 :) |
Часовой пояс GMT +3, время: 08:20. |