JS и его "недостатки"
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.123] |
|
|
Правила раздела:
| Страницы: (66) « Первая ... 24 25 [26] 27 28 ... 65 66 ( Перейти к последнему сообщению ) |
JS и его "недостатки"
|
Сообщ.
#376
,
|
|
|
|
Цитата Астарот @ Повторить про функции которые с одним параметром возвращают значение, а с двумя - устанавливают? А как они называются тогда? getsetVariable()? |
|
Сообщ.
#377
,
|
|
|
|
Ну, ok, а по теме то чего-нить наструячите? |
|
Сообщ.
#378
,
|
|
|
|
Цитата Мяут-Настоящий @ Какой смысл имеют вызовы getSomeThings(1, 2), sumArguments() и sumArguments(1, "x", 0.5, true)? ![]() Даже если это не имеет никакого смысла - дальше-то что? Положим не имеет, тот, кто вызывает тупой упырь не осиливший доку, и что это изменило? Первый вызов у тебя все так же вернет все, что надо, второй вполне может обломится потому что у тебя запросто может быть не объявленная s, что есть вина программиста то есть тебя. Третий отвалится из-за "х" в параметрах. Ну, и что ты доказал? |
|
Сообщ.
#379
,
|
|
|
|
В Java, C/C++ и Python есть по сути три типа функций (хотя в Python все сложнее, но забудем пока про kwargs): - Без аргументов - С фиксированным числом аргументов - С произвольным числом аргументов Их семантика четко определяется в объявлении функции. В JS - есть только один тип функции - с произвольным числом аргументов, однако по опыту программирования таких функций в программе - меньшинство. Добавлено Цитата Астарот @ Положим не имеет, тот, кто вызывает тупой упырь не осиливший доку, и что это изменило? В случае если кто-то не осилил/не понял доку всегда должен быть компилятор и интерпретатор, который контролирует ошибки. К тому же возможна же ситуация, когда в библиотечной функции меняется число аргументов - в этом случае вместо сообщения об ошибке я получу неопределенное поведение. Добавлено Цитата Астарот @ Третий отвалится из-за "х" в параметрах. Да ну! ![]() ![]() sumArguments(1, "x", 0.5, true) "00123" Via http://jsconsole.com |
|
Сообщ.
#380
,
|
|
|
|
Цитата Мяут-Настоящий @ А как они называются тогда? getsetVariable()? ![]() Лично тебе разрешаю начинать название любой функции с myaut_ ![]() Цитата Мяут-Настоящий @ В Java, C/C++ и Python есть по сути три типа функций (хотя в Python все сложнее, но забудем пока про kwargs): - Без аргументов - С фиксированным числом аргументов - С произвольным числом аргументов Их семантика четко определяется в объявлении функции. Ты мне баки-то не забивай! Как едрос на дебатах - ему одно, а он другое Ты только что четко видел сколько параметров нужно функции, хотя при ближайшем рассмотрении оказалось что вся четкость сводится к "нужны параметры, или не нужны". Так ведь?Цитата Мяут-Настоящий @ В JS - есть только один тип функции - с произвольным числом аргументов, однако по опыту программирования таких функций в программе - меньшинство. мать твоя женщина Еще раз - тебя эта способность функций к чему-нибудь обязывает? Как писателя? От тебя в связи с ее способностью принять ахринилеард параметров что-то требуется? Какие-то движения? Добавлено Цитата Мяут-Настоящий @ В случае если кто-то не осилил/не понял доку всегда должен быть компилятор и интерпретатор, который контролирует ошибки. К тому же возможна же ситуация, когда в библиотечной функции меняется число аргументов - в этом случае вместо сообщения об ошибке я получу неопределенное поведение. Еще раз - с точки зрения написателя функции от тебя такое поведение требует каких-то телодвизжений? |
|
Сообщ.
#381
,
|
|
|
|
Ой, у вас еще и arguments не итерируемый (WTF?). Но результат все равно доставляет:
![]() ![]() function sumArguments() { s = 0; for (var i = 0; i < arguments.length; i++) s += arguments[i]; return s; } ![]() ![]() sumArguments(1, 2) 3 sumArguments(1, "x", 0.5, true) "1x0.5true" |
|
Сообщ.
#382
,
|
|
|
|
Цитата Мяут-Настоящий @ а это чтобы всяким противникам js жизнь медом не казалась Ой, у вас еще и arguments не итерируемый (WTF?). Но результат все равно доставляет: |
|
Сообщ.
#383
,
|
|
|
|
Цитата Астарот @ Лично тебе разрешаю начинать название любой функции с myaut_ ![]() Есть четкое понятие функций-accessor'ов, предоставляющих доступ к данным и функций, их модифицирующих. Зачем все в кашу-то мешать??? Цитата Астарот @ Ты только что четко видел сколько параметров нужно функции, хотя при ближайшем рассмотрении оказалось что вся четкость сводится к "нужны параметры, или не нужны". Так ведь? Одна последовательность параметров произвольной длины - массив например какой-нибудь. Цитата Астарот @ Еще раз - с точки зрения написателя функции от тебя такое поведение требует каких-то телодвизжений? Конечно, если ты следуешь принципу "проектируйте свои интерфейсы так, чтобы их тяжело было использовать неправильно и легко использовать правильно". Хотя наверно если ты продаешь код библиотеки с поддержкой тебе должно быть плевать на конечного пользователя, ога. Цитата Астарот @ Еще раз - тебя эта способность функций к чему-нибудь обязывает? Как писателя? Астя, программирование - это далеко не только написание кода. |
|
Сообщ.
#384
,
|
|
|
|
Цитата Мяут-Настоящий @ Да ну! Ы! Ты вообще смотрел что оно делает? sumArguments(10, 100, "s", 100500); даст все тот же результат |
|
Сообщ.
#385
,
|
|
|
|
Цитата Астарот @ Ты вообще смотрел что оно делает? sumArguments(10, 100, "s", 100500); даст все тот же результат ![]() А почему арифметическая функция возвращает строковой результат? Почему не объект или undefined например? |
|
Сообщ.
#386
,
|
|
|
|
Цитата Астарот @ Датычо! Хочешь сказать, что если объявил function f(a, b) то это как-то гарантирует тебе вызов f как f(1,2), а не f(1,2,3) или f(1) или вообще f()? ![]() Именно. |
|
Сообщ.
#388
,
|
|
|
|
Цитата Мяут-Настоящий @ Есть четкое понятие функций-accessor'ов, предоставляющих доступ к данным и функций, их модифицирующих. Зачем все в кашу-то мешать??? Я один не понимаю как этот ответ соотносится с вопросом? Цитата Мяут-Настоящий @ Одна последовательность параметров произвольной длины - массив например какой-нибудь. "Какой-нибудь" это ОФИГЕННО конкретно и вселяет уверенность А почему не ровно три параметра с фамилией, именем и отчеством? И таки что меня защитит от передачи пользователем четвертого параметра? Или не передачи одного из первых трех?Цитата Мяут-Настоящий @ Конечно, если ты следуешь принципу "проектируйте свои интерфейсы так, чтобы их тяжело было использовать неправильно и легко использовать правильно". Хотя наверно если ты продаешь код библиотеки с поддержкой тебе должно быть плевать на конечного пользователя, ога. Вместо прямого ответа на прямой вопрос ты ударился в рассуждения пополам с переходом на личности Молодец, подтверждаешь, что сказать нечего. Добавлено Цитата Мяут-Настоящий @ Астя, программирование - это далеко не только написание кода. Ага, я знаю. только какое это имеет отношение к работе конструкции function не очень понятно Хотя звучит умнО, и отдает некими тайными знаниями |
|
Сообщ.
#389
,
|
|
|
|
Цитата Мяут-Настоящий @ А почему нет? С чего бы? |
|
Сообщ.
#390
,
|
|
|
|
Цитата Мяут-Настоящий @ А почему арифметическая функция возвращает строковой результат? Почему не объект или undefined например? мява, давай ты уже посмотришь что НА САМОМ деле делает твоя функция, а? А потом уже поговорим о том, что она возвращает. |