Цитата:
|
Цитата:
|
Цитата:
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, время: 00:59. |