SlideShare a Scribd company logo
1 of 56
COFFEESCRIPT
           счастье для javascript разработчика




Иван Немытченко                        Омск, 26 июня 2010
JAVASCRIPT
var a = "3";
2+a-a-2 ==
var a = "3";
2+a-a-2 == 18
'' == '0'   // false
0 == ''     // true
0 == '0'    // true
'' == '0'          // false
0 == ''            // true
0 == '0'           // true

false == 'false'   // false
false == '0'       // true
'' == '0'          // false
0 == ''            // true
0 == '0'           // true

false == 'false'   // false
false == '0'       // true

false == undefined // false
false == null      // false
null == undefined // true
'' == '0'          // false
0 == ''            // true
0 == '0'           // true

false == 'false'   // false
false == '0'       // true

false == undefined // false
false == null      // false
null == undefined // true

' trn ' == 0    // true
NaN === NaN        // false
typeof(1)       // "number"
typeof('a')     // "string"
typeof({a:1})   // "object"
typeof(1)       // "number"
typeof('a')     // "string"
typeof({a:1})   // "object"

typeof([1,2])   // "object"
typeof(null)    // "object"
typeof(1)                    // "number"
typeof('a')                  // "string"
typeof({a:1})                // "object"

typeof([1,2])                // "object"
typeof(null)                 // "object"

typeof(false)                // "boolean"
typeof(new Boolean(false))   // "object"
if(a == b)
  c = 3;
if(a == b)
  c = 3;
  doSomething();
if(a == b)
  c = 3;
  doSomething();

if(a == b){
  c = 3;
  doSomething();
}
if(a == b)
  c = 3;
  doSomething();

if(a == b){
  c = 3;
}
doSomething();
глобальные переменные
точка с запятой
                    прототипное
                    наследование
             with
 switch
                     eval
JAVASCRIPT

ПЛОХОЙ КОД
ЛЕГКО ПИСАТЬ
JAVASCRIPT

ХОРОШИЙ КОД
СЛОЖНО ПИСАТЬ
JAVASCRIPT

ХОРОШИЙ КОД
СЛОЖНО ЧИТАТЬ
JAVASCRIPT
var _a, _b, age, ages, child;
var __hasProp = Object.prototype.hasOwnProperty;

ages = (function() {
  _a = []; _b = years_old;
  for (child in _b) { if (__hasProp.call(_b, child)) {
     age = _b[child];
     _a.push(child + " is " + age);
  }}
  return _a;
})();
COFFEESCRIPT

  INSPIRED BY
COFFEESCRIPT

  INSPIRED BY
COFFEESCRIPT

  INSPIRED BY
Все является выражением
Условия
Условия
Функции
Объекты
Произвольное кол-во параметров


race: (winner, runners...) ->
  print winner, runners
Проверка на существование


alert "Yay!" if margincon?


               if ((typeof margincon !== "undefined"
                       && margincon !== null)) {
                 alert("Yay!");
               }
Интервалы (ranges)

numbers: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

three_to_six: numbers[3..6]

numbers_copy: numbers[0...numbers.length]

numbers[3..6]: [-3, -4, -5, -6]
Проход по массиву (итерации)

cubed_list: math.cube num for num in list

countdown: num for num in [10..1]
Проход по хэшу (свойствам объекта)


  years_old: {max: 10, ida: 9, tim: 11}

  ages: for child, age of years_old
    child + " is " + age
Присвоение по паттерну


bait: 1000
and_switch: 0

[bait, and_switch]: [and_switch, bait]
Строки
moby_dick: "Lorem ipsum dolor   var moby_dick;
sit amet, consectetur           moby_dick = "Lorem ipsum dolor   
adipiscing elit."               sit amet, consectetur 
                                adipiscing elit.";


html: '''                       var html;
      <strong>                  html = '<strong>n cup of
        cup of coffeescript     coffeescriptn</strong>';
      </strong>
      '''


author: "Wittgenstein"
quote: "A picture is a fact. -- $author"
sentence: "${ 22 / 7 } is a decent approximation of π"
Наследование
Наследование


    Base2
 PrototypeJS
   JS.Class
brain-safe way
       Наследование
class Animal
  move: (meters) ->
    alert @name + " moved " + meters + "m."

class Snake extends Animal
  constructor: (name) ->
    @name: name
  move: ->
    alert "Slithering..."
    super 5
Собери всю коллекцию!


        HTML
         CSS
     JAVASCRIPT
HTML
<article id='id1'>
  <section class='a1'>
    Lorem ipsum
  </section>
  <section class='a2'>
    Sit dolor
  </section>
</article>
HTML → HAML

 %article#id1
   %section.a1
     Lorem ipsum
   %section.a2
     Sit dolor
CSS
article {
  margin: 2em 0;
}
article section {
  text-align: right;
}
CSS → SASS

article
  margin: 2em 0
  section
    text-align: right
JAVASCRIPT
var margincon;
margincon = {
   date: "26.06.2010"
};

if ((typeof margincon !== "undefined"
     && margincon !== null)) {
  alert("Yay!");
}
JAVASCRIPT → COFFEESCRIPT



  margincon: {date: "26.06.2010"}
  alert "Yay!" if margincon?
HTML → HAML
         CSS → SASS
JAVASCRIPT → COFFEESCRIPT
HTML → HAML
         CSS → SASS
JAVASCRIPT → COFFEESCRIPT

     JSON → TEQUILA
COFFEESCRIPT



.coffee → .js
COFFEESCRIPT
COFFEESCRIPT
УСТАНОВКА
                Node.js
http://github.com/jashkenas/coffee-script

          sudo bin/cake install
УСТАНОВКА
                Node.js
http://github.com/jashkenas/coffee-script

          sudo bin/cake install



       brew install coffee-script
УСТАНОВКА
...
<script type="text/coffeescript">
  alert "Inline scripting!"
</script>
...
thnx to @drnic
http://coffeescript.org




  http://jazzcloud.net
http://twitter.com/inem

More Related Content

More from Ivan Nemytchenko

Breaking Bad Habits with GitLab CI
Breaking Bad Habits with GitLab CIBreaking Bad Habits with GitLab CI
Breaking Bad Habits with GitLab CIIvan Nemytchenko
 
