Содержание

где учиться, зарплата, плюсы и минусы

Программист JavaScript – специалист, применяющий в работе мультипарадигменный язык программирования (преимущественно сценарный). Использование JS позволяет сделать продукт более динамичным и интересным. Профессия подходит тем, кого интересует математика и информатика (см. выбор профессии по интересу к школьным предметам). В 2020 году центр профориентации ПрофГид разработал точный тест на профориентацию. Он сам расскажет вам, какие профессии вам подходят, даст заключение о вашем типе личности и интеллекте.

Читайте также:

Краткое описание

Востребованность языка программирования JavaScript стремительно возрастает. В 2018 году он занял одно из первых мест в международных рейтингах популярности. Это неудивительно, ведь возможности JavaScript расширяются, а он является лучшим решением для людей, которые только начинают изучать программирование. JS обладает рядом конкурентных преимуществ:

  • практически все современные браузеры поддерживают JavaScript;
  • широкая сфера применения;
  • большой выбор полезных функций;
  • относительная простота изучения.

Этот язык программирования имеет много областей применения:

  • клиентская часть веб-приложений;
  • серверные приложения;
  • использование в AJAX, Comet;
  • применение при разработке браузерных ОС и прикладного ПО, пользовательских браузерных скриптов;
  • автоматизация действий офисных приложений, реализация виджетов и движков.

Мультипарадигменный язык заслужил любовь и признание front-end разработчиков. Эксперты отмечают научную ценность JavaScript, его рекомендуют для изучения в школе.

Особенности профессии

Программисты JavaScript (не стоит путать с Java) были и продолжают оставаться незаменимыми специалистами на рынке труда, выполняющими следующий объем работ:

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

Программист JavaScript имеет глубокие знания о HTML и CSS, для успешной работы в этой сфере необходим опыт. Талантливый программист, успешно проработав в течение 1 года стажером, может претендовать на более интересную и высокооплачиваемую вакансию.

10 вопросов на собеседовании JavaScript программиста, ответить на которые должен каждый

Собрали список вопросов, ответы на которые должен знать не только каждый JavaScript разработчик, но и, пожалуй, любой программист.

JavaScript – мультипарадигмальный язык, поддерживающий императивное/процедурное программирования наряду с ООП и функциональным программированием. JS поддерживает ООП с прототипным наследованием.

Желательно упомянуть:

1. Прототипное наследование (также: прототипы, объектные ссылки)

2. Функциональное программирование (также: замыкания, функции первого класса, лямбды)

Следует избегать:

Не иметь представления о парадигмах, не упомянуть прототипное ООП или функциональное программирование.

Функциональное программирование подразумевает вычисление математических функций, избегая общих состояний и изменяемых данных. Lisp (специфицирован в 1958 году) является одним из первых функциональных языков программирования и сильно вдохновлен лямбда-исчислениями. Lisp и подобные ему языки широко применяются и по сей день.

Функциональное программирование – одна из основополагающих концепций JavaScript (один из двух столпов JS). Некоторые функциональные утилиты были добавлены в JavaScript в ES5.

Хорошо упомянуть:

1. Чистые функции / чистота функций

2. Избежание побочных эффектов

3. Простой состав функций

4. Примеры функциональных языков: Lisp, ML, Haskell, Erlang, Clojure, Elm, F Sharp, OCaml и т.д.

5. Особенности, которые поддерживает функциональное программирование: функции первого класса, функции высших порядков, функции как аргументы/значения

Следует избегать:

1. Отсутствие упоминаний чистых функций / избежание побочных эффектов

2. Не привести примеры функциональных языков

3. Не привести примеры функциональных фич JavaScript

Классовое наследование: экземпляры наследуются от классов, создаются подклассовые отношения (иерархическая систематизация классов). Экземпляры реализуются через конструктор функции, через дескриптор new. Экземпляр класса может не содержать дескриптор class начиная с ES6.

Прототипное наследование: экземпляры наследуются напрямую от других объектов, реализуются через фабрики или Object.create() и экземпляры могут быть составлены из множества различных объектов для упрощения выборочного наследования. Прототипное наследование более простое и гибкое, нежели классовое.

