- 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);
}
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 - значит говно?
Что?
Где в JS функциональное программирование?
В JS (с тех пор, как появились объекты) есть ещё прототипное программирование. Можно, конечно, предположить, что он спутал функциональное и прототипное, но нам остаётся только гадать.
Прототип-ориентированность это частный случай ООП. Так что товарищ запутался
А если без шуток, но проблема JS, имхо, именно в том что за 20 лет так и не были разработаны удобные практики для прототип-ориентированного программирования, а для класс-ориентиованного они есть.
Люди пытаются эмулировать класс-ориентированный подход в JS и потому он выглядит как говно, прикрученное к стенке синей изолентой.
В ES2015 наконец признали что нужность нормального синтаксиса для класс-ориентированного подхода.
Там теперь стало можно
Эх, пыхомакакам не понять...
А иммутабельные строки и возможность передавать указатель на функцию есть даже в C :)
JS мультипарадигменный ЯП.
> В такой же степени это всё есть в
> JS мультипарадигменный ЯП.
Не сказал бы что, наличие этих возможностей в других языках, и наличие других возможностей в самом JS делает язык категорически не функциональным.
Зашквар императушнёй тут не должен использоваться в качестве важнейшего аргумента, т.к. для ввода-вывода всё равно придётся выйти из чистого мирка.
нет. я начал писать на этих двух языках приблизительно одновременно. и если с php было всё всегда хорошо, то с js батхерт. не потому, что не так как в php. и даже не из-за кроссбраузерности... а просто говно, просто говняное и непродуманое api, раз сколько бы не сталкивался, всегда приходится лезть в доку.
удивительно, что даже классы появились, и даже параметры по умолчанию, просто чудо какое-то, и года не прошло...) то, что это сейчас появляется - только подтверждает мои слова. оно там должно было быть с самого начала. в общем говно...но это сугубо моё мнение, я никому его не навязываю, а просто поделился им. а еще, забавная фича...из-за отсутсвия этих самых классов столько вариантов по организации кода, там тебе и объекты, и функции и модули и всё перемешано...)
это говорит программист на php?;)
Но JavaScript тоже ужасен, я даже не знаю кто страшней.
Но наличие его в браузерах это, конечно, единственная причина, почему он до сих пор жив. Если бы не это, то он давно бы уже оказался на свалке.
Кстати, а какие альтернативы были в браузерах? Я помню, что в IE раньше был vbscript.
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 часа работают), а вот делать выпадающие меню для сайтика на этом всем тяжко
Не совсем.
Вот все мило в дарте, но зачем там ключевое слово "new"? В языках где программист не может вручную управлять размещением объекта на стеке/куче, где у тебя никогда нет объектов, а есть только указатели на них -- в таких ЯПах "new" только место занимает.
Это поняли в Kotlin, например.
покажите красивый код на JS
просто интересно
К примеру https://github.com/jasmine/jasmine/blob/master/Gruntfile.js