How to stop being Rails Developer
How to stop being Rails DeveloperHow to stop being Rails Developer
How to stop being Rails DeveloperIvan Nemytchenko
 
What I Have Learned from Organizing Remote Internship for Ruby developers
What I Have Learned from Organizing Remote Internship for Ruby developersWhat I Have Learned from Organizing Remote Internship for Ruby developers
What I Have Learned from Organizing Remote Internship for Ruby developersIvan Nemytchenko
 
Breaking bad habits with GitLab CI
Breaking bad habits with GitLab CIBreaking bad habits with GitLab CI
Breaking bad habits with GitLab CIIvan Nemytchenko
 
Lean Poker in Lviv announce
Lean Poker in Lviv announceLean Poker in Lviv announce
Lean Poker in Lviv announceIvan Nemytchenko
 
How to use any static site generator with GitLab Pages.
How to use any static site generator with GitLab Pages. How to use any static site generator with GitLab Pages.
How to use any static site generator with GitLab Pages. Ivan Nemytchenko
 
Опыт организации удаленной стажировки для рубистов
Опыт организации удаленной стажировки для рубистовОпыт организации удаленной стажировки для рубистов
Опыт организации удаленной стажировки для рубистовIvan Nemytchenko
 
Principles. Misunderstood. Applied
Principles. Misunderstood. AppliedPrinciples. Misunderstood. Applied
Principles. Misunderstood. AppliedIvan Nemytchenko
 
From Rails-way to modular architecture
From Rails-way to modular architectureFrom Rails-way to modular architecture
From Rails-way to modular architectureIvan Nemytchenko
 
Рассказ про RedDotRubyConf 2014
Рассказ про RedDotRubyConf 2014Рассказ про RedDotRubyConf 2014
Рассказ про RedDotRubyConf 2014Ivan Nemytchenko
 
Рефакторинг rails-приложения. С чего начать?
Рефакторинг rails-приложения. С чего начать?Рефакторинг rails-приложения. С чего начать?
Рефакторинг rails-приложения. С чего начать?Ivan Nemytchenko
 
Different approaches to ruby web applications architecture
Different approaches to ruby web applications architectureDifferent approaches to ruby web applications architecture
Different approaches to ruby web applications architectureIvan Nemytchenko
 
От Rails-way к модульной архитектуре
От Rails-way к модульной архитектуреОт Rails-way к модульной архитектуре
От Rails-way к модульной архитектуреIvan Nemytchenko
 
Tequila - язык для продвинутой генерации JSON
Tequila - язык для продвинутой генерации JSONTequila - язык для продвинутой генерации JSON
Tequila - язык для продвинутой генерации JSONIvan Nemytchenko
 

More from Ivan Nemytchenko (15)

Breaking Bad Habits with GitLab CI
Breaking Bad Habits with GitLab CIBreaking Bad Habits with GitLab CI
Breaking Bad Habits with GitLab CI
 
How to stop being Rails Developer
How to stop being Rails DeveloperHow to stop being Rails Developer
How to stop being Rails Developer
 
What I Have Learned from Organizing Remote Internship for Ruby developers
What I Have Learned from Organizing Remote Internship for Ruby developersWhat I Have Learned from Organizing Remote Internship for Ruby developers
What I Have Learned from Organizing Remote Internship for Ruby developers
 
Breaking bad habits with GitLab CI
Breaking bad habits with GitLab CIBreaking bad habits with GitLab CI
Breaking bad habits with GitLab CI
 
Lean Poker in Lviv announce
Lean Poker in Lviv announceLean Poker in Lviv announce
Lean Poker in Lviv announce
 
How to use any static site generator with GitLab Pages.
How to use any static site generator with GitLab Pages. How to use any static site generator with GitLab Pages.
How to use any static site generator with GitLab Pages.
 
Опыт организации удаленной стажировки для рубистов
Опыт организации удаленной стажировки для рубистовОпыт организации удаленной стажировки для рубистов
Опыт организации удаленной стажировки для рубистов
 
Principles. Misunderstood. Applied
Principles. Misunderstood. AppliedPrinciples. Misunderstood. Applied
Principles. Misunderstood. Applied
 
From Rails-way to modular architecture
From Rails-way to modular architectureFrom Rails-way to modular architecture
From Rails-way to modular architecture
 
Рассказ про RedDotRubyConf 2014
Рассказ про RedDotRubyConf 2014Рассказ про RedDotRubyConf 2014
Рассказ про RedDotRubyConf 2014
 
Рефакторинг rails-приложения. С чего начать?
Рефакторинг rails-приложения. С чего начать?Рефакторинг rails-приложения. С чего начать?
Рефакторинг rails-приложения. С чего начать?
 
Different approaches to ruby web applications architecture
Different approaches to ruby web applications architectureDifferent approaches to ruby web applications architecture
Different approaches to ruby web applications architecture
 
От Rails-way к модульной архитектуре
От Rails-way к модульной архитектуреОт Rails-way к модульной архитектуре
От Rails-way к модульной архитектуре
 
ActiveRecord vs Mongoid
ActiveRecord vs MongoidActiveRecord vs Mongoid
ActiveRecord vs Mongoid
 
Tequila - язык для продвинутой генерации JSON
Tequila - язык для продвинутой генерации JSONTequila - язык для продвинутой генерации JSON
Tequila - язык для продвинутой генерации JSON
 

Coffescript - счастье для javascript-разработчика

