JS и его "недостатки"
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.123] |
|
|
Правила раздела:
| Страницы: (66) « Первая ... 41 42 [43] 44 45 ... 65 66 ( Перейти к последнему сообщению ) |
JS и его "недостатки"
|
Сообщ.
#631
,
|
|
|
|
Ну я вообще-то сказал, что зря он так. Цитата Кстати, вот ты все время "пользователь может вызвать функцию не так... надо вернуть ошибку..." Браузер вообще-то тот же пользователь - именно он вызывает код обработчиков события, и ему ошибку возвращать бессмысленно - браузер тупой, он как вызывал так и будет вызывать, ему пофиг на все С этой точки зрения нужна максимальная лояльность в форме вызова, что бы дать возможность отработать коду внутрях, вдруг он сможет разрулить противоречие. Иначе пришлось бы делать так:1. узнать версию браузера 2. при подвешивании события устроить кучку if'ов, типа если ie, то обработчик вызвать так, если ff - сяк... При этом первый пункт придется реализовывать на том же js, а значит могут быть нюансы зависящие от браузера, для разруливания которых нужно браузер определить, для чего придется... и так далее по кругу А второй пункт обозначает что у тебя каждое подвешивание события обрастет бахромой лишнего кода. Оно это все надо? Особенно если учесть, что и с максимальной лояльностью приходится учитывать различия браузеров, и это дается не малой кровью. А прикинь если все будет более строго, а?Я тебя не узнаю. Прям даже аргументы появляются Если тебе нужна лояльность - объяви обработчик, как принимающий произвольное число аргументов и задай явным аргументам null по умолчанию. Т.е. сделай явным то, что делается в js неявно. |
|
Сообщ.
#632
,
|
|
|
|
Цитата Астарот @ Ну так когда будут - тогда и можно говорить К тому же это далеко не единственное чего там нет. По другому только 1% экзотов А вобще есть https://developer.mozilla.org/En/DOM/Document.querySelector - это поддерживают все современные броузеры ( 90% ) Вобще ЖабаСкрипт очень гибкий язык, и если уметь это использовать то много бонусов получаем |
|
Сообщ.
#633
,
|
|
|
|
Цитата korvin @ Ну это опять зависит от программиста... у меня везде стоят ссылки, которые при отключенном js ведут на соответсвующую страницу - а в админке наоборот не парюсь, назвался админом - будь добр включить js Вот я, например, вообще пользуюсь NoScript-плагином для FF, и по-дефолту скрипты отключены. Хороший веб-сервис при этом должен продолжать исправно функционировать (ну разве что с мультимедиа-контентом не все так просто, но это пока), JS же должен лишь дополнять и предоставлять какие-то бонусные удобства, не более. К сожалению многие говносайты без JS вообще не могут адекватно работать =( Добавлено Цитата D_KEY @ Зачем, если оно итак все есть? Зачем напрягаться реализовывать явно, если итак все работает? Если тебе нужна лояльность - объяви обработчик, как принимающий произвольное число аргументов и задай явным аргументам null по умолчанию. Т.е. сделай явным то, что делается в js неявно. |
|
Сообщ.
#634
,
|
|
|
|
Цитата fatalist @ Цитата D_KEY @ Зачем, если оно итак все есть? Зачем напрягаться реализовывать явно, если итак все работает?Если тебе нужна лояльность - объяви обработчик, как принимающий произвольное число аргументов и задай явным аргументам null по умолчанию. Т.е. сделай явным то, что делается в js неявно. Не реализовывать, а описать. Т.е. вместо function f(e) будет function(e = null) ну или function f(e = null, *arguments) в крайнем случае. Напрягся? Зато остальные функции останутся нормальными. Впрочем, повторю, что браузеры могут быть просто менее строгими. |
|
Сообщ.
#635
,
|
|
|
|
Цитата D_KEY @ Я тебя не узнаю. Прям даже аргументы появляются Да нет, это ты начал слышать - аргумент-то уже сто раз высказан, просто повернут чуть другим боком, что бы ты наконец обратил на него внимание ![]() Цитата D_KEY @ Если тебе нужна лояльность - объяви обработчик, как принимающий произвольное число аргументов и задай явным аргументам null по умолчанию. Т.е. сделай явным то, что делается в js неявно. То, что "не явно" делается в 100% случаев - это явно, просто на экране не набирается Если подумаешь, то во всех языках найдешь такое, и убедишься, что оно тебя не парит.Цитата D_KEY @ Не реализовывать, а описать. Т.е. вместо function f(e) будет function(e = null) ну или function f(e = null, *arguments) в крайнем случае. Напрягся? Зато остальные функции останутся нормальными. Нахрена? |
|
Сообщ.
#637
,
|
|
|
|
Цитата SPM @ Таки в js его тоже нет. Ну да, если залезть в стандарт ECMA, то нету Но в браузерах де факто есть, так что лично я считаю, что он есть в js для веба |
|
Сообщ.
#638
,
|
|
|
|
Вся проблема в том, что вы рассматриваете js исключительно в контексте браузеров(и тут я с вами не спорю - вам виднее, да и не критично), а я говорю о скриптовом языке. При этом вас почему-то не устраивает, чтобы браузеры были бы менее строгими, чем, например, встраиваемые движки приложений или "обычные" интерпретаторы, и в своей внутренней кухне могли бы вызывать "неправильно" ваши обработчики и пр. и пр.
Добавлено Цитата Астарот @ Цитата SPM @ Таки в js его тоже нет. Ну да, если залезть в стандарт ECMA, то нету Но в браузерах де факто есть, так что лично я считаю, что он есть в js для веба ![]() Вот было бы хорошо, если бы в стандарте и функции были "нормальными", но в браузерах де факто действовали бы менее строгие правила, особенно для внутренней кухни |
|
Сообщ.
#639
,
|
|
|
|
Цитата D_KEY @ Вся проблема в том, что вы рассматриваете js исключительно в контексте браузеров(и тут я с вами не спорю - вам виднее, да и не критично), а я говорю о скриптовом языке. Нет, проблема в том, что ты отрываешь язык от его основной области применения и начинаешь рассуждать о нем в сферичном вакууме, в то время, как на нем таки нужно работать, а не иметь его на стенке в рамочке ![]() Цитата D_KEY @ Вот было бы хорошо, если бы в стандарте и функции были "нормальными", но в браузерах де факто действовали бы менее строгие правила, особенно для внутренней кухни ![]() Так как стандарта ты не знаешь - можешь смело считать, что в нем все очень строго, а браузеры позволяют послабления Результат тот же, и ты спокоен |
|
Сообщ.
#640
,
|
|
|
|
|
Сообщ.
#641
,
|
|
|
|
Цитата Астарот @ Цитата D_KEY @ Вся проблема в том, что вы рассматриваете js исключительно в контексте браузеров(и тут я с вами не спорю - вам виднее, да и не критично), а я говорю о скриптовом языке. Нет, проблема в том, что ты отрываешь язык от его основной области применения и начинаешь рассуждать о нем в сферичном вакууме, в то время, как на нем таки нужно работать, а не иметь его на стенке в рамочке ![]() Я тебе говорил, что js встречается и вне браузеров. Цитата Цитата D_KEY @ Вот было бы хорошо, если бы в стандарте и функции были "нормальными", но в браузерах де факто действовали бы менее строгие правила, особенно для внутренней кухни ![]() Так как стандарта ты не знаешь - можешь смело считать, что в нем все очень строго, а браузеры позволяют послабления Результат тот же, и ты спокоен ![]() Но это, скорее всего, не так... Было бы так - спорить было бы не о чем. Добавлено К аргументам. Не нужны какие-то левые параметры, добавляемые только затем, чтобы в новых версиях туда что-нибудь начать записывать. Цитата Научи меня плиз, я не в курсе. Я про va_list и пр. Для С++ с сохранением информации о типе показывал вчера. Цитата Да, представь себе, winAPI - это API для приложений windows, доступный даже из asm и delphi. Да, он, естественно, проектировался с учетом особенностей С(куда же без него). |
|
Сообщ.
#642
,
|
|
|
|
Цитата D_KEY @ Я тебе говорил, что js встречается и вне браузеров. А я тебе отвечал |
|
Сообщ.
#643
,
|
|
|
|
Цитата D_KEY @ Ну так там интерпретатор свой? Что мешает делать этому интерпретатору все то, без чего вы жить не можете? Я тебе говорил, что js встречается и вне браузеров. |
|
Сообщ.
#644
,
|
|
|
|
Цитата fatalist @ Цитата D_KEY @ Ну так там интерпретатор свой? Что мешает делать этому интерпретатору все то, без чего вы жить не можете?Я тебе говорил, что js встречается и вне браузеров. Стандарт. Браузеры же традиционно относятся менее строго к тому же html, могут так же спустя рукова работать и с js |
|
Сообщ.
#645
,
|
|
|
|
Цитата fatalist @ Ну так там интерпретатор свой? Что мешает делать этому интерпретатору все то, без чего вы жить не можете? Ну так это же будет уже не тот js |