Хорошо упомянуть:

1. Классы: тесные связи, иерархия

2. Прототипы: конкатенативное наследование, делегирование, функциональное наследование, композиция

Следует избегать:

Не указать на преимущества прототипного наследования перед классовым

Плюсы ООП: простая для понимания концепция объектов и методов вызова. ООП стремится использовать императивный стиль, нежели декларативный, который читается как прямой набор машинных инструкций.

Минусы ООП: как правило, присутствует зависимость от общих состояний. Объекты и их поведение связаны одной сущностью, к которой случайно может быть получен доступ любым количеством функций в неопределенном порядке, что может привести к непредсказуемому поведению, например, состоянию гонки.

Плюсы ФП: используется функциональная парадигма, позволяющая избежать общих состояний и нежелательных эффектов, исключаются ошибки, возможные из-за конкурирования функций. Благодаря таким фичам, как неявное программирование, функции, как правило, радикально упрощаются и легко перестраиваются для более легкого, по сравнению с ООП, повторного использования кода.

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

Минусы ФП: чрезмерная эксплуатация функциональных подходов, вроде неявного программирования, может привести к снижению читабельности кода, так как конечный код получается более абстрактным, кратким и менее конкретным.

Чаще люди больше знакомы с ООП и императивным подходом, так что некоторые общие идиомы функционального программирования могут вызывать трудности у новичков.

Функциональное программирование имеет более крутую кривую обучения, нежели ООП, имеющего большую популярность и более понятного для изучения. Концепции ФП часто описываются идиомами и обозначениями из лямбда-исчислений, алгебры и теории категорий, требующих знаний основ в этих областях для понимания.

Хорошо упомянуть:

1. Проблемы общих состояний, нежелательного поведения

2. Возможности ФП по радикальному упрощению кода программ

3. Разность в сложности изучения

4. Побочные эффекты и их влияние на надежность программ

5. Сложность изменения и общая хрупкость базы ОО кода в сравнении с таковой в функциональном стиле

Следует избегать:

Не упомянуть недостатки одного из подходов – каждый, кто сталкивался с одним из них, знает и о паре-другой недостатков

Вопрос с подвохом. Правильный ответ – никогда. Композиция – более простой и гибкий подход, чем наследование классов.

Хорошо упомянуть

«…композиция объектов лучше, чем наследование классов»

Следует избегать:

Упоминание Rect Components. React.js использует дескриптор class, но не позволяет избежать подводных камней классового наследования. Вопреки популярным ответам, не нужно использовать class, чтобы пользоваться React. Такой ответ покажет не понимание как классов в JavaScript, так и Реакта.

Существует более, чем один тип прототипного наследования:

1. Делегирование (цепочка прототипов)

2. Конкатенация (миксины, Object.assign())

3. Функциональное наследование (не путать с функциональным программированием. Функция используется для создания замыкания для private/инкапсуляции)

Хороший ответ:

1. В ситуациях, когда модули или функциональное программирование не обеспечивают очевидного решения

2. Когда нужно собрать объект из нескольких источников

3. В любом случае, когда нужно применить наследование

Следует избегать:

1. Не знать, когда применяются прототипы

2. Не знать о миксинах или Object.assign()

Это цитата из книги “Design Patterns: Elements of Reusable Object-Oriented Software”. Повторное использование кода должно достигаться за счет сборки малых единиц функциональности в новый объект, а не наследованием классов и созданием иерархий.

Хорошо упомянуть:

1. Избежание наследования и тесных связей

2. Избежание вытекающей из классического наследования проблемы «банан/мартышка» (нужен был банан – получили мартышку, держащую банан посреди джунглей)

Следует избегать:

Не назвать какую-то из упомянутых выше проблем. Не объяснить разницу между композицией и наследованием или не суметь рассказать об преимуществах композиции.

Двусторонняя связь данных подразумевает, что поля интерфейса связаны с моделью данных динамически, то есть при изменении полей интерфейса меняется модель, и наоборот.

Однонаправленный поток данных означает, что только модель – источник истины. Изменения в интерфейсе запускают сообщения, которые сигнализируют пользователю о намерении модели (или «store» в терминах React). Смысл в том, что данные всегда идут в одном направлении, что облегчает понимание.

