Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Выучить JS раз и навсегда (https://javascript.ru/forum/misc/2028-vyuchit-js-raz-i-navsegda.html)

AlexPa 22.10.2008 18:05

Выучить JS раз и навсегда
 
Здравствуйте! Я полный новичок в JS, есть желание выучить язык во всех деталях. Теория на этом сайте отличная, лучше не придумаешь. Но вот без практики, как вы понимаете, никуда. Поэтому господа Гуру, не могли бы вы составить список задачек, в порядке увеличения сложности, которые бы я выполнял, и таким образом практиковался. Ну знаете как в школьных учебниках физики, сначала теория, а потом список задач... которые надо порешить:) . Или может быть уже есть нечто подобное?

Dmitry A. Soshnikov 22.10.2008 18:33

AlexPa,

Вот композиционная задача, которая позволит попрактиковать конструкции языка, а также DOM:

Создайте поле для ввода текста (А) и кнопку (B). По нажатию на кнопку, в зависимости от того, какая кнопка мыши нажата:

- левая: динамически создайте еще одну кнопку, надпись на кнопке должа быть взята из поля (A); по нажатию на вновь созданную кнопку должен выводиться alert со значением, равным количеству кнопок на странице;

- правая: динамически создайте поле для воода текста и также присвойте текст, взятый из поля А;

Создаваемый элемент должен быть помещен в конец документа.

P.S.: почитайте о событиях, и функциях DOM; также можно посмотреть свойство innerHTML.

P.S.[2]: старайтесь сделать все сами, если где-то будет сложно - спрашивайте, здесь подскажут.

Успехов!

magistr_bender 22.10.2008 23:50

AlexPa,
я точно такой же новичёк)
советую пройти сначала тест на сайте, а потом тут часто выкладывают задачи, ну люди с проблемами обращаются, просто смотриш код ищиш ошибки.. помогаеш.. и походу дела учишся, читаеш посты других..

Octane 23.10.2008 00:34

Есть один 100% эффективный способ стать специалистом по JavaScript — написать свой JavaScript framework, правда, если серьёзно этим заниматься, уйдет куча времени, но это того стоит. Вы научитесь структурировать свой код, поймёте почему глобальные переменные и функции плохо, приобретёте опыт разработки кросс-браузерных скриптов, а так же будете ориентироваться в существующих framework'ах. Я именно так и изучал JavaScript, потому как особо по практиковаться было не на чем, но было желание поднять свои знания в разработке клиентских скриптов на более высокий уровень 8)

twolf 23.10.2008 01:03

ну уж писать свой фреймворк новичку - это уже слишком.
Надо сначала изучить детали, понять что надо вложить в этот фреймворк и что ты от него хочешь.
А пока надо просто прочитать пару фундаментальных книг по js. Попрактиковаться в написании кода.
Читать специализированные форумы, вникать в проблемы, пробовать разобраться.

Octane 23.10.2008 03:08

Сначала и фреймворк будет начального уровня :D
Было » Стало

А просто читать теорию в книжках и выполнять простенькие примеры бесполезно, надо учится на конкретной задаче :)

twolf 23.10.2008 11:57

Octane, такой вопрос. А Вы начали писать фреймворк уже после того как какое-то время работали js программистом или начали писать только ради изучения js с нулевого уровня?

ZoNT 23.10.2008 12:08

Когда я начал изучать javascript то не знал о существовании никаких фреймворков и зачем они в джаваскрипте нужны :)
Учился на конкретных задачах, а по ходу их выполнения понял, что надо бы писать для удобства универсальные функции (необходимы минимум)...

SunnyDay 23.10.2008 12:16

AlexPa,
Попробуй посмотреть исходники сторонних фреймворков. Там можно найти кучу универсальных кроссбраузерных функций, смотри код, и втыкай, почему/что/как.

Octane 23.10.2008 17:40

Цитата:

Сообщение от twolf (Сообщение 7410)
Octane, такой вопрос. А Вы начали писать фреймворк уже после того как какое-то время работали js программистом или начали писать только ради изучения js с нулевого уровня?

Я вообще занимался только дизайном и версткой, и на JavaScript умел только всякие fadeIn, fadeOut и slideToggle на jQuery делать, ну или там часы какие-нибудь часы с датой на JavaScript :) но поняв, что от чисто программистов в разработке интерфейсов ждать нечего, стал сам изучать JavaScript.