Editor's Notes

  1. &amp;#x414;&amp;#x43E;&amp;#x431;&amp;#x440;&amp;#x43E;&amp;#x435; &amp;#x443;&amp;#x442;&amp;#x440;&amp;#x43E;. &amp;#x41C;&amp;#x435;&amp;#x43D;&amp;#x44F; &amp;#x437;&amp;#x43E;&amp;#x432;&amp;#x443;&amp;#x442; &amp;#x418;&amp;#x432;&amp;#x430;&amp;#x43D; &amp;#x41D;&amp;#x435;&amp;#x43C;&amp;#x44B;&amp;#x442;&amp;#x447;&amp;#x435;&amp;#x43D;&amp;#x43A;&amp;#x43E;. &amp;#x42F; - &amp;#x434;&amp;#x438;&amp;#x440;&amp;#x435;&amp;#x43A;&amp;#x442;&amp;#x43E;&amp;#x440; &amp;#x43A;&amp;#x43E;&amp;#x43C;&amp;#x43F;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x438; &amp;#x414;&amp;#x436;&amp;#x430;&amp;#x437;&amp;#x41A;&amp;#x43B;&amp;#x430;&amp;#x443;&amp;#x434;. &amp;#x420;&amp;#x430;&amp;#x434; &amp;#x437;&amp;#x434;&amp;#x435;&amp;#x441;&amp;#x44C; &amp;#x432;&amp;#x441;&amp;#x435;&amp;#x445; &amp;#x432;&amp;#x430;&amp;#x441; &amp;#x432;&amp;#x438;&amp;#x434;&amp;#x435;&amp;#x442;&amp;#x44C;. &amp;#x421;&amp;#x43F;&amp;#x430;&amp;#x441;&amp;#x438;&amp;#x431;&amp;#x43E; &amp;#x42E;&amp;#x440;&amp;#x435; &amp;#x437;&amp;#x430; &amp;#x442;&amp;#x43E; &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x440;&amp;#x430;&amp;#x434;&amp;#x443;&amp;#x435;&amp;#x442; &amp;#x43D;&amp;#x430;&amp;#x441; &amp;#x432;&amp;#x441;&amp;#x435; &amp;#x431;&amp;#x43E;&amp;#x43B;&amp;#x435;&amp;#x435; &amp;#x438;&amp;#x43D;&amp;#x442;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x441;&amp;#x43D;&amp;#x44B;&amp;#x43C;&amp;#x438; &amp;#x43A;&amp;#x43E;&amp;#x43D;&amp;#x444;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x43D;&amp;#x446;&amp;#x438;&amp;#x44F;&amp;#x43C;&amp;#x438;. &amp;#x41D;&amp;#x430;&amp;#x448;&amp;#x435;&amp;#x439; &amp;#x43A;&amp;#x43E;&amp;#x43C;&amp;#x43F;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x438; &amp;#x432; &amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x43C; &amp;#x433;&amp;#x43E;&amp;#x434;&amp;#x443; &amp;#x443;&amp;#x434;&amp;#x430;&amp;#x43B;&amp;#x43E;&amp;#x441;&amp;#x44C; &amp;#x43F;&amp;#x43E;&amp;#x43C;&amp;#x43E;&amp;#x447;&amp;#x44C; &amp;#x444;&amp;#x438;&amp;#x43D;&amp;#x430;&amp;#x43D;&amp;#x441;&amp;#x43E;&amp;#x432;&amp;#x43E; &amp;#x432; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x432;&amp;#x435;&amp;#x434;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x438; &amp;#x43A;&amp;#x43E;&amp;#x43D;&amp;#x444;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x43D;&amp;#x446;&amp;#x438;&amp;#x438;, &amp;#x447;&amp;#x435;&amp;#x43C;&amp;#x443; &amp;#x44F; &amp;#x442;&amp;#x43E;&amp;#x436;&amp;#x435; &amp;#x440;&amp;#x430;&amp;#x434;. &amp;#x418;&amp;#x442;&amp;#x430;&amp;#x43A;, &amp;#x43F;&amp;#x43E;&amp;#x436;&amp;#x430;&amp;#x43B;&amp;#x443;&amp;#x439; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x441;&amp;#x442;&amp;#x443;&amp;#x43F;&amp;#x438;&amp;#x43C;. &amp;#x414;&amp;#x43E;&amp;#x43A;&amp;#x43B;&amp;#x430;&amp;#x434; &amp;#x43C;&amp;#x43E;&amp;#x439; &amp;#x43D;&amp;#x430;&amp;#x437;&amp;#x44B;&amp;#x432;&amp;#x430;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; CoffeeScript - &amp;#x441;&amp;#x447;&amp;#x430;&amp;#x441;&amp;#x442;&amp;#x44C;&amp;#x435; &amp;#x434;&amp;#x43B;&amp;#x44F; javascript &amp;#x440;&amp;#x430;&amp;#x437;&amp;#x440;&amp;#x430;&amp;#x431;&amp;#x43E;&amp;#x442;&amp;#x447;&amp;#x438;&amp;#x43A;&amp;#x430;. &amp;#x412;&amp;#x43E;&amp;#x442; &amp;#x441; &amp;#x44F;&amp;#x432;&amp;#x430;&amp;#x441;&amp;#x43A;&amp;#x440;&amp;#x438;&amp;#x43F;&amp;#x442;&amp;#x430; &amp;#x43C;&amp;#x44B; &amp;#x438; &amp;#x43D;&amp;#x430;&amp;#x447;&amp;#x43D;&amp;#x435;&amp;#x43C;.
  2. &amp;#x41F;&amp;#x43E;&amp;#x434;&amp;#x43D;&amp;#x438;&amp;#x43C;&amp;#x438;&amp;#x442;&amp;#x435; &amp;#x43F;&amp;#x43E;&amp;#x436;&amp;#x430;&amp;#x43B;&amp;#x443;&amp;#x439;&amp;#x441;&amp;#x442;&amp;#x430; &amp;#x440;&amp;#x443;&amp;#x43A;&amp;#x438;, &amp;#x43A;&amp;#x442;&amp;#x43E; &amp;#x438;&amp;#x437; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x441;&amp;#x443;&amp;#x442;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x443;&amp;#x44E;&amp;#x449;&amp;#x438;&amp;#x445; &amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x43C; &amp;#x441; &amp;#x44F;&amp;#x432;&amp;#x430;&amp;#x441;&amp;#x43A;&amp;#x440;&amp;#x438;&amp;#x43F;&amp;#x442;&amp;#x43E;&amp;#x43C;.
  3. &amp;#x41E;&amp;#x442;&amp;#x43B;&amp;#x438;&amp;#x447;&amp;#x43D;&amp;#x43E;. &amp;#x410; &amp;#x43A;&amp;#x442;&amp;#x43E; &amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x435;&amp;#x442; &amp;#x447;&amp;#x435;&amp;#x43C;&amp;#x443; &amp;#x431;&amp;#x443;&amp;#x434;&amp;#x435;&amp;#x442; &amp;#x440;&amp;#x430;&amp;#x432;&amp;#x43D;&amp;#x43E; &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x432;&amp;#x44B;&amp;#x440;&amp;#x430;&amp;#x436;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x435;?
  4. &amp;#x41D;&amp;#x43E;&amp;#x43B;&amp;#x44C;?
  5. &amp;#x41D;&amp;#x43E;&amp;#x43B;&amp;#x44C;? &amp;#x423;&amp;#x432;&amp;#x44B;, &amp;#x43D;&amp;#x435;&amp;#x442;! 18. &amp;#x41F;&amp;#x43E;&amp;#x447;&amp;#x435;&amp;#x43C;&amp;#x443; &amp;#x442;&amp;#x430;&amp;#x43A;? 1 - &amp;#x412; &amp;#x44F;&amp;#x432;&amp;#x430;&amp;#x441;&amp;#x43A;&amp;#x440;&amp;#x438;&amp;#x43F;&amp;#x442;&amp;#x435; &amp;#x434;&amp;#x43B;&amp;#x44F; &amp;#x43E;&amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x430;&amp;#x446;&amp;#x438;&amp;#x439; &amp;#x43A;&amp;#x43E;&amp;#x43D;&amp;#x43A;&amp;#x430;&amp;#x442;&amp;#x435;&amp;#x43D;&amp;#x430;&amp;#x446;&amp;#x438;&amp;#x438; &amp;#x438; &amp;#x441;&amp;#x43B;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x44F; &amp;#x438;&amp;#x441;&amp;#x43F;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x437;&amp;#x443;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x441;&amp;#x438;&amp;#x43C;&amp;#x432;&amp;#x43E;&amp;#x43B; &amp;#x201C;+&amp;#x201D;. 2 - &amp;#x44F;&amp;#x432;&amp;#x430;&amp;#x441;&amp;#x43A;&amp;#x440;&amp;#x438;&amp;#x43F;&amp;#x442; - &amp;#x44F;&amp;#x437;&amp;#x44B;&amp;#x43A; &amp;#x441;&amp;#x43B;&amp;#x430;&amp;#x431;&amp;#x43E; &amp;#x442;&amp;#x438;&amp;#x43F;&amp;#x438;&amp;#x437;&amp;#x438;&amp;#x440;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x43D;&amp;#x44B;&amp;#x439;. &amp;#x417;&amp;#x430; &amp;#x441;&amp;#x447;&amp;#x435;&amp;#x442; &amp;#x44D;&amp;#x442;&amp;#x438;&amp;#x445; &amp;#x434;&amp;#x432;&amp;#x443;&amp;#x445; &amp;#x444;&amp;#x430;&amp;#x43A;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x43E;&amp;#x432; &amp;#x43C;&amp;#x44B; &amp;#x43F;&amp;#x43E;&amp;#x43B;&amp;#x443;&amp;#x447;&amp;#x430;&amp;#x435;&amp;#x43C; &amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x438;&amp;#x435; &amp;#x438;&amp;#x43D;&amp;#x442;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x441;&amp;#x43D;&amp;#x44B;&amp;#x435; &amp;#x44D;&amp;#x444;&amp;#x444;&amp;#x435;&amp;#x43A;&amp;#x442;&amp;#x44B;
  6. &amp;#x41A;&amp;#x442;&amp;#x43E; &amp;#x43D;&amp;#x438;&amp;#x431;&amp;#x443;&amp;#x434;&amp;#x44C; &amp;#x43F;&amp;#x43E;&amp;#x43D;&amp;#x438;&amp;#x43C;&amp;#x430;&amp;#x435;&amp;#x442;, &amp;#x43F;&amp;#x43E;&amp;#x447;&amp;#x435;&amp;#x43C;&amp;#x443; &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x442;&amp;#x430;&amp;#x43A;?
  7. &amp;#x41E;&amp;#x43A;. &amp;#x410; &amp;#x44D;&amp;#x442;&amp;#x43E;?
  8. &amp;#x41D;&amp;#x443; &amp;#x430; &amp;#x44D;&amp;#x442;&amp;#x43E;? &amp;#x41D;&amp;#x435; &amp;#x43E;&amp;#x447;&amp;#x435;&amp;#x43D;&amp;#x44C; &amp;#x43E;&amp;#x447;&amp;#x435;&amp;#x432;&amp;#x438;&amp;#x434;&amp;#x43D;&amp;#x43E;, &amp;#x434;&amp;#x430;?
  9. &amp;#x418; &amp;#x432;&amp;#x43E;&amp;#x442; &amp;#x435;&amp;#x449;&amp;#x435;. &amp;#x412;&amp;#x44B; &amp;#x43D;&amp;#x435; &amp;#x434;&amp;#x443;&amp;#x43C;&amp;#x430;&amp;#x439;&amp;#x442;&amp;#x435;, &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x43D;&amp;#x435; random-&amp;#x43D;&amp;#x43E;&amp;#x435; &amp;#x43F;&amp;#x43E;&amp;#x432;&amp;#x435;&amp;#x434;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x435;. &amp;#x415;&amp;#x441;&amp;#x442;&amp;#x44C; &amp;#x43F;&amp;#x440;&amp;#x430;&amp;#x432;&amp;#x438;&amp;#x43B;&amp;#x430;, &amp;#x43F;&amp;#x43E; &amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x44B;&amp;#x43C; &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x440;&amp;#x430;&amp;#x431;&amp;#x43E;&amp;#x442;&amp;#x430;&amp;#x435;&amp;#x442;. &amp;#x41F;&amp;#x440;&amp;#x430;&amp;#x432;&amp;#x434;&amp;#x430; &amp;#x438;&amp;#x445; &amp;#x434;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x430;&amp;#x442;&amp;#x43E;&amp;#x447;&amp;#x43D;&amp;#x43E; &amp;#x441;&amp;#x43B;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x43E; &amp;#x43E;&amp;#x431;&amp;#x44A;&amp;#x44F;&amp;#x441;&amp;#x43D;&amp;#x438;&amp;#x442;&amp;#x44C; &amp;#x43B;&amp;#x43E;&amp;#x433;&amp;#x438;&amp;#x447;&amp;#x435;&amp;#x441;&amp;#x43A;&amp;#x438; &amp;#x438; &amp;#x43F;&amp;#x440;&amp;#x44F;&amp;#x43C;&amp;#x43E; &amp;#x441;&amp;#x43A;&amp;#x430;&amp;#x436;&amp;#x435;&amp;#x43C; &amp;#x43D;&amp;#x435; &amp;#x43B;&amp;#x435;&amp;#x433;&amp;#x43A;&amp;#x43E; &amp;#x437;&amp;#x430;&amp;#x43F;&amp;#x43E;&amp;#x43C;&amp;#x43D;&amp;#x438;&amp;#x442;&amp;#x44C;.
  10. &amp;#x415;&amp;#x449;&amp;#x435; &amp;#x43D;&amp;#x435;&amp;#x43C;&amp;#x43D;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x441;&amp;#x442;&amp;#x440;&amp;#x430;&amp;#x43D;&amp;#x43D;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x435;&amp;#x439;, &amp;#x441; &amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x44B;&amp;#x43C;&amp;#x438; &amp;#x44F;&amp;#x432;&amp;#x430;&amp;#x441;&amp;#x43A;&amp;#x440;&amp;#x438;&amp;#x43F;&amp;#x442;-&amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x433;&amp;#x440;&amp;#x430;&amp;#x43C;&amp;#x43C;&amp;#x438;&amp;#x441;&amp;#x442; &amp;#x441;&amp;#x442;&amp;#x430;&amp;#x43B;&amp;#x43A;&amp;#x438;&amp;#x432;&amp;#x430;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x435;&amp;#x436;&amp;#x435;&amp;#x434;&amp;#x43D;&amp;#x435;&amp;#x432;&amp;#x43D;&amp;#x43E;. Typeof. &amp;#x41F;&amp;#x43E;&amp;#x43A;&amp;#x430;&amp;#x437;&amp;#x44B;&amp;#x432;&amp;#x430;&amp;#x435;&amp;#x442; &amp;#x442;&amp;#x43E; &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x43D;&amp;#x430;&amp;#x434;&amp;#x43E; &amp;#x434;&amp;#x43B;&amp;#x44F; &amp;#x447;&amp;#x438;&amp;#x441;&amp;#x435;&amp;#x43B;, &amp;#x441;&amp;#x442;&amp;#x440;&amp;#x43E;&amp;#x43A;, &amp;#x43E;&amp;#x431;&amp;#x44A;&amp;#x435;&amp;#x43A;&amp;#x442;&amp;#x43E;&amp;#x432;
  11. &amp;#x410; &amp;#x441; &amp;#x43C;&amp;#x430;&amp;#x441;&amp;#x441;&amp;#x438;&amp;#x432;&amp;#x430;&amp;#x43C;&amp;#x438; &amp;#x43D;&amp;#x430;&amp;#x43A;&amp;#x43B;&amp;#x430;&amp;#x434;&amp;#x43E;&amp;#x447;&amp;#x43A;&amp;#x430;. &amp;#x418; null, &amp;#x43F;&amp;#x440;&amp;#x44F;&amp;#x43C;&amp;#x43E; &amp;#x441;&amp;#x43A;&amp;#x430;&amp;#x436;&amp;#x435;&amp;#x43C;, &amp;#x441;&amp;#x43E;&amp;#x432;&amp;#x441;&amp;#x435;&amp;#x43C; &amp;#x43D;&amp;#x435; &amp;#x43E;&amp;#x431;&amp;#x44A;&amp;#x435;&amp;#x43A;&amp;#x442;.
  12. &amp;#x421; &amp;#x431;&amp;#x443;&amp;#x43B;&amp;#x435;&amp;#x432;&amp;#x441;&amp;#x43A;&amp;#x438;&amp;#x43C;&amp;#x438; &amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x44B;&amp;#x43C;&amp;#x438; &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x440;&amp;#x430;&amp;#x431;&amp;#x43E;&amp;#x442;&amp;#x430;&amp;#x435;&amp;#x442;. &amp;#x41F;&amp;#x440;&amp;#x430;&amp;#x432;&amp;#x434;&amp;#x430; &amp;#x43D;&amp;#x435; &amp;#x441;&amp;#x43E; &amp;#x432;&amp;#x441;&amp;#x435;&amp;#x43C;&amp;#x438;. &amp;#x417;&amp;#x430; &amp;#x447;&amp;#x435;&amp;#x43C; &amp;#x432;&amp;#x43E;&amp;#x43E;&amp;#x431;&amp;#x449;&amp;#x435; &amp;#x432; &amp;#x44F;&amp;#x437;&amp;#x44B;&amp;#x43A;&amp;#x435; &amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x430;&amp;#x44F; &amp;#x43A;&amp;#x43E;&amp;#x43D;&amp;#x441;&amp;#x442;&amp;#x440;&amp;#x443;&amp;#x43A;&amp;#x446;&amp;#x438;&amp;#x44F;, &amp;#x43D;&amp;#x435; &amp;#x441;&amp;#x43E;&amp;#x432;&amp;#x441;&amp;#x435;&amp;#x43C; &amp;#x43F;&amp;#x43E;&amp;#x43D;&amp;#x44F;&amp;#x442;&amp;#x43D;&amp;#x43E;.
  13. &amp;#x41A;&amp;#x43B;&amp;#x430;&amp;#x441;&amp;#x441;&amp;#x438;&amp;#x447;&amp;#x435;&amp;#x441;&amp;#x43A;&amp;#x438;&amp;#x439; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x43C;&amp;#x435;&amp;#x440;, &amp;#x43A;&amp;#x43E;&amp;#x433;&amp;#x434;&amp;#x430; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x445;&amp;#x43E;&amp;#x434;&amp;#x438;&amp;#x442; &amp;#x43C;&amp;#x43E;&amp;#x43B;&amp;#x43E;&amp;#x434;&amp;#x43E;&amp;#x439; &amp;#x440;&amp;#x430;&amp;#x437;&amp;#x440;&amp;#x430;&amp;#x431;&amp;#x43E;&amp;#x442;&amp;#x447;&amp;#x438;&amp;#x43A;, &amp;#x438; &amp;#x432;&amp;#x438;&amp;#x434;&amp;#x44F; &amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x439; &amp;#x43A;&amp;#x43E;&amp;#x434;,
  14. , &amp;#x434;&amp;#x43E;&amp;#x43F;&amp;#x438;&amp;#x441;&amp;#x44B;&amp;#x432;&amp;#x430;&amp;#x435;&amp;#x442; &amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x434;&amp;#x43E; &amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x433;&amp;#x43E;
  15. &amp;#x41F;&amp;#x43E;&amp;#x434;&amp;#x440;&amp;#x430;&amp;#x437;&amp;#x443;&amp;#x43C;&amp;#x435;&amp;#x432;&amp;#x430;&amp;#x44F; &amp;#x44D;&amp;#x442;&amp;#x43E;
  16. &amp;#x41D;&amp;#x43E; &amp;#x43C;&amp;#x44B; &amp;#x442;&amp;#x43E; &amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x435;&amp;#x43C; &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x43F;&amp;#x43E;&amp;#x43B;&amp;#x443;&amp;#x447;&amp;#x430;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x432;&amp;#x43E;&amp;#x442; &amp;#x442;&amp;#x430;&amp;#x43A; &amp;#x43D;&amp;#x430; &amp;#x441;&amp;#x430;&amp;#x43C;&amp;#x43E;&amp;#x43C; &amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x435;.
  17. &amp;#x41D;&amp;#x430;&amp;#x441;&amp;#x43B;&amp;#x435;&amp;#x434;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x435;. &amp;#x41B;&amp;#x44E;&amp;#x431;&amp;#x438;&amp;#x43C;&amp;#x430;&amp;#x44F; &amp;#x442;&amp;#x435;&amp;#x43C;&amp;#x430; &amp;#x44F;&amp;#x432;&amp;#x430;&amp;#x441;&amp;#x43A;&amp;#x440;&amp;#x438;&amp;#x43F;&amp;#x442;-&amp;#x440;&amp;#x430;&amp;#x437;&amp;#x440;&amp;#x430;&amp;#x431;&amp;#x43E;&amp;#x442;&amp;#x447;&amp;#x438;&amp;#x43A;&amp;#x43E;&amp;#x432;. &amp;#x41F;&amp;#x43E;&amp;#x434;&amp;#x43D;&amp;#x438;&amp;#x43C;&amp;#x438;&amp;#x442;&amp;#x435; &amp;#x440;&amp;#x443;&amp;#x43A;&amp;#x438;, &amp;#x43A;&amp;#x442;&amp;#x43E; &amp;#x43F;&amp;#x43E;&amp;#x43D;&amp;#x438;&amp;#x43C;&amp;#x430;&amp;#x435;&amp;#x442; &amp;#x43A;&amp;#x430;&amp;#x43A; &amp;#x440;&amp;#x430;&amp;#x431;&amp;#x43E;&amp;#x442;&amp;#x430;&amp;#x435;&amp;#x442; &amp;#x43D;&amp;#x430;&amp;#x441;&amp;#x43B;&amp;#x435;&amp;#x434;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x435; &amp;#x432; &amp;#x44F;&amp;#x432;&amp;#x430;&amp;#x441;&amp;#x43A;&amp;#x440;&amp;#x438;&amp;#x43F;&amp;#x442;&amp;#x435;? &amp;#x41F;&amp;#x43E;&amp;#x434;&amp;#x43D;&amp;#x438;&amp;#x43C;&amp;#x438;&amp;#x442;&amp;#x435; &amp;#x440;&amp;#x443;&amp;#x43A;&amp;#x438;, &amp;#x43A;&amp;#x442;&amp;#x43E; &amp;#x441;&amp;#x447;&amp;#x438;&amp;#x442;&amp;#x430;&amp;#x435;&amp;#x442; &amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x441;&amp;#x442;&amp;#x440;&amp;#x430;&amp;#x43D;&amp;#x43D;&amp;#x44B;&amp;#x43C;? &amp;#x41D;&amp;#x443; &amp;#x43A;&amp;#x430;&amp;#x43A; &amp;#x431;&amp;#x44B; &amp;#x434;&amp;#x430;.
  18. &amp;#x412;&amp;#x43E;&amp;#x442; &amp;#x435;&amp;#x449;&amp;#x435; &amp;#x441;&amp;#x43F;&amp;#x438;&amp;#x441;&amp;#x43E;&amp;#x43A; &amp;#x432;&amp;#x43E;&amp;#x437;&amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x435;&amp;#x439; &amp;#x44F;&amp;#x437;&amp;#x44B;&amp;#x43A;&amp;#x430; &amp;#x440;&amp;#x430;&amp;#x437;&amp;#x43D;&amp;#x43E;&amp;#x439; &amp;#x441;&amp;#x442;&amp;#x435;&amp;#x43F;&amp;#x435;&amp;#x43D;&amp;#x438; &amp;#x43E;&amp;#x43F;&amp;#x430;&amp;#x441;&amp;#x43D;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x438;, &amp;#x43D;&amp;#x430; &amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x44B;&amp;#x445; &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x43E; &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x43D;&amp;#x430;&amp;#x437;&amp;#x44B;&amp;#x432;&amp;#x430;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F;, &amp;#x43F;&amp;#x43E;&amp;#x43F;&amp;#x430;&amp;#x441;&amp;#x442;&amp;#x44C;&amp;#x441;&amp;#x44F;. &amp;#x422;.&amp;#x435;. &amp;#x441;&amp;#x430;&amp;#x43C;&amp;#x438; &amp;#x43F;&amp;#x43E; &amp;#x441;&amp;#x435;&amp;#x431;&amp;#x435; &amp;#x43E;&amp;#x43D;&amp;#x438; - &amp;#x43D;&amp;#x435; &amp;#x437;&amp;#x43B;&amp;#x43E;, &amp;#x43D;&amp;#x43E; &amp;#x438;&amp;#x445; &amp;#x43E;&amp;#x447;&amp;#x435;&amp;#x43D;&amp;#x44C; &amp;#x43B;&amp;#x435;&amp;#x433;&amp;#x43A;&amp;#x43E; &amp;#x438;&amp;#x441;&amp;#x43F;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x437;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x43D;&amp;#x435;&amp;#x432;&amp;#x435;&amp;#x440;&amp;#x43D;&amp;#x44B;&amp;#x43C; &amp;#x441;&amp;#x43F;&amp;#x43E;&amp;#x441;&amp;#x43E;&amp;#x431;&amp;#x43E;&amp;#x43C;, &amp;#x43B;&amp;#x438;&amp;#x431;&amp;#x43E; &amp;#x441;&amp;#x43B;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x43E; &amp;#x438;&amp;#x441;&amp;#x43F;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x437;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x432;&amp;#x435;&amp;#x440;&amp;#x43D;&amp;#x44B;&amp;#x43C;.
  19. &amp;#x421;&amp;#x430;&amp;#x43C;&amp;#x43E;&amp;#x435; &amp;#x43F;&amp;#x43B;&amp;#x43E;&amp;#x445;&amp;#x43E;&amp;#x435; &amp;#x432; &amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x439; &amp;#x441;&amp;#x438;&amp;#x442;&amp;#x443;&amp;#x430;&amp;#x446;&amp;#x438;&amp;#x438;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x445;&amp;#x43E;&amp;#x440;&amp;#x43E;&amp;#x448;&amp;#x438;&amp;#x439; &amp;#x43A;&amp;#x43E;&amp;#x434; &amp;#x441; &amp;#x442;&amp;#x43E;&amp;#x447;&amp;#x43A;&amp;#x438; &amp;#x437;&amp;#x440;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x44F; &amp;#x44F;&amp;#x437;&amp;#x44B;&amp;#x43A;&amp;#x430; &amp;#x441;&amp;#x43B;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x43E; &amp;#x447;&amp;#x438;&amp;#x442;&amp;#x430;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x436;&amp;#x438;&amp;#x432;&amp;#x44B;&amp;#x43C; &amp;#x447;&amp;#x435;&amp;#x43B;&amp;#x43E;&amp;#x432;&amp;#x435;&amp;#x43A;&amp;#x43E;&amp;#x43C;.
  20. &amp;#x412;&amp;#x43E;&amp;#x442; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x43C;&amp;#x435;&amp;#x440; &amp;#x445;&amp;#x43E;&amp;#x440;&amp;#x43E;&amp;#x448;&amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x43A;&amp;#x43E;&amp;#x434;&amp;#x430;.
  21. &amp;#x418;&amp;#x442;&amp;#x430;&amp;#x43A;, CoffeeScript
  22. &amp;#x412;&amp;#x430;&amp;#x43C; &amp;#x43D;&amp;#x435; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x434;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x441;&amp;#x430;&amp;#x43C;&amp;#x438;&amp;#x43C; &amp;#x43E;&amp;#x431;&amp;#x44A;&amp;#x44F;&amp;#x432;&amp;#x43B;&amp;#x44F;&amp;#x442;&amp;#x44C; &amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x44B;&amp;#x435;.
  23. &amp;#x423;&amp;#x441;&amp;#x43B;&amp;#x43E;&amp;#x432;&amp;#x438;&amp;#x44F;
  24. &amp;#x41C;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x43E; &amp;#x432;&amp;#x44B;&amp;#x442;&amp;#x432;&amp;#x43E;&amp;#x440;&amp;#x44F;&amp;#x442;&amp;#x44C; &amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x438;&amp;#x435; &amp;#x444;&amp;#x43E;&amp;#x43A;&amp;#x443;&amp;#x441;&amp;#x44B;
  25. &amp;#x412;&amp;#x430;&amp;#x43C; &amp;#x43D;&amp;#x435; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x434;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x44F;&amp;#x432;&amp;#x43D;&amp;#x43E; &amp;#x443;&amp;#x43A;&amp;#x430;&amp;#x437;&amp;#x44B;&amp;#x432;&amp;#x430;&amp;#x442;&amp;#x44C; return
  26. &amp;#x41E;&amp;#x431;&amp;#x44A;&amp;#x435;&amp;#x43A;&amp;#x442;&amp;#x44B;
  27. &amp;#x412;&amp;#x43E;&amp;#x437;&amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x44B; &amp;#x432;&amp;#x430;&amp;#x440;&amp;#x438;&amp;#x430;&amp;#x43D;&amp;#x442;&amp;#x44B; &amp;#x43A;&amp;#x43E;&amp;#x43D;&amp;#x435;&amp;#x447;&amp;#x43D;&amp;#x43E;. &amp;#x41D;&amp;#x430;&amp;#x43F;&amp;#x438;&amp;#x441;&amp;#x430;&amp;#x43D;&amp;#x430; &amp;#x43D;&amp;#x435; &amp;#x43E;&amp;#x434;&amp;#x43D;&amp;#x430; &amp;#x431;&amp;#x438;&amp;#x431;&amp;#x43B;&amp;#x438;&amp;#x43E;&amp;#x442;&amp;#x435;&amp;#x43A;&amp;#x430;, &amp;#x440;&amp;#x435;&amp;#x430;&amp;#x43B;&amp;#x438;&amp;#x437;&amp;#x443;&amp;#x44E;&amp;#x449;&amp;#x430;&amp;#x44F; &amp;#x43A;&amp;#x43B;&amp;#x430;&amp;#x441;&amp;#x441;&amp;#x438;&amp;#x447;&amp;#x435;&amp;#x441;&amp;#x43A;&amp;#x43E;&amp;#x435; &amp;#x43D;&amp;#x430;&amp;#x441;&amp;#x43B;&amp;#x435;&amp;#x434;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x435; &amp;#x43A;&amp;#x43B;&amp;#x430;&amp;#x441;&amp;#x441;&amp;#x43E;&amp;#x432; &amp;#x432; &amp;#x44F;&amp;#x432;&amp;#x430;&amp;#x441;&amp;#x43A;&amp;#x440;&amp;#x438;&amp;#x43F;&amp;#x442;&amp;#x435;. &amp;#x41D;&amp;#x430;&amp;#x434;&amp;#x43E; &amp;#x442;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43A;&amp;#x43E; &amp;#x43F;&amp;#x43E;&amp;#x43D;&amp;#x438;&amp;#x43C;&amp;#x430;&amp;#x442;&amp;#x44C;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x43E;&amp;#x442; &amp;#x43E;&amp;#x441;&amp;#x43E;&amp;#x431;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x435;&amp;#x439; &amp;#x441;&amp;#x438;&amp;#x43D;&amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x441;&amp;#x438;&amp;#x441;&amp;#x430; &amp;#x432;&amp;#x441;&amp;#x435; &amp;#x440;&amp;#x430;&amp;#x432;&amp;#x43D;&amp;#x43E; &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x43D;&amp;#x435; &amp;#x441;&amp;#x43F;&amp;#x430;&amp;#x441;&amp;#x430;&amp;#x435;&amp;#x442;. &amp;#x41D;&amp;#x443; &amp;#x438;, &amp;#x432;&amp;#x43E;&amp;#x43E;&amp;#x431;&amp;#x449;&amp;#x435; &amp;#x433;&amp;#x43E;&amp;#x432;&amp;#x43E;&amp;#x440;&amp;#x44F;, &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x442;&amp;#x438;&amp;#x43F;&amp;#x43D;&amp;#x43E;&amp;#x435; &amp;#x43D;&amp;#x430;&amp;#x441;&amp;#x43B;&amp;#x435;&amp;#x434;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x435; - &amp;#x43D;&amp;#x435; &amp;#x435;&amp;#x441;&amp;#x442;&amp;#x44C; &amp;#x437;&amp;#x43B;&amp;#x43E;. &amp;#x41F;&amp;#x440;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x43E; &amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x43D;&amp;#x430;&amp;#x434;&amp;#x43E; &amp;#x443;&amp;#x43C;&amp;#x435;&amp;#x442;&amp;#x44C; &amp;#x433;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x432;&amp;#x438;&amp;#x442;&amp;#x44C;.
  28. &amp;#x422;&amp;#x435;&amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x44C; &amp;#x434;&amp;#x430;&amp;#x432;&amp;#x430;&amp;#x439;&amp;#x442;&amp;#x435; &amp;#x43D;&amp;#x435;&amp;#x43C;&amp;#x43D;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x43E;&amp;#x442;&amp;#x432;&amp;#x43B;&amp;#x435;&amp;#x447;&amp;#x435;&amp;#x43C;&amp;#x441;&amp;#x44F; &amp;#x438; &amp;#x43F;&amp;#x43E;&amp;#x438;&amp;#x433;&amp;#x440;&amp;#x430;&amp;#x435;&amp;#x43C; &amp;#x432; &amp;#x438;&amp;#x433;&amp;#x440;&amp;#x443;!
  29. &amp;#x423;&amp;#x440;&amp;#x430;!
  30. &amp;#x41C;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x43E; &amp;#x435;&amp;#x449;&amp;#x435; &amp;#x434;&amp;#x43E;&amp;#x431;&amp;#x430;&amp;#x432;&amp;#x438;&amp;#x442;&amp;#x44C; &amp;#x422;&amp;#x435;&amp;#x43A;&amp;#x438;&amp;#x43B;&amp;#x443;, &amp;#x43D;&amp;#x43E; &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x443;&amp;#x436;&amp;#x435; &amp;#x434;&amp;#x440;&amp;#x443;&amp;#x433;&amp;#x430;&amp;#x44F; &amp;#x438;&amp;#x441;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x438;&amp;#x44F;.
  31. &amp;#x41A;&amp;#x43E;&amp;#x43C;&amp;#x43F;&amp;#x438;&amp;#x43B;&amp;#x438;&amp;#x440;&amp;#x443;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x432; JavaScript. &amp;#x41F;&amp;#x440;&amp;#x430;&amp;#x432;&amp;#x438;&amp;#x43B;&amp;#x430; &amp;#x43A;&amp;#x43E;&amp;#x43C;&amp;#x43F;&amp;#x438;&amp;#x43B;&amp;#x44F;&amp;#x446;&amp;#x438;&amp;#x438; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x437;&amp;#x440;&amp;#x430;&amp;#x447;&amp;#x43D;&amp;#x44B; &amp;#x438; &amp;#x43E;&amp;#x434;&amp;#x43D;&amp;#x43E;&amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x447;&amp;#x43D;&amp;#x44B;. &amp;#x412;&amp;#x441;&amp;#x435; &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x432;&amp;#x44B; &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x442;&amp;#x435; &amp;#x43D;&amp;#x430;&amp;#x43F;&amp;#x438;&amp;#x441;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x43D;&amp;#x430; &amp;#x44F;&amp;#x432;&amp;#x430;&amp;#x441;&amp;#x43A;&amp;#x440;&amp;#x438;&amp;#x43F;&amp;#x442;&amp;#x435;, &amp;#x432;&amp;#x44B; &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x442;&amp;#x435; &amp;#x43D;&amp;#x430;&amp;#x43F;&amp;#x438;&amp;#x441;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x438; &amp;#x43D;&amp;#x430; coffeescript.
  32. &amp;#x421;&amp;#x433;&amp;#x435;&amp;#x43D;&amp;#x435;&amp;#x440;&amp;#x438;&amp;#x440;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x43D;&amp;#x44B;&amp;#x439; &amp;#x43A;&amp;#x43E;&amp;#x434; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x445;&amp;#x43E;&amp;#x434;&amp;#x438;&amp;#x442; JSLint code quality tool &amp;#x431;&amp;#x435;&amp;#x437; &amp;#x43F;&amp;#x440;&amp;#x435;&amp;#x434;&amp;#x443;&amp;#x43F;&amp;#x440;&amp;#x435;&amp;#x436;&amp;#x434;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x439;.
  33. &amp;#x412;&amp;#x44B; &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x442;&amp;#x435; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x434;&amp;#x43E;&amp;#x43B;&amp;#x436;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x438;&amp;#x441;&amp;#x43F;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x437;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x432;&amp;#x43D;&amp;#x435;&amp;#x448;&amp;#x43D;&amp;#x438;&amp;#x435; &amp;#x431;&amp;#x438;&amp;#x431;&amp;#x43B;&amp;#x438;&amp;#x43E;&amp;#x442;&amp;#x435;&amp;#x43A;&amp;#x438; &amp;#x442;&amp;#x430;&amp;#x43A; &amp;#x436;&amp;#x435; &amp;#x43A;&amp;#x430;&amp;#x43A; &amp;#x438; &amp;#x440;&amp;#x430;&amp;#x43D;&amp;#x44C;&amp;#x448;&amp;#x435;.