Односторонние потоки данных детерминированы, тогда как двусторонняя привязка может вызывать нежелательные эффекты, которые труднее отследить и понять.

Хорошо упомянуть:

1. React – новый канонический пример однонаправленного потока данных, так что упоминание Реакта будет хорошей идеей. Cycle.js — еще одна популярная реализация однонаправленного потока данных.

2. Angular – популярный фреймворк, использующий двустороннюю привязку.

Следует избегать:

Непонимание этих концепций, неспособность объяснить разницу между ними.

Монолитная архитектура означает, что ваше приложение написано как единый связный блок кода, чьи компоненты спроектированы для совместной работы и использования общих ресурсов.

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

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

Минусы монолитного приложения: так как все компоненты тесно связаны друг с другом, по мере развития приложения, становится труднее его понимать, появляется много неочевидных зависимостей и побочных эффектов.

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

Минусы микросервисов: при создании нового микросервиса может появится много внезапных проблем, которые не ожидались при проектировании. Для монолитного приложения можно использовать промежуточное программное обеспечение для решения различных сквозных проблем без особых трудозатрат.

При микросервисной архитектуре либо потребуются накладные расходы на отдельные модули для каждой сквозной проблемы, либо нужно инкапсулировать их на другом уровне обслуживания, через который проходит весь трафик.

В конце концов, даже монолитные архитектуры имеют тенденцию направлять трафик через внешний уровень обслуживания, но с монолитной архитектурой можно отложить затраты на эту работу до тех пор, пока проект не станет более зрелым.

Микросервисы же часто развертываются в собственных виртуальных машинах или контейнерах, что приводит к быстрому увеличению числа конфликтов по виртуальным ресурсам.

Хорошо упомянуть:

1. Несмотря на начальную дороговизну, микросервисы выигрывают в долгосрочной перспективе за счет лучшего масштабирования

2. Практические различия микросервисов и монолитных приложений

Следует избегать:

1. Незнание различий архитектур

2. Незнание недостатков микросервисов

3. Недооценивать преимущества масштабирования микросервисов

Синхронное программирование означает, что за исключением условий и вызовов функций, код исполняется последовательно от верха к низу, задерживаясь на длинных задачах, таких как сетевые запросы и чтение/запись с диска.

Асинхронное программирование подразумевает, что когда требуется операция блокировки, запрос отправляется, и код продолжает работать без блокировки до ожидания результата. Когда ответ готов, запускается прерывание, это приводит к запуску обработчика событий и поток управления продолжается. Таким образом, один программный поток может обрабатывать множество параллельных операций.

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

Node.js по умолчанию асинхронен, по сути, сервер проводит все время в цикле, ожидая сетевой запрос.

В JavaScript это важно, так как естественно для интерфейсов и положительно сказывается на производительности сервера.

Хорошо упомянуть:

1. Значение блокировок, влияние на производительность

2. Понимание обработчиков и почему они важны для интерфейсов

Следует избегать:

1. Непонимание терминов синхронности и асинхронности

2. Неспособность определить последствия для производительности

Скрытые фичи JavaScript

Объяснение современного JavaScript для динозавров

15 советов по программированию на языке JavaScript

Лучшие фрилансеры в России › Программирование › Javascript 5814

Все страны Украина — 130804 Россия — 116582 Беларусь — 9774 Казахстан — 7500 Узбекистан — 2290 Молдова — 1697 Польша — 1653 Армения — 1512 Кыргызстан — 1363 Азербайджан — 555 Латвия — 436 Грузия

Требуется «JavaScript разработчик» — Хабр Карьера

Привет!

Для разработки здоровского фронтенда и молниеносного бэкенда ищем опытного JavaScript разработчика. Серьёзный фронтенд опыт обязателен, бэкенд опыт или есть, или вы готовы и хотите его прокачать.