magistr_bender 23.10.2008 23:01

Цитата:

Сообщение от SunnyDay
Попробуй посмотреть исходники сторонних фреймворков. Там можно найти кучу универсальных кроссбраузерных функций, смотри код, и втыкай, почему/что/как.

а это бредовая идея... только ещё больше запутаешся

Kolyaj 23.10.2008 23:53

Цитата:

Сообщение от magistr_bender
а это бредовая идея... только ещё больше запутаешся

Ну прям уж.

AlexPa 26.10.2008 17:03

Цитата:

Сообщение от Dmitry A. Soshnikov (Сообщение 7373)
AlexPa,

Вот композиционная задача, которая позволит попрактиковать конструкции языка, а также DOM:

Создайте поле для ввода текста (А) и кнопку (B). По нажатию на кнопку, в зависимости от того, какая кнопка мыши нажата:

- левая: динамически создайте еще одну кнопку, надпись на кнопке должа быть взята из поля (A); по нажатию на вновь созданную кнопку должен выводиться alert со значением, равным количеству кнопок на странице;

- правая: динамически создайте поле для воода текста и также присвойте текст, взятый из поля А;

Создаваемый элемент должен быть помещен в конец документа.

P.S.: почитайте о событиях, и функциях DOM; также можно посмотреть свойство innerHTML.

P.S.[2]: старайтесь сделать все сами, если где-то будет сложно - спрашивайте, здесь подскажут.

Успехов!

Пытаюсь решить эту задачку. Возникла проблема.


...
<script type="text/javascript">

function left_click(){
var button;
//Беру надпись из поля а
var nadpis=document.getElementById('text1').value;

//Определяю какая кнопка была нажата
if(event.which ==1 ){
alert('w');
}

}

</script>

<form method="post" name="form1" action="">
<input type="text" id="text1" value="Надпись" class="input_text">
<input type="button" name="button1" value="HELLO" class="input_button" onclick="left_click()">



</form>
...

Почему вылазит: event is not defined

Octane 26.10.2008 17:10

Потому что event только в IE глобальный объект (ну не только, но будем считать, что так), а в других браузерах передается, как первый параметр функции, срабатывающей по событию.
Нужно делать так:
function MyFunc() {
var e = arguments[0] || window.event;
// теперь e — это объект-событие
}

alt5000 27.10.2008 11:14

Простите, что вмешиваюсь, но что за Framework для JS? Это набор функций, как скажем .NET ?

Dmitry A. Soshnikov 27.10.2008 13:12

Цитата:

Сообщение от alt5000
но что за Framework

Что такое Framework в общем, можно почитать в Википедии - http://ru.wikipedia.org/wiki/Framework (в частности, посмотрите Application Framework)

Цитата:

Сообщение от alt5000
Это набор функций, как скажем .NET ?

Да - набор готовых решений, функций, паттернов, облегчающих разработку. Однако, наряду с облегчением разработки в плане написания кода, фреймворки могут утяжелять общий объем кода "за кадром", а также уменьшать производительность системы в целом. В идеальном случае это можно объяснить тем, что Фреймворк, как правило, пытается охватить и предусмотреть "все случаи жизни", в самом плохом случае - фреймворки пишут такие же люди, они также могут ошибаться, писать что-то не оптимально и т.д. Некоторые люди, опробовав сторонние фреймворки, приходят к написанию собственных; причины: желание создать оптимальный каркас, заточенный под собственные нужды, или просто потренироваться в изучении самого JavaScript'a.

Касательно JavaScript, на сегодняшний день есть несколько публицистических фреймворков, имеющих свои плюсы и минусы:

- "JQuery"
- "Prototype"
- "Mootools"
- "Dojo"
- "Extjs"
- и т.д. (да простят меня приверженцы конкретных фреймворков за такую последовательность в расстановке, - уверяю - ставил "от балды", как вспоминалось =))

Octane 27.10.2008 13:14

Структурированный набор взаимосвязанных функции и готовых решений (не стандармные элементы интерфейса). Просто набор функции немного не то, хотя в контексте JavaScript можно тоже с натяжкой назвать фреймворком.


Часовой пояс GMT +3, время: 08:32.