JS и его "недостатки"
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.123] |
|
|
Правила раздела:
| Страницы: (66) « Первая ... 20 21 [22] 23 24 ... 65 66 ( Перейти к последнему сообщению ) |
JS и его "недостатки"
|
Сообщ.
#316
,
|
|
|
|
Это очередной костыль, чтобы иметь нечто подобное перегрузке по количеству параметров. Хотя такая перегрузка удобна, почему нельзя было сделать это цивильно - всё такая же грибная тайна. |
|
Сообщ.
#317
,
|
|
|
|
Цитата D_KEY @ На самом деле все-таки лучше думать об этом, как об индексах с конца последовательности, ибо указать неверный индекс питон тебе не даст, потому индексы, строго говоря, не по модулю количества элементов считаются. |
|
Сообщ.
#318
,
|
|
|
|
|
Сообщ.
#319
,
|
|
|
|
![]() ![]() function f() { console.log('arguments num: '+ arguments.length); if (arguments.length) { console.log('first: '+ arguments[0]); console.log('last: '+ arguments[arguments.length-1]); } } f(); f(1, 2, 3); f(1, 2, 3, 4, 5); ![]() ![]() arguments num: 0 arguments num: 3 first: 1 last: 3 arguments num: 5 first: 1 last: 5 D_KEY, в чем суть примера? Добавлено Цитата Мяут-Настоящий @ "неопределенный", что из этого следует? Где неоднозначность? undefined - как с английского переводится? ![]() |
|
Сообщ.
#321
,
|
|
|
|
Цитата Астарот @ Я тоже самое привел, только тоже не знаю, что он этим хотел сказать... Извинил и даже не стал глядеть - объясни словами, а? |
|
Сообщ.
#322
,
|
|
|
|
Цитата fatalist @ только тоже не знаю, что он этим хотел сказать... Мне начинает казаться, что он решил, будто нам интересно "как там в питоне" Если это так, то я русским по белому говорю - мне не интересно. |
|
Сообщ.
#323
,
|
|
|
|
Цитата fatalist @ D_KEY, в чем суть примера? Суть примера в том, что такой механизм работы с аргуметами избавляет язык от разрешения на вызов функции не с теми параметрами, на которые она была рассчитана: ![]() ![]() def f(x): return x + x ![]() ![]() >>> f() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: f() takes exactly 1 positional argument (0 given) В этом случае и undefined не нужен. |
|
Сообщ.
#324
,
|
|
|
|
Цитата Астарот @ Если это так, то я русским по белому говорю - мне не интересно. Скажи с чем сравнивать js? А если не хочешь сравнивать, то ответь в чем тогда заключается холивар и каков смысл твоего в нем участия? |
|
Сообщ.
#325
,
|
|
|
|
Цитата D_KEY @ Суть примера в том, что такой механизм работы с аргуметами избавляет язык от разрешения на вызов функции не с теми параметрами, на которая она была рассчитана Может я чего не понял, но как по мне весь твой механизм сводится к тому, что ты можешь вычислить количество аргументов вызова функции Добавлено Цитата D_KEY @ Скажи с чем сравнивать js? Ты его волен сравнивать с чем твоей душе угодно, я-то тут при чем? Цитата D_KEY @ А если не хочешь сравнивать, то ответь в чем тогда заключается холивар и каков смысл твоего в нем участия? Название темы видишь? JS и его "недостатки". Даже забыв о том, что это название давал модер разделивший тема все равно довольно сложно найти там слово "сравнение". Я готов обсудить недостатки js, но совершенно не готов сравнивать его с какими-то чуждыми мне языками. Нравятся другие языки? Работай на них, зачем тебе js. |
|
Сообщ.
#326
,
|
|
|
|
Цитата Астарот @ Может я чего не понял, но как по мне весь твой механизм сводится к тому, что ты можешь вычислить количество аргументов вызова функции ![]() Нет, я могу сказать, что моя функция принимает произвольное число аргументов и в этом случае аргументы будут мне поданы в виде кортежа. Это покрывает твой пример на тему того, что разные клиенты(браузеры) по разному работают с функцией. Добавлено Цитата Астарот @ Я готов обсудить недостатки js, но совершенно не готов сравнивать его с какими-то чуждыми мне языками. А научишь обсуждать недостатки чего-либо, не сравнивая это с чем-то аналогичным, но лишенным этих самых недостатков? |
|
Сообщ.
#327
,
|
|
|
|
Если что - я не считаю js идеалом, и вполне признаю, что в других языках дофига прикольных плюшек
Добавлено Цитата D_KEY @ Нет, я могу сказать, что моя функция принимает произвольное число аргументов и в этом случае аргументы будут мне поданы в виде кортежа. Это покрывает твой пример на тему того, что разные клиенты(браузеры) по разному работают с функцией. И что нам это дает? В js тоже так можно http://javascript.ru/arguments Добавлено Цитата D_KEY @ А научишь обсуждать недостатки чего-либо, не сравнивая это с чем-то аналогичным, но лишенным этих самых недостатков? Еще раз повторяю - ты можешь сравнивать с чем тебе угодно, хоть с руби, хоть с питоном. Я ни того ни другого не знаю, поэтому все твои портянки кода буду просто пропускать, как не интересные. Видишь недостаток - покажи псевдокодом, бумем обсуждать недостаток, а не реализацию в питоне/руби/хрензнаетчем. |
|
Сообщ.
#328
,
|
|
|
|
Астарот, если без питона, то хотел бы ты, чтобы javascript бил по рукам за то, что ты вызываешь фукнкцию с неправильным числом аргументов, а для произвольного их числа имелся специальный синтаксис(например ...):
![]() ![]() function f(... arguments) { console.log('arguments num: '+ arguments.length); if (arguments.length) { console.log('first: '+ arguments[0]); console.log('last: '+ arguments[arguments.length-1]); } } f(); f(1, 2, 3); f(1, 2, 3, 4, 5); ![]() ![]() arguments num: 0 arguments num: 3 first: 1 last: 3 arguments num: 5 first: 1 last: 5 ? |
|
Сообщ.
#329
,
|
|
|
|
Цитата fatalist @ "неопределенный", что из этого следует? Где неоднозначность? Ну дак неопределенности порождают неоднозначности |
|
Сообщ.
#330
,
|
|
|
|
Цитата D_KEY @ Астарот, если без питона, то хотел бы ты, чтобы javascript бил по рукам за то, что ты вызываешь фукнкцию с неправильным числом аргументов, а для произвольного их числа имелся специальный синтаксис(например ...): Ну и нахрена, спрашивается в задачнике, нужно ДВА синтаксиса для одной и той же задачи? js тебе позволяет вообще делать так:![]() ![]() function f() { ... } f(1, 2, 3, "haba-haba"); и уже в теле функции хоть на голове стой. |