Brief description
JavaScript - this is a lightweight, interpreted, prototype-oriented language with dynamic typing and first-class functions. Is an implementation of the language standard ECMAScript. The most widely used as scripting language of web pages, but also used as a General purpose language (including development on the server side) based on software platform Node.js.
DOM (from the English. Document Object Model — «document object model») is a platform-independent and language programmatic interface (API) that allows programs and scripts to access the contents of HTML, XHTML and XML documents, and modify the content, structure and execution of such documents.
**TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. This language is developed by the company Microsoft.
CoffeeScript is a programming language translated into JavaScript. Adds syntactic sugar in the spirit of Ruby, Python, Haskell and Erlang in order to improve code readability and reduce its size compared with similar code in JavaScript.
AJAX (from the English. Asynchronous Javascript and XML — «asynchronous JavaScript and XML») is an approach to building interactive user interfaces, and receiving/transferring data in web applications, which consists in» «background data-sharing browser from a web server. As a result, when data is updated, the web page is not reloaded completely, and web applications become faster and more convenient.
JSON (from the English. JavaScript Object Notation — «object notation JavaScript») is a text - based data interchange format based on JavaScript. JSON is a syntax for serializing objects, arrays, numbers, strings, Boolean values and null values. It is based on the JavaScript syntax, but still different from it: not every JavaScript code is JSON, and not everyone is JSON code in JavaScript.
Package Manager - a set of software allowing to manage the process of install, uninstall, configure and upgrade various software components. Package managers save you from having to manually install/update additional libraries, their configuration and control dependencies between them. In the world of JavaScript development the most commonly used package Manager npm, bower and yarn.
Static code analyzers - a program for analyzing source code according to certain rules without real vypolneniya the studied programs. Apply for finding syntactic and stylistic errors in code writing and testing applications. For JavaScript development are applied JSHint, JSLint, ESLint and JSCS, XO and others.
Build system software tools that allow you to write and run scripts that automatiseret build processes and deploy developed solutions. Typically, these processes include such tasks as compiling, concatenating (joining) files, minimization/obfuscation of code, checking for style and correctness of writing code, Assembly code from the source files and placing the prepared solutions in a specified location in the file system, run tests, deploy the solution and generation of autodocumentary. The most popular build tools for the frontend are Grunt, gulp.js, Broccoli.js, Brunch.
Testing JavaScript - automated testing (usually modular) client code. For testing the client code uses a set of tools:
- Frameworks for testing JavaScript code (Test frameworks): qUnit, Mocha, Jasmine, YUI Test and others.
- Libraries for checks (Assertion libraries): Assert.js, Chai, should.js, expect.js and others.
- Utility for running tests (Test runners): Karma, AVA, testem and others.
- Mock library (Mocking libraries): Sinon.js, MoqJS, testdouble.js, jsmock and others.
- Tools for testing server-side API and AJAX requests (API’s Mocking tools): Sandbox, nock, pretender, jquery-mockjax and others.
- “Console browsers” (the console versions of WebKit and Gecko engines that are available through the JavaScript API): PhantomJS, SlimerJS.
- Continuous integration servers and build: Travis CI, Bamboo, Jenkins and others.
- Platform for automated test: Sauce Labs, Ubertesters and others.
Links to materials for the study
Basic resources
- JavaScript — Wikipedia
- [DOM.] (https://ru.wikipedia.org/wiki/JavaScript)
- TypeScript Wikipedia
- CoffeeScript — Wikipedia
- AJAX — Wikipedia
- JSON — Wikipedia
- Standard ECMAScript 5 (ECMA-262 5.1 Edition) - Ecma international
- Standard ECMAScript 5 (ECMA-262 Edition 5.1), Russian translation javascript.ru
- 2015 standard ECMAScript (ECMA-262 6th Edition) - Ecma international
- 2016 standard ECMAScript (ECMA-262 7th Edition) - Ecma international
- The standards Document Object Model (DOM) w3.org
- Standards for JavaScript APIs - w3.org
- Documentation TypeScript - TypeScript
- Documentation CoffeeScript - CoffeeScript
Tutorials and textbooks
- Tutorial JavaScript javascript.ru
- Textbooks and reference books JavaScript - Mozilla Developer Network
- JavaScript and jQuery HTML5BOOK.ru
- JavaScript Tutorial
Interactive courses
Presented below interactive courses include assignments to test the gained knowledge and skills.
Reference
Video
- Basics of developing websites and web applications - Microsoft Virtual Academy
- Basics of JavaScript Sorax
- Video course JavaScript Essential ITVDN
- Video course JavaScript Advanced - ITVDN
- Video course JavaScript Patterns - ITVDN
- Video course TypeScript Fundamentals - ITVDN
- Video course on CoffeeScript webtheory
Additionally ###
- School of development of interfaces. Moscow - Academy of Yandex
- School of development of interfaces. Ekaterinburg Academy of Yandex
- School of development of interfaces. Simferopol - Academy Yandex
- Chrome DevTools: debugging, console, profiling JSib Community
Instead of the presentation
Recommended books
- Familiarity with JavaScript Themselves Pessi
- Creating your first app with Node - Chris Sevilleja
- Node, Express and libsass: a project from scratch - Dale Sande
- Getting started with Grunt - Chris Sevilleja
- Build with Gulp - Callum McRae
- Automation with Gulp - Ahmed salifu Amidu
- Bower, Gulp and Yeoman - Davey Shafik
- JavaScript and jQuery. Comprehensive manual - David Sawyer Mcfarland
- Web applications in JavaScript - Alex McCaw
- JavaScript. Performance optimization - Nicholas Zakas
- Secrets of the JavaScript ninja - John Rezig, beer Bibo
Software
- Basic software (requires to install the tools needed in a particular case):
- Basic software - Mozilla Developer Network
- Development environment (required to install one of these, we recommend you Visual Studio Code):
- Visual Studio Code extensions jshint, for editorconfig.
- WebStorm
- Browser extensions and tools (required set as needed):
- Google Chrome DevTools - Mozilla Developer Network
- Developer tools Firefox - Mozilla Developer Network
- Firebug extension for Firefox - Mozilla Developer Network
- Web Developer extension for Firefox - Mozilla Developer Network
Tests, laboratory work and practical tasks
Tests
Practical tasks
- Learn JavaScript - Codecademy
- JavaScript Challenge - Codewars
- Simple tasks in JavaScript - codedokode