Alexander
Я сейчас накину небольшой код, а вы попробуйте объяснить какое отличие будет между VE и LE
Alexander
/// Чему равен LE и VE? (function foo() { /// Чему равен LE и VE? var x; /// Чему равен LE и VE? (function bar(){ /// Чему равен LE и VE? var y; x = 2; /// Чему равен LE и VE? })(); /// Чему равен LE и VE? })(); /// Чему равен LE и VE?
Alexander
во всех случаях они равны между собой
Alexander
Я специально так написал чтобы понять где могут возникнуть отличия
Alexander
не возникнет там никаких отличий
Alexander
просто у вложенной функции будут два одинаковых E, которые ссылаются на соответствующие родительские E
Group Butler [beta]
Alexander kicked for flood!
Nikolay
Лол
Anonymous
гайз, а это плохо, когда функциональное программирование нравится и хорошо идет; а вот ООП подход - как-то со скрипом? PS. я знаю, в чем преимущество ООП - масштабируемость как минимум
Ruslan
Слабо без либ? 😄
Alexander
const times = (n, fn) => Array.from({length: n}, fn)
let times=(n,f)=>{for(let i=n;i--;)f()}
Nikolay
Причем тут ооп и масштабируемость? :)
Nikolay
И как страдает масштабируемость при его отсутствии?
Alexander
просто нет
Ilya
Не ебите мозг, _.range.
ну таки underscore / lodash - не ? не смущает что разговор о синтаксических конструкциях самого языка ?
Cenator 🐈
@frp_ru
Cenator 🐈
тут мб что-то интересное будет
Ilya
const!
а давай обсудим, есть какой материал "на почитать" на эту тему... я вот с ходу не найду... стандарт и MDN например до сих пор сетуют туда var использовать :(
Cenator 🐈
const!
чего? в цикле фор конст? как ты его менять то будешь?
Cenator 🐈
для таких случаев let оставили
Cenator 🐈
а вот var и вправду не нужен
Ruslan
а давай обсудим, есть какой материал "на почитать" на эту тему... я вот с ходу не найду... стандарт и MDN например до сих пор сетуют туда var использовать :(
Своей головой подумай. Без let можно почти всегда обойтись (редко может понадобится), без циклов тоже можно обойтись. Почитай про functional programming
Nikolay
Даже без if/else можно обойтись :)
Alexander
Про Ramda слышал?
нинада плз
Ilya
Cenator 🐈
ну я и сказал, let
Cenator 🐈
практически единственный случай где он нужен
Ilya
const!
так что, тут ты в корне не прав :)
Vlad
Подскажите пожаоуйста. На андроид и лесктопе click работает одинаково. А на епл устройствах нужен touch. Какой метод или свойство позволяет определить поддержку события?
Cenator 🐈
</sarcasm>
<Sarcasm />
Ruslan
Ты в корне не прав со своим циклом
Alexander
а вот var и вправду не нужен
только код с let будет немного медленнее, чем с var
Alexander
а с const еще медленнее
Cenator 🐈
с пометкой актуальности
Alexander
пруфы плс
открой jsperf да посчитай
Ilya
Ты в корне не прав со своим циклом
збс... кароче "сворачиваем лавочку", с циклом я не прав :) Или ты меня просто тролишь :)
Cenator 🐈
открой jsperf да посчитай
почему я должен? я не делал таких заявлений.
Alexander
никто не должен, смени тон
Ilya
Только что говорили про функцию times
блин мужики... вы что серьезно ? Это б@#$!ть сторонняя либа - а не конструктив языка.
Ilya
давайте еще что ни будь из jQuery ему посоветуте... чтобы уже совсем "скатиться"
Ruslan
Cenator 🐈
никто не должен, смени тон
http://jsben.ch/1fzoJ вот лол
Cenator 🐈
что там быстрее ты говорил?
Alexander
пруфы плс
Тут выше поминали lexical environment. В ES6 они на каждый блок создаются, плюс при объявлении надо проверять, нет ли уже такой переменной в текущем окружении (А для const еще и ловить assignment). var тупо дешевле.
Ruslan
Измерения проводил? В V8 оптимизаций столько, что делать предположения не вариант
Ilya
Там эту функцию и реализуй
Руслан, блин, хорошь... а ты свой велосипед без использования for циклов будешь делать что ли. Всё, хорошь - успокойся, не позорься.
Ruslan
Да и если чуть быстрее - это недостаточный аргумент
Cenator 🐈
Cenator 🐈
это в новом фф
Cenator 🐈
(let быстрее)
Cenator 🐈
в хроме 1% разница)
Anonymous
если ты только не путаешь функциональное программирование с процедурным
боюсь показаться смешным, но может быть и путаю вот это - это что?
Alexander
восхитительная синтетика, чувак
Alexander
http://jsben.ch/SsibY
Anonymous
Ruslan
Руслан, блин, хорошь... а ты свой велосипед без использования for циклов будешь делать что ли. Всё, хорошь - успокойся, не позорься.
Не... подключу lodash или ramda, настрою webpack на tree shaking. Если буду писать npm пакет, то может и сделаю цикл, но только чтобы избавиться от зависимостей
Alexander
http://jsben.ch/SsibY
а теперь умножь мой пример на количество вложенных блоков (и я уже не говорю о замыканиях) в реальном коде
Alexander
очень нестабильные результаты, на самом деле
Alexander
safari в первом прогоне показал перфоманс хуже с let, теперь он выигрывает на 5%
Alexander
лол
Ilya
ну на самом деле тут всё очевидно, что использование let провоцирует формирование отдельного [[scope]] и необходимой обвязки для изоляции. Это в любом случае немного ухудшает перфоманс. Ну так и не в этом суть.
Cenator 🐈
http://jsben.ch/SsibY
в фф 57+ открой
Ruslan
Вы вообще линтеры юзаете?