Требования:

  • Vanilla JS, включая ES6
  • Семантическая адаптивная HTML5/CSS3 вёрстка с Bootstrap и без, БЭМ
  • React
  • MobX (или желание его быстро изучить)
  • понимание, как работает экосистема с Webpack, Babel и тд
  • уверенный опыт с Jest, взаимная любовь к тестам
  • понимание модели асинхронности JS и умение с ней работать
  • понимание того, как работает современный веб — HTTP, сокеты, service workers и тд
  • умение работать с Chrome Developer Tools
  • GIT
  • чистый код, SOLID и пр. — осознали и применяете

Будет плюсом:

  • любовь к *nix и терминалу
  • знание SQL на уровне свободного владения запросами с JOIN и подзапросами
  • Опыт с Gatsby и/или аналогами
  • PWA
  • GraphQL

Вы:

  • самостоятельны
  • свободно гуглите и читаете материалы на английском языке
  • вам нравится брать ответственность
  • вам не чужд здоровый перфекционизм по отношению к результатам своей работы
  • любите свой код и стремитесь делать его красивее
  • обладаете эстетическим вкусом и хотите создавать приятные интерфейсы
  • постоянно изучаете новое, углубляете и расширяете сферу своих компетенций
  • готовы работать в офисе в Москве, удалёнка не рассматривается

Мы:

  • небольшая компания айтишников без бюрократии, делаем IT сервис для интернет-магазинов и ряд других проектов
  • нормально относимся к гибкому графику
  • находимся в БЦ А-класса с панорамными окнами
  • любим то, что делаем и поэтому требовательно относимся к результатам своей работы

Собеседование без участия HR, напрямую с техническими членами команды.

ЗП по результатам собеседования — на уровне рынка.

Подробное руководство для программистов

Говоря JavaScript: подробное руководство для программистов Эта книга охватывает JavaScript вплоть до ECMAScript 5 . Для материала о более поздних версиях ECMAScript, посмотрите другие книги Акселя.

О книге

Эта книга была написана для программистов, программистом. Чтобы понять это, вы уже должны знать объектно-ориентированное программирование, например, через основной язык программирования, такой как Java, PHP, C ++, Python, Ruby, Objective-C, Swift, C # или Perl.

Таким образом, целевой аудиторией книги являются программисты, которые хотят быстро и правильно выучить JavaScript, и программисты JavaScript, которые хотят углубить свои навыки и / или искать конкретные темы.

Говоря JavaScript состоит из четырех частей:

  1. JavaScript Быстрый старт: Изучите безопасное подмножество JavaScript менее чем на 30 страницах.
  2. История вопроса: Когда, почему и как был создан JavaScript? Как это связано с другими языками программирования? Какие важные шаги привели нас туда, где мы находимся сегодня?
  3. JavaScript в глубине: Эта часть является скорее справочной: ищите интересующую вас тему, прыгайте и исследуйте.Я все еще пытался сделать это весело читать.
  4. Советы, инструменты и библиотеки: В этой части даются советы по использованию JavaScript: лучшие практики, передовые методы и учебные ресурсы. Также описаны несколько важных инструментов и библиотек.

Об авторе

Доктор Аксель Раушмайер специализируется на JavaScript и веб-разработке. Он преподает уроки для Ecmanauten, блоги в 2ality.com, проводит переговоры и семинары на конференциях и организует группу пользователей MunichJS.

Аксель занимается программированием с 1985 года и разработкой веб-приложений с 1995 года. В 1999 году он работал техническим менеджером в немецком интернет-стартапе, который впоследствии расширился на международном уровне. В 2006 году он провел свой первый доклад по Ajax.

Аксель провел обширное исследование в области дизайна языка программирования и следил за состоянием и будущим JavaScript с момента его создания.

Отзывы клиентов

«Говорящий JavaScript» @rauschma — лучшая книга по истинному пониманию #javascript.(Это также бесплатно онлайн) pic.twitter.com/sv5sIZ9xYy

— Андре Хромов (@akaButters) 9 июля 2014 г.

Speaking Javascript — одна из лучших книг по JS, которую я читал. Так просто, но тщательно и глубоко. @speakingjs

