- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
// куча if и небольшой кусок логики
// ...
} else {
response["message"] = "Access Denied";
response.shortlist = undefined;
callback(response);
}
} else {
response["message"] = "Access Denied";
response.shortlist = undefined;
callback(response);
}
} else {
response["message"] = "Access Denied";
response.shortlist = undefined;
callback(response);
}
});
} else {
response["message"] = "Access Denied";
response.shortlist = undefined;
callback(response);
}
} else {
response["message"] = "Access Denied";
response.shortlist = undefined;
callback(response);
}
} else {
response["message"] = "Access Denied";
response.shortlist = undefined;
callback(response);
}
} else {
response["message"] = "Invalid Method";
response.shortlist = undefined;
callback(response);
}
alex228 04.11.2017 19:56 # 0
SemaReal 04.11.2017 20:02 # +1
Vsnegovik 11.11.2017 17:04 # 0
alex228 11.11.2017 17:46 # 0
Vsnegovik 11.11.2017 18:02 # +1
https://learn.javascript.ru/es-class - классы есть
Параметры в функциях по умолчанию, ну если очень хочется, то в новой спецификации это тоже есть -
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Functions/Default_parameters
Очень мало встроенных возможностей - Зайдите на npm и подключайте momentJS для удобной работы с датами (если стандартное не нравится) loadash для работы с массивами, если не нравится стандартная работа с массивами.
https://habrahabr.ru/company/mailru/blog/329258/ - бенчмарки
Не путайте "понятно и логично" с привычно и знакомо.
Колбеки - это зло, согласен, не рекомендую использовать их ни в одном языке программирования, почитайте про callbackHell, если раньше не слышали.
В js есть промисы, есть очереди, производительность nodejs серверов на высоком уровне.
У вас когда-то не получилось что-то, не так как на php - значит говно?
SemaReal 11.11.2017 18:42 # 0
Что?
Где в JS функциональное программирование?
inkanus-gray 11.11.2017 18:57 # +2
SemaReal 11.11.2017 19:07 # 0
inkanus-gray 11.11.2017 19:38 # 0
В JS (с тех пор, как появились объекты) есть ещё прототипное программирование. Можно, конечно, предположить, что он спутал функциональное и прототипное, но нам остаётся только гадать.
SemaReal 11.11.2017 19:43 # +1
Прототип-ориентированность это частный случай ООП. Так что товарищ запутался
inkanus-gray 11.11.2017 19:45 # 0
SemaReal 11.11.2017 19:48 # +1
А если без шуток, но проблема JS, имхо, именно в том что за 20 лет так и не были разработаны удобные практики для прототип-ориентированного программирования, а для класс-ориентиованного они есть.
Люди пытаются эмулировать класс-ориентированный подход в JS и потому он выглядит как говно, прикрученное к стенке синей изолентой.
В ES2015 наконец признали что нужность нормального синтаксиса для класс-ориентированного подхода.
Там теперь стало можно
inkanus-gray 11.11.2017 19:54 # +2
Эх, пыхомакакам не понять...
SemaReal 11.11.2017 20:39 # +4
1024-- 11.11.2017 23:06 # 0
SemaReal 11.11.2017 23:24 # +1
А иммутабельные строки и возможность передавать указатель на функцию есть даже в C :)
JS мультипарадигменный ЯП.
1024-- 11.11.2017 23:59 # 0
> В такой же степени это всё есть в
> JS мультипарадигменный ЯП.
Не сказал бы что, наличие этих возможностей в других языках, и наличие других возможностей в самом JS делает язык категорически не функциональным.
Зашквар императушнёй тут не должен использоваться в качестве важнейшего аргумента, т.к. для ввода-вывода всё равно придётся выйти из чистого мирка.
alex228 11.11.2017 19:01 # 0
нет. я начал писать на этих двух языках приблизительно одновременно. и если с php было всё всегда хорошо, то с js батхерт. не потому, что не так как в php. и даже не из-за кроссбраузерности... а просто говно, просто говняное и непродуманое api, раз сколько бы не сталкивался, всегда приходится лезть в доку.
удивительно, что даже классы появились, и даже параметры по умолчанию, просто чудо какое-то, и года не прошло...) то, что это сейчас появляется - только подтверждает мои слова. оно там должно было быть с самого начала. в общем говно...но это сугубо моё мнение, я никому его не навязываю, а просто поделился им. а еще, забавная фича...из-за отсутсвия этих самых классов столько вариантов по организации кода, там тебе и объекты, и функции и модули и всё перемешано...)
SemaReal 11.11.2017 19:18 # +2
это говорит программист на php?;)
alex228 11.11.2017 19:19 # 0
SemaReal 11.11.2017 19:21 # 0
Но JavaScript тоже ужасен, я даже не знаю кто страшней.
alex228 11.11.2017 19:23 # 0
SemaReal 11.11.2017 19:33 # +1
alex228 11.11.2017 21:17 # 0
SemaReal 11.11.2017 21:30 # 0
Но наличие его в браузерах это, конечно, единственная причина, почему он до сих пор жив. Если бы не это, то он давно бы уже оказался на свалке.
inkanus-gray 11.11.2017 21:49 # 0
Кстати, а какие альтернативы были в браузерах? Я помню, что в IE раньше был vbscript.
SemaReal 11.11.2017 22:02 # +3
https://docs.microsoft.com/en-us/scripting/winscript/windows-script-engines.
Этот же "Script Engine" работает в WSH ("скриптики на локальной машине"), и он же работает на бекенде веба в IIS ("ASP classic")
Разница только в доступных ему объектах: DOM модель в браузере, HTTP request в IIS и всякие WshShell в WSH.
Винда уже лет 20 шипит с собой два скриптинг энджина: JavaScript (для вебовцев) и VBScript (для людей с бекграундом в VB).
Так что в Windows еще 20 лет назад можно было писать на Одном Языке (JS) и на бекенде, и на фронтэнде (за долго до nodejs, лол!).
К сожалению, кросс-платформенность гарантирована только для JS.
Гугл пытался протолкнуть свой Dart. Язык симпатичный, но кроме Chrome его никто не захотел уметь, увы, и Гугл на него забил.
Так что альтернатив нет.
Но! Если смотреть на Ecma 262 как на виртуальную машину, то писать можно на чем угодно, и потом просто под нее компилироваться. Выбор огромен: kotlin (js compiler), java (gwt) ,python (sculp) итд.
Но придется шипить рантайм и стандартную либу этих языков (в браузере=то ее нет), так что это отлично подходит для single-page apps (которые весят 15 мегабайт, грузятся один раз и потом 3 часа работают), а вот делать выпадающие меню для сайтика на этом всем тяжко
roman-kashitsyn 11.11.2017 22:11 # 0
Не совсем.
SemaReal 11.11.2017 22:17 # 0
Вот все мило в дарте, но зачем там ключевое слово "new"? В языках где программист не может вручную управлять размещением объекта на стеке/куче, где у тебя никогда нет объектов, а есть только указатели на них -- в таких ЯПах "new" только место занимает.
Это поняли в Kotlin, например.
SemaReal 11.11.2017 23:27 # 0
покажите красивый код на JS
просто интересно
Vsnegovik 12.11.2017 00:44 # 0
К примеру https://github.com/jasmine/jasmine/blob/master/Gruntfile.js
subaru 12.11.2017 02:47 # 0
dxd 12.11.2017 12:07 # 0
gost 05.11.2017 09:27 # +3
inkanus-gray 05.11.2017 10:43 # +1
bormand 05.11.2017 10:50 # +2
subaru 05.11.2017 22:24 # +2
d_fomenok 12.11.2017 12:51 # 0
Fike 05.11.2017 21:43 # +4
Steve_Brown 08.11.2017 09:55 # +2
SemaReal 08.11.2017 17:38 # +3