JS и его "недостатки"
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.123] |
|
|
Правила раздела:
| Страницы: (66) « Первая ... 42 43 [44] 45 46 ... 65 66 ( Перейти к последнему сообщению ) |
JS и его "недостатки"
|
Сообщ.
#646
,
|
|
|
|
Хорошо, вот он: http://www.ecma-international.org/publicat...ST/Ecma-262.pdf
Если укажете, где именно там указано, что аргументы не могут иметь значения по дефолту, буду премного благодарен... |
|
Сообщ.
#648
,
|
|
|
|
Все дело в языке. Зачем гадить в язык, если можно нагадить лишь в его интерпретации в браузере ? |
|
Сообщ.
#649
,
|
|
|
|
Цитата D_KEY @ Ну в браузерах оно нам нафик не сдалось! А в "своих" интерпретаторах делайте, чтохотите, хоть на голове стойте... Все дело в языке. Зачем гадить в язык, если можно нагадить лишь в его интерпретации в браузере ? |
|
Сообщ.
#650
,
|
|
|
|
Цитата D_KEY @ Все дело в языке. Зачем гадить в язык, если можно нагадить лишь в его интерпретации в браузере ?Ты на минутку так и не обосновал этого "гаденья", но если уж на то пошло, то и правда - запиливаешь свой js движок, и в нем хоть строгую типизацию, хоть блекджек со шлюхами, хоть Lua Но покамест на практике имеем то, что имеем - основная ниша js это браузеры. они разные и с каждым из них нужно жить, и по возможности не доставляя программисту не нужных проблем. Добавлено При этом нужно еще и сквозь игольное ушко быстродействия пролезть! |
|
Сообщ.
#651
,
|
|
|
|
Цитата fatalist @ А в "своих" интерпретаторах делайте, чтохотите, хоть на голове стойте... Так стандарт жеж. Веб же может себе позволить нестрогое следование стандартам И вообще какой смысл в этой теме при изначальном подходе "используем то, что используем, если чего-то нет, значит это и не нужно(обходимся же)"? |
|
Сообщ.
#652
,
|
|
|
|
Кстати тот JS, который сейчас работает в браузерах, далеко не последняя версия...
http://ru.wikipedia.org/wiki/JavaScript |
|
Сообщ.
#653
,
|
|
|
|
Цитата Астарот @ Но покамест на практике имеем то, что имеем - основная ниша js это браузеры. они разные и с каждым из них нужно жить, и по возможности не доставляя программисту не нужных проблем. Добавлено При этом нужно еще и сквозь игольное ушко быстродействия пролезть! Я понял твою мысль, можешь больше не повторять |
|
Сообщ.
#654
,
|
|
|
|
Цитата D_KEY @ Я выше задавал вопрос по стандарту, есть на него ответ? Так стандарт жеж. |
|
Сообщ.
#655
,
|
|
|
|
Цитата fatalist @ Я выше задавал вопрос по стандарту, есть на него ответ? Ну загляну когда в стандарт, будет и ответ |
|
Сообщ.
#656
,
|
|
|
|
Цитата D_KEY @ И вообще какой смысл в этой теме при изначальном подходе "используем то, что используем, если чего-то нет, значит это и не нужно(обходимся же)"? Тема о недостатках языка, а факт остается тем не менее фактом от которого никуда не дется и с которым надо жить - и благодаря которому многие "недостатки" превращаются в преимущества |
|
Сообщ.
#657
,
|
|
|
|
Цитата D_KEY @ Ну значит пока и обсуждать нечего... Ну загляну когда в стандарт, будет и ответ Просто ECMAScript это только ядро... над ним в JavaScript много чего надстроено... Есть другие реализации (ActionScript · Caja · LiveScript · JScript · JavaScript OSA · JScript .NET · QtScript)... вполне возможно, что в них реализовано что-то из того что вы тут все хотите... А стандарта самого JavaScript нету... зависит все от движка... |
|
Сообщ.
#658
,
|
|
|
|
Подумал тут - а какие лично у меня есть претензии к js?
В голову не идет ваще ничего, кроме "этот глядский ie и эта глядская верстка!" |
|
Сообщ.
#659
,
|
|
|
|
Цитата fatalist @ Цитата D_KEY @ Ну значит пока и обсуждать нечего... Ну загляну когда в стандарт, будет и ответ Просто ECMAScript это только ядро... над ним в JavaScript много чего надстроено... Пока полистал стандартик, трава, но читаемо. Пока нашел(10.4.3, 10.5, 10.6) только то, о чем уже говорилось - в функцию можно передавать сколько хочешь аргументов, не зависимо от декларации параметров в функции. И вообще судя по проделываемым манипуляциям при вызове, о производительности тут мало думали и проверка аргументов бы практически на ней не сказалась... korvin, ты тут вроде был, не пропадай, скажи как не теряя информации о типе работать с произвольным количеством параметров функции? |
|
Сообщ.
#660
,
|
|
|
|
D_KEY, а вот те еще, кстати, один поворот той же проблемы. Вот пишу я некую систему. Например грид! При клике на ячейке грида хочу дать возможность стороннему программисту подвешивать свое событие на грид. Типа пишу в доке - если используешь мой грид, то при инициализации в параметре cellClickEvt передай ссылку на обработчик и при клике на ячейку он вызовется. Ну. и в реализации вешаю на клик примерно так:
Цитата .onclick = function() { ...делаю свои действия, например ставлю курсор на кликнутую ячейку. подсвечиваю ее, все такое if( cellClickEvt ) { вызываю cellClickEvt() что бы выполнить пользовательский код } } Вроде все пучком. Но через пару версий в обработке клика по дефолту я начинаю обрабатывать какую-то инфу - ну, к примеру ячейка подсвечивается красным если в ней после клика отрицательное число, и зеленым, если положительное Сам придумай. В общем у меня появляется параметр который был бы полезен в пользовательском обработчике клика. И что мне делать? Сейчас-то я просто сделаю так:Цитата .onclick = function() { ...делаю свои действия, например ставлю курсор на кликнутую ячейку. подсвечиваю ее, все такое if( cellClickEvt ) { вызываю cellClickEvt( color ) передав цвет ячейки, или true/false, придумай сам } } Сторонний прогер даже не заметит что ему что-то там стало приходить, у него все будет работать по-прежнему Захочет использовать новые данные - пойдет в доку, увидит что они уже передаются, и перепишет свой обработчик под них. Не захочет - ну не нужны они ему! - и так все работать будет. А с твоей чехардой с параметрами - объяви так, не объявляй сяк - что будет? Отвалится в самый неожиданный момент? |