— Брэндон Хансен (@ ready4god2513) 26 июля 2014 года
★★★★★ Для начинающих и профессионалов
Читается как хороший роман. Очень всеобъемлющий
— ркрупински на амазоне ★★★★★ Фантастическая новая книга (особенно для тех, кто уже умеет писать на другом языке)
Фантастическая книга.Формат имеет короткий пример кода после каждого объяснения, и это ОЧЕНЬ ПОЛЕЗНО. Кроме того, язык очень точный. Лучшая книга по JS, которую я видел для существующих программистов, которые уже знают другой язык.
— ТМ на Амазоне

Больше отзывов клиентов:

Ресурсы

  • Форум : для обсуждения книги и JavaScript.
  • Блог Акселя, 2ality:
  • Twitter:

Больше контента

Это контент, который я создал после Speaking JavaScript .Он дополняет книгу (но ее можно понять без нее — если вы уже знаете JavaScript).
,
учебников по Java-сценариям для всего непрограммиста Web Teacher Consulting
Новинка от Webteacher Software и партнеров, GoogleMapBuilder.com
Простой интерфейс для превращения любого электронная таблица в Google Map


javascript tutorial graphic
javascript tutorial graphic javascript tutorial graphic javascript tutorial graphic javascript tutorial graphic javascript tutorial graphic javascript tutorial graphic javascript tutorial graphic javascript tutorial graphic javascript tutorial graphic

Webteacher Software теперь предлагает

Добро пожаловать в
JavaScript для Всего непрограммист

Этот учебник проведет вас шаг за шагом через основы Javascript.Вы узнаете, как писать функции, использовать данные из текстовых полей, создавать IF-THEN условные выражения, программные циклы и вообще делают вашу веб-страницу «умнее».

Я преподаю компьютерные классы для жизни корпоративным клиентам всех уровней. За 2 года преподавания я многое узнал о связи между людьми разного уровня компьютерного опыта. Этот урок предполагает, что у вас есть нет опыта программирования, но вы создали свои собственные HTML-страницы.

Если вы найдете этот урок полезным, пожалуйста, дайте мне знать (это моя единственная награда).Кроме того, ссылки любезно принимаются.

Что такое JavaScript?

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

Какая разница между JavaScript и Java?

На самом деле, два языка не имеют ничего общего, кроме названия.Хотя технически Java является интерпретируемым языком программирования, он кодируется аналогично C ++, с отдельные файлы заголовков и классов, скомпилированные вместе до исполнения. Он достаточно мощный, чтобы писать основные приложения и вставлять их в веб-страницу как специальный объект, называемый «апплет». Java вызывает много волнений благодаря своей уникальной способности запускать одну и ту же программу в IBM, Mac и Unix. компьютеры. Java не считается простым в использовании языком для непрограммистов.

Javascript намного проще в использовании, чем Java. В Javascript, если я хочу проверить форму на наличие ошибок, я просто набираю оператор if-then вверху моей страницы. Без компиляции, без апплетов, просто простая последовательность.

Что такое объектно-ориентированное программирование?

Каждый, кто хочет программировать JavaScript, должен хотя бы попробовать прочитать следующий раздел. Если у вас есть проблемы с пониманием, не волнуйтесь. Лучший способ, чтобы Изучите JavaScript из примеров, представленных в этом руководстве.После того, как вы прошли уроки, вернитесь на эту страницу и прочитайте ее снова.

ООП — это метод программирования (примечание: не языковая структура — вы даже не нужен объектно-ориентированный язык для программирования на объектно-ориентированная мода) предназначена для упрощения сложного программирования концепций. По сути, объектно-ориентированное программирование вращается вокруг Идея пользовательских и системных блоков данных и контролируемых средств доступа и изменения этих кусков.

Объектно-ориентированное программирование состоит из объектов, методов и Свойства.Объект — это в основном черный ящик, в котором хранятся немного информации. У вас может быть способ прочитать эту информацию и способ написать или изменить эту информацию. Это может также есть другие, менее очевидные способы взаимодействия с Информация.

Часть информации в объекте может быть непосредственно доступны; другая информация может потребовать от вас использовать метод чтобы получить к нему доступ — возможно, потому, что способ хранения информации внутренне бесполезен для вас, или потому что только определенные вещи могут быть записано в это информационное пространство, и объект должен проверить, что Вы не выходите за эти пределы.

