Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Обсуждений тред (https://javascript.ru/forum/offtopic/47364-obsuzhdenijj-tred.html)

ixth 05.08.2014 22:06

Цитата:

Сообщение от Safort (Сообщение 324484)

Я знаю что такое function expression. Зачем использовать такой способ, если есть более простой function declaration? С ним работает хойстинг, он лучше оптимизируется и сжимается.

Safort 05.08.2014 22:14

ixth,
у меня пока что два варианта:
1. Хочется
2. Для оптимизации
Вот примерчик

//не оптимизированный вариант
  function fun(i) {  ...  }
  function fun2(i) {  ...  }

  for (var i = 0; i < мильён; i++) {

    if (условие) {
      fun(i);
    } else {
      fun2(i);
    }

  }




// оптимизорованный
  function fun(i) {  ...  }
  function fun2(i) {  ...  }

  var f;

  if (условие) {
    f = fun;
  } else {
    f = fun2;
  }

  for (var i = 0; i < мильён; i++) {
    f(i);
  }

kobezzza 05.08.2014 22:23

В ES5 FunctionDeclaration обязан быть либо вверху глобали, либо функции, т.е.

function foo() {
    'use strict';
    if (true) {
        function bar() { // Error
        }
    }
}


В ES6 обсуждают концепцию локальных деклараций, а пока юзаю let + FunctionExpression если нужно такое.

bes 05.08.2014 22:31

Цитата:

Сообщение от ixth
Какого черта ты не показал куда именно мне заглянуть?

какого чёрта ты такой наглый и не умеешь гуглить
http://javascript.ru/basic/functions

ixth 05.08.2014 22:55

Цитата:

Сообщение от kobezzza (Сообщение 324491)
В ES5 FunctionDeclaration обязан быть либо вверху глобали, либо функции, т.е.

function foo() {
    'use strict';
    if (true) {
        function bar() { // Error
        }
    }
}


В ES6 обсуждают концепцию локальных деклараций, а пока юзаю let + FunctionExpression если нужно такое.

Да, но "вверху глобали" !== "выше в коде", так?

Такой пример у меня нормально отрабатывает:
function foo() {
    'use strict';
    var a = 1;

    return a + bar();

    function bar() {
        return 1;
    }
}

kobezzza 05.08.2014 22:59

Цитата:

Да, но "вверху глобали" !== "выше в коде", так?
Ну имеется ввиду не может быть вложен в блок, там if и т.д.

Цитата:

Такой пример у меня нормально отрабатывает
Ну разумеется :)

Safort 05.08.2014 23:02

ixth,
Цитата:

Такой пример у меня нормально отрабатывает
канешн отрабатывает, там же объявляется фанкшн внутри фанкшн, так дозволено делать.

ixth 05.08.2014 23:38

Цитата:

Сообщение от bes (Сообщение 324493)
какого чёрта ты такой наглый

Патамучто я дольше на раене-на!



Цитата:

Сообщение от bes (Сообщение 324493)
и не умеешь гуглить http://javascript.ru/basic/functions

Спасибо, я знаю основы.

Я думал, возможно, есть какая-то особая магия, о которой я не знаю. Но судя по всему все делают, потому что Резиг так сказал. Но резюме отсюда немного отрезвляет, конечно.

ixth 05.08.2014 23:39

Цитата:

Сообщение от kobezzza (Сообщение 324501)
Ну имеется ввиду не может быть вложен в блок, там if и т.д.

Отлично. Я привык, что функции внутри скоупа — как сноски, внизу.

nerv_ 06.08.2014 16:51

Цитата:

Сообщение от melky
разница между TDD и BDD в том, какие сами тесты (синтаксис) и что они тестируют

может ты нам еще про разницу между unit & e2e расскажешь? :)


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