Непосредственно доступные биты информации в объекте являются его свойства . Разница между данными, доступ к которым осуществляется через свойства и данные доступны через методы точно видеть, что вы делаете с объектом; с методами, если вы создал объект сам, вы просто видите эффект того, что вы делает.

Другие прочитанные вами страницы Javascript, вероятно, будут часто ссылаться на объекты, события, методы и свойства. Этот урок будет учить на примере, не фокусируясь слишком сильно на словаре ООП.Однако вам понадобится базовое понимание этих терминов, чтобы использовать другие ссылки JavaScript.

Объекты и Недвижимость

Документ вашей веб-страницы является объектом. Любая таблица, форма, кнопка, изображение или ссылка на вашей странице также является объектом. Каждый объект обладает определенными свойствами (информация о предмет). Например, цвет фона вашего документа написан document.bgcolor . Вы измените цвет вашей страницы на красный, написав строка: документ.bgcolor = «red»

Содержимое (или значение) текстового поля с именем «password» в форме с именем «entryform» составляет document.entryform.password.value .

Методы

Большинство объектов имеют определенную коллекцию вещей, которые они могут и . Разные предметы могут делать разные вещи, как дверь может открываться и закрываться, пока свет можно включать и выключать. Новый документ открывается методом document.open () Вы можете написать «Hello World» в документ, набрав Документ напиши («Hello World») . open () и write () оба являются методами объекта: документ.

События
События — это то, как мы запускаем наши функции. Самый простой пример — кнопка, определение которой включает слова onClick = «run_my_function ()» . Событие onClick, как следует из его названия, запустит функцию, когда пользователь нажмет на кнопку. Другие события включают OnMouseOver, OnMouseOut, OnFocus, OnBlur, OnLoad и OnUnload.

Некоторые данные с этого сайта собираются для бизнес-анализа. Нажмите здесь, чтобы прочитать Webteacher’s Политика конфиденциальности

JavaScript для программистов

  • Переменные локальные и глобальные, строки и числа. Переменные по умолчанию являются глобальными в JavaScript, и существует единое глобальное пространство имен. Здесь мы рассмотрим проблемы, которые это может вызвать и как их избежать.

  • Писать файл — значит автоматически проверять его на наличие ошибок. Gulp позволяет нам делать это автоматически.

  • Функции — это объекты первого класса в JavaScript, здесь мы рассмотрим, что это значит для вас.

  • Локальные переменные принадлежат специальному скрытому объекту, называемому областью действия. Этот объект может сохраняться даже после выхода из функции.

  • В JavaScript есть как классические, так и функциональные циклы.Давайте взглянем.

  • В котором мы исследуем способность JQuery изменить вашу DOM.

  • JavaScript управляется событиями, он реагирует на пользовательские события, сетевые события, события загрузки страницы и т. Д. Мы назначаем функции обратного вызова для событий. Они вызываются, когда происходит событие.

  • Функциональный цикл с JQuery.

  • В JavaScript все объекты являются массивами. Синтаксис JSON позволяет быстро и легко создавать объекты.

  • JavaScript не содержит классов, поэтому любая функция может выступать в качестве конструктора.

  • В JavaScript есть специальная переменная, которая называется this.Это устанавливается во время выполнения ..

  • Мы можем получить код прямо с нашего сервера, используя AJAX.

  • Шаблоны помогают нам держать HTML там, где он есть: в HTML.

  • Обещания помогают нам управлять асинхронными событиями.

  • ,

    вопросов про программиста на JavaScript (с ответами)

    Переполнение стека
    1. Товары
    2. Клиенты
    3. Случаи использования
    1. Переполнение стека Публичные вопросы и ответы
    2. Команды Частные вопросы и ответы для вашей команды
    3. предприятие Частные вопросы и ответы для вашего предприятия
    4. работы Программирование и связанные с ним технические возможности карьерного роста
    5. Талант Нанимать технический талант
    6. реклама Связаться с разработчиками по всему миру

    Загрузка…

    1. Авторизоваться зарегистрироваться
    2. текущее сообщество

    .