{"id":273549,"date":"2016-02-04T03:37:02","date_gmt":"2016-02-04T00:37:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=273549"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=273549","title":{"rendered":"\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e HTML\/CSS\/JavaScript"},"content":{"rendered":"<p>       <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/5ad\/d35\/6fe\/5add356fe9fe4db6a3d5e8eff84dff59.png\" align=\"left\"\/><\/p>\n<h4><b>Frontend Guidelines<\/b><\/h4>\n<p>\u041f\u0440\u0430\u0432\u0438\u043b\u0430 \u0438 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f, \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f HTML, \u0421SS \u0438 JavaScript \u043a\u043e\u0434\u0430. \u0415\u0433\u043e \u0446\u0435\u043b\u044c \u2014 \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u0434\u0430 \u0438 \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442\u044c \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b.<\/p>\n<h4><b>\u041e\u0442 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a\u0430<\/b><\/h4>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e \u0432\u0441\u0435\u0445 \u0441\u043d\u043e\u0432\u0430, \u043c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0430\u043a\u0441\u0438\u043c \u0418\u0432\u0430\u043d\u043e\u0432, \u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b \u043f\u0435\u0440\u0435\u0432\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0432\u0430\u0441 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c. <a href=\"https:\/\/dribbble.com\/bdc\">\u0411\u0435\u043d\u0434\u0436\u0430\u043c\u0438\u043d \u0414\u0435 \u041a\u0443\u043a<\/a> (Benjamin De Cock), \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0438\u0437 \u0411\u0435\u043b\u044c\u0433\u0438\u0438, \u0441\u043e\u0431\u0440\u0430\u043b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u043f\u043e \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044e \u043a\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u044e\u0442 \u0441\u0435\u0431\u044f \u043a\u0430\u043a <a href=\"https:\/\/github.com\/bendc\/frontend-guidelines\">\u043b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438<\/a> \u043f\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044e HTML, CSS, JS. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u0442\u044c \u0445\u043e\u0440\u043e\u0448\u0438\u0439 <a href=\"https:\/\/google.github.io\/styleguide\/htmlcssguide.xml\">\u0433\u0430\u0439\u0434\u043b\u0430\u0439\u043d \u043e\u0442 Google<\/a>, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0435\u0441\u0442\u044c \u0435\u0449\u0435 \u0447\u0442\u043e-\u0442\u043e, \u043e\u0434\u043d\u0430\u043a\u043e, \u0435\u0441\u043b\u0438 \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0438\u0437 \u043d\u0438\u0445, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0434\u0435\u044f\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0432\u0430\u0448 \u043a\u043e\u0434 \u0441\u0442\u0430\u043d\u0435\u0442 \u043b\u0443\u0447\u0448\u0435. \u0412 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u0442\u0438\u043c \u0433\u0430\u0439\u0434\u043b\u0430\u0439\u043d\u0430\u043c \u043d\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u043e, \u0430 \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442. \u0412 \u043e\u0431\u0449\u0435\u043c \u0438 \u0446\u0435\u043b\u043e\u043c, \u0432\u0441\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0432\u0430\u0448\u0435\u0433\u043e \u043e\u043f\u044b\u0442\u0430 \u0438 \u0432\u0438\u0434\u0435\u043d\u044c\u044f \u0434\u0435\u043b\u0430, \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u043e\u0432\u0438\u0447\u043e\u043a, \u0442\u043e \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u043f\u0438\u0448\u0443\u0442 \u0434\u0440\u0443\u0433\u0438\u0435 \u0438 \u0432 \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u0435\u0440\u043d\u044b\u043c, \u0435\u0441\u043b\u0438 \u0432\u044b \u0433\u0443\u0440\u0443, \u0442\u043e \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435 \u0432\u0430\u043c \u0438 \u043d\u0435 \u043d\u0443\u0436\u043d\u044b \u0433\u0430\u0439\u0434\u043b\u0430\u0439\u043d\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043a\u0435\u043c \u043d\u0430 \u0432\u0430\u0448 \u0432\u0437\u0433\u043b\u044f\u0434. \u0418\u0442\u0430\u043a, \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c.<br \/>  <a name=\"habracut\"><\/a><\/p>\n<h4><b>HTML<\/b><\/h4>\n<p>  <\/p>\n<ol>\n<li><a href=\"#one\">\u0421\u0435\u043c\u0430\u043d\u0442\u0438\u043a\u0430<\/a> <\/li>\n<li><a href=\"#two\">\u041b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u043e\u0441\u0442\u044c<\/a> <\/li>\n<li><a href=\"#three\">\u0427\u0438\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/a> <\/li>\n<li><a href=\"#four\">\u042f\u0437\u044b\u043a \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430<\/a> <\/li>\n<li><a href=\"#five\">\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c<\/a> <\/li>\n<\/ol>\n<h4><b>CSS<\/b><\/h4>\n<p>  <\/p>\n<ol>\n<li><a href=\"#six\">\u0422\u043e\u0447\u043a\u0430 \u0441 \u0437\u0430\u043f\u044f\u0442\u043e\u0439<\/a> <\/li>\n<li><a href=\"#seven\">\u0411\u043b\u043e\u0447\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c<\/a> <\/li>\n<li><a href=\"#eight\">\u041f\u043e\u0442\u043e\u043a\u0438<\/a> <\/li>\n<li><a href=\"#night\">\u041f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/a> <\/li>\n<li><a href=\"#ten\">\u0421\u0435\u043b\u0435\u043a\u0442\u043e\u0440\u044b<\/a> <\/li>\n<li><a href=\"#eleven\">\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u043e\u0441\u0442\u044c<\/a> <\/li>\n<li><a href=\"#twelve\">\u041f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f<\/a> <\/li>\n<li><a href=\"#thirteen\">\u041d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435<\/a> <\/li>\n<li><a href=\"#fourteen\">\u041b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u043e\u0441\u0442\u044c<\/a> <\/li>\n<li><a href=\"#fifteen\">\u0410\u043d\u0433\u043b\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0435 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<\/a> <\/li>\n<li><a href=\"#sixteen\">\u0412\u0435\u043d\u0434\u043e\u0440\u043d\u044b\u0435 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u044b<\/a> <\/li>\n<li><a href=\"#seventeen\">\u0410\u043d\u0438\u043c\u0430\u0446\u0438\u044f<\/a> <\/li>\n<li><a href=\"#eighteen\">\u0415\u0434\u0438\u043d\u0438\u0446\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f<\/a> <\/li>\n<li><a href=\"#nineteen\">\u0426\u0432\u0435\u0442\u043e\u0432\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c<\/a> <\/li>\n<li><a href=\"#twenty\">\u041e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0430<\/a> <\/li>\n<li><a href=\"#twenty-one\">\u0425\u0430\u043a\u0438<\/a> <\/li>\n<\/ol>\n<h4><b>JavaScript<\/b><\/h4>\n<p>  <\/p>\n<ol>\n<li><a href=\"#twenty-two\">\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/a> <\/li>\n<li><a href=\"#twenty-three\">\u041d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u043e\u0442 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f<\/a> <\/li>\n<li><a href=\"#twenty-four\">\u041d\u0430\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c<\/a> <\/li>\n<li><a href=\"#twenty-five\">\u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435<\/a> <\/li>\n<li><a href=\"#twenty-six\">\u0426\u0438\u043a\u043b\u044b<\/a> <\/li>\n<li><a href=\"#twenty-seven\">\u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b<\/a> <\/li>\n<li><a href=\"#twenty-eight\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 apply<\/a> <\/li>\n<li><a href=\"#twenty-nine\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 bind<\/a> <\/li>\n<li><a href=\"#thirty\">\u041c\u0435\u0442\u043e\u0434\u044b \u0432\u044b\u0441\u0448\u0435\u0433\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430<\/a> <\/li>\n<li><a href=\"#thirty-one\">\u041a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438<\/a> <\/li>\n<li><a href=\"#thirty-two\">\u041a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/a> <\/li>\n<li><a href=\"#thirty-three\">\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435<\/a> <\/li>\n<li><a href=\"#thirty-four\">\u0423\u0441\u043b\u043e\u0432\u0438\u044f<\/a> <\/li>\n<li><a href=\"#thirty-five\">\u0418\u0442\u0435\u0440\u0430\u0442\u043e\u0440<\/a> <\/li>\n<li><a href=\"#thirty-six\">\u041e\u0431\u044a\u0435\u043a\u0442 \u043a\u0430\u043a \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432<\/a> <\/li>\n<li><a href=\"#thirty-seven\">\u041a\u0430\u0440\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/a> <\/li>\n<li><a href=\"#thirty-eight\">\u0427\u0438\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/a> <\/li>\n<li><a href=\"#thirty-nine\">\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430<\/a> <\/li>\n<li><a href=\"#forty\">\u0417\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438<\/a> <\/li>\n<\/ol>\n<h3><b>HTML<\/b><\/h3>\n<p>  <\/p>\n<h4><a name=\"one\"><\/a><b>\u0421\u0435\u043c\u0430\u043d\u0442\u0438\u043a\u0430<\/b><\/h4>\n<p>  HTML5 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0430\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043d\u0430 \u0442\u043e\u0447\u043d\u043e\u0435 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0438\u043b\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u0432\u0441\u0435 \u0445\u043e\u0440\u043e\u0448\u043e \u0441 \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u0439.<\/p>\n<pre><code class=\"html\">&lt;!-- \u043f\u043b\u043e\u0445\u043e --&gt; &lt;div id=&quot;main&quot;&gt;   &lt;div class=&quot;article&quot;&gt;     &lt;div class=&quot;header&quot;&gt;       &lt;h1&gt;Blog post&lt;\/h1&gt;       &lt;p&gt;Published: &lt;span&gt;21st Feb, 2015&lt;\/span&gt;&lt;\/p&gt;     &lt;\/div&gt;     &lt;p&gt;\u2026&lt;\/p&gt;   &lt;\/div&gt; &lt;\/div&gt;  &lt;!-- \u0445\u043e\u0440\u043e\u0448\u043e --&gt; &lt;main&gt;   &lt;article&gt;     &lt;header&gt;       &lt;h1&gt;Blog post&lt;\/h1&gt;       &lt;p&gt;Published: &lt;time datetime=&quot;2015-02-21&quot;&gt;21st Feb, 2015&lt;\/time&gt;&lt;\/p&gt;     &lt;\/header&gt;     &lt;p&gt;\u2026&lt;\/p&gt;   &lt;\/article&gt; &lt;\/main&gt; <\/code><\/pre>\n<p>  \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0432\u044b \u043f\u043e\u043d\u044f\u043b\u0438 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u043a\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0432 \u0441\u0432\u043e\u0435\u043c \u043a\u043e\u0434\u0435. \u041e\u0447\u0435\u043d\u044c \u043f\u043b\u043e\u0445\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043d\u0435 \u043f\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0438\u043b\u0438 \u043d\u0435 \u0432 \u0442\u043e\u043c \u043c\u0435\u0441\u0442\u0435, \u0435\u0436\u0435\u043b\u0438 \u0431\u044b \u0432\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0441\u0442\u0430\u0432\u0430\u043b\u0438\u0441\u044c \u043d\u0435\u0439\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043a \u044d\u0442\u0438\u043c \u044d\u0442\u0438\u043c \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c.<\/p>\n<pre><code class=\"html\">&lt;!-- \u043f\u043b\u043e\u0445\u043e --&gt; &lt;h1&gt;   &lt;figure&gt;     &lt;img alt=Company src=logo.png&gt;   &lt;\/figure&gt; &lt;\/h1&gt;  &lt;!-- \u0445\u043e\u0440\u043e\u0448\u043e --&gt; &lt;h1&gt;   &lt;img alt=Company src=logo.png&gt; &lt;\/h1&gt; <\/code><\/pre>\n<h4><a name=\"two\"><\/a><b>\u041b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u043e\u0441\u0442\u044c<\/b><\/h4>\n<p>  \u0421\u0442\u0430\u0440\u0430\u0439\u0442\u0435\u0441\u044c \u043a\u0440\u0430\u0442\u043a\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434. \u0417\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u043e \u0441\u0432\u043e\u0438\u0445 \u0441\u0442\u0430\u0440\u044b\u0445 \u043f\u0440\u0438\u0432\u044b\u0447\u043a\u0430\u0445, \u043f\u0435\u0440\u0435\u0442\u0435\u043a\u0430\u044e\u0449\u0438\u0445 \u0438\u0437 XHTML.<\/p>\n<pre><code class=\"html\">&lt;!-- \u043f\u043b\u043e\u0445\u043e --&gt; &lt;!doctype html&gt; &lt;html lang=en&gt;   &lt;head&gt;     &lt;meta http-equiv=Content-Type content=&quot;text\/html; charset=utf-8&quot; \/&gt;     &lt;title&gt;Contact&lt;\/title&gt;     &lt;link rel=stylesheet href=style.css type=text\/css \/&gt;   &lt;\/head&gt;   &lt;body&gt;     &lt;h1&gt;Contact me&lt;\/h1&gt;     &lt;label&gt;       Email address:       &lt;input type=email placeholder=you@email.com required=required \/&gt;     &lt;\/label&gt;     &lt;script src=main.js type=text\/javascript&gt;&lt;\/script&gt;   &lt;\/body&gt; &lt;\/html&gt;  &lt;!-- \u0445\u043e\u0440\u043e\u0448\u043e --&gt; &lt;!doctype html&gt; &lt;html lang=en&gt;   &lt;meta charset=utf-8&gt;   &lt;title&gt;Contact&lt;\/title&gt;   &lt;link rel=stylesheet href=style.css&gt;    &lt;h1&gt;Contact me&lt;\/h1&gt;   &lt;label&gt;     Email address:     &lt;input type=email placeholder=you@email.com required&gt;   &lt;\/label&gt;   &lt;script src=main.js&gt;&lt;\/script&gt; &lt;\/html&gt; <\/code><\/pre>\n<h4><a name=\"three\"><\/a><b>\u0427\u0438\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/b><\/h4>\n<p>  \u0427\u0438\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0432\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u0434\u0430 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u0438\u043c\u0435\u0442\u044c \u0432\u0442\u043e\u0440\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u044b\u0439 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0432\u044b \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u043d\u044b \u0431\u044b\u0442\u044c \u044d\u043a\u0441\u043f\u0435\u0440\u0442\u043e\u043c \u043f\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 (WCAG) \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u0441\u0430\u0439\u0442, \u043e\u0434\u043d\u0430\u043a\u043e, \u0443\u0436\u0435 \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0447\u0430\u0442\u044c \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043c\u0435\u043b\u043e\u0447\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0430\u0448 \u043a\u043e\u0434 \u043b\u0443\u0447\u0448\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<p>   \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u0442\u0440\u0438\u0431\u0443\u0442 <i>alt<\/i> \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e<br \/>   \u2014 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0439\u0442\u0435 \u0438\u043c\u0435\u043d\u0430 (links) \u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b (buttons) \u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u0439\u0442\u0435 \u0438\u0445 \u043f\u043e \u0441\u043c\u044b\u0441\u043b\u0443 (<i>&lt;div class=button&gt;<\/i> \u2014 \u044d\u0442\u043e \u0437\u0432\u0435\u0440\u0441\u0442\u0432\u043e)<br \/>   \u2014 \u043d\u0435 \u043f\u043e\u043b\u0430\u0433\u0430\u0439\u0442\u0435\u0441\u044c \u043d\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0446\u0432\u0435\u0442\u043e\u0432, \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438<br \/>   \u2014 \u044f\u0432\u043d\u043e \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0439\u0442\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u043c\u0435\u0442\u043a\u043e\u0439 \u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0444\u043e\u0440\u043c\u044b<\/p>\n<pre><code class=\"html\">&lt;!-- \u043f\u043b\u043e\u0445\u043e --&gt; &lt;h1&gt;&lt;img alt=&quot;Logo&quot; src=&quot;logo.png&quot;&gt;&lt;\/h1&gt;  &lt;!-- \u0445\u043e\u0440\u043e\u0448\u043e --&gt; &lt;h1&gt;&lt;img alt=&quot;My Company, Inc.&quot; src=&quot;logo.png&quot;&gt;&lt;\/h1&gt; <\/code><\/pre>\n<h4><a name=\"four\"><\/a><b>\u042f\u0437\u044b\u043a \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430<\/b><\/h4>\n<p>  \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u044f\u0437\u044b\u043a\u0430 \u0438 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c, \u043e\u0434\u043d\u0430\u043a\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u0433\u0434\u0430 \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0442\u044c \u0438\u0445 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u0445 HTTP. \u041f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u043e\u0439 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u043e\u0439 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f UTF-8.<\/p>\n<pre><code class=\"html\">&lt;!-- \u043f\u043b\u043e\u0445\u043e --&gt; &lt;!doctype html&gt; &lt;title&gt;Hello, world.&lt;\/title&gt;  &lt;!-- \u0445\u043e\u0440\u043e\u0448\u043e --&gt; &lt;!doctype html&gt; &lt;html lang=ru&gt;   &lt;meta charset=utf-8&gt;   &lt;title&gt;Hello, world.&lt;\/title&gt; &lt;\/html&gt; <\/code><\/pre>\n<h4><a name=\"five\"><\/a><b>\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c<\/b><\/h4>\n<p>  \u0415\u0441\u043b\u0438 \u043d\u0435\u0442 \u0443\u0432\u0430\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u0447\u0438\u043d \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0434\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430, \u0441\u0442\u0430\u0440\u0430\u0439\u0442\u0435\u0441\u044c \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0432 \u043a\u043e\u043d\u0446\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0432\u0430\u0448\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043e\u0447\u0435\u043d\u044c \u0442\u044f\u0436\u0435\u043b\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441\u0442\u0438\u043b\u0435\u0439, \u0441\u0442\u0430\u0440\u0430\u0439\u0442\u0435\u0441\u044c \u0440\u0430\u0437\u0431\u0438\u0442\u044c \u0438\u0445 \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u043f\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0442\u0430\u043a \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u0431\u044b\u043b \u0441\u0440\u0430\u0437\u0443 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u0430\u043d. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0444\u0430\u0439\u043b\u043e\u0432, \u0442\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 HTTP \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u0434\u0432\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435, \u0447\u0435\u043c \u043e\u0434\u0438\u043d, \u043d\u043e \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0432\u0430\u0436\u043d\u044b\u043c \u0444\u0430\u043a\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430. <\/p>\n<pre><code class=\"html\">&lt;!-- \u043f\u043b\u043e\u0445\u043e --&gt; &lt;!doctype html&gt; &lt;meta charset=utf-8&gt; &lt;script src=analytics.js&gt;&lt;\/script&gt; &lt;title&gt;Hello, world.&lt;\/title&gt; &lt;p&gt;...&lt;\/p&gt;  &lt;!-- \u0445\u043e\u0440\u043e\u0448\u043e --&gt; &lt;!doctype html&gt; &lt;meta charset=utf-8&gt; &lt;title&gt;Hello, world.&lt;\/title&gt; &lt;p&gt;...&lt;\/p&gt; &lt;script src=analytics.js&gt;&lt;\/script&gt; <\/code><\/pre>\n<h3><b>CSS<\/b><\/h3>\n<p>  <\/p>\n<h4><a name=\"six\"><\/a><b>\u0422\u043e\u0447\u043a\u0430 \u0441 \u0437\u0430\u043f\u044f\u0442\u043e\u0439<\/b><\/h4>\n<p>  \u0412 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u043a \u0442\u043e\u0447\u043a\u0430 \u0441 \u0437\u0430\u043f\u044f\u0442\u043e\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0438\u0441\u0442\u043e \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u0435\u043c \u043f\u0440\u0430\u0432\u0438\u043b, CSS \u0432\u0441\u0435\u0433\u0434\u0430 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u0442\u043e\u0447\u043a\u0435 \u0437\u0430\u043f\u044f\u0442\u043e\u0439, \u043a\u0430\u043a \u043a \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0443 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f.<\/p>\n<pre><code class=\"css\">\/* \u043f\u043b\u043e\u0445\u043e *\/ div {   color: red }  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ div {   color: red; } <\/code><\/pre>\n<h4><a name=\"seven\"><\/a><b>Box model<\/b><\/h4>\n<p>  \u0411\u043b\u043e\u0447\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c, \u0432 \u0438\u0434\u0435\u0430\u043b\u0435, \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0439 \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430. \u0413\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e <i>* { box-sizing: border-box; }<\/i> \u044d\u0442\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e, \u043e\u0434\u043d\u0430\u043a\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u0432\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0431\u043b\u043e\u0447\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0443 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<pre><code class=\"css\">\/* \u043f\u043b\u043e\u0445\u043e *\/ div {   width: 100%;   padding: 10px;   box-sizing: border-box; }  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ div {   padding: 10px; } <\/code><\/pre>\n<h4><a name=\"eight\"><\/a><b>\u041f\u043e\u0442\u043e\u043a\u0438<\/b><\/h4>\n<p>  \u041d\u0435 \u043c\u0435\u043d\u044f\u0439\u0442\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430, \u0435\u0441\u043b\u0438 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 \u044d\u0442\u043e\u0433\u043e. \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0439\u0442\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432 \u0438\u0445 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u0432 \u043f\u043e\u0442\u043e\u043a\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432 \u043f\u043e\u0434 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c, \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0432\u043b\u0438\u044f\u0442\u044c \u043d\u0430 \u0435\u0433\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435.<\/p>\n<pre><code class=\"css\">\/* \u043f\u043b\u043e\u0445\u043e *\/ img {   display: block; }  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ img {   vertical-align: middle; } <\/code><\/pre>\n<p>  \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e, \u043d\u0435 \u0432\u044b\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u0439\u0442\u0435 \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u0435\u0441\u043b\u0438 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 \u044d\u0442\u043e\u0433\u043e.<\/p>\n<pre><code class=\"css\">\/* \u043f\u043b\u043e\u0445\u043e *\/ div {   width: 100px;   position: absolute;   right: 0; }   \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ div {   width: 100px;   margin-left: auto; } <\/code><\/pre>\n<h4><a name=\"night\"><\/a><b>\u041f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/b><\/h4>\n<p>  \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 CSS, \u043e\u0434\u043d\u0430\u043a\u043e \u0441\u0442\u0430\u0440\u0430\u0439\u0442\u0435\u0441\u044c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u0441\u0435\u0431\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u043d\u0438\u0436\u0435. \u0412 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"css\">display: block; display: flex; position: relative; position: sticky; position: absolute; position: fixed; <\/code><\/pre>\n<h4><a name=\"ten\"><\/a><b>\u0421\u0435\u043b\u0435\u043a\u0442\u043e\u0440\u044b<\/b><\/h4>\n<p>  \u041c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0439\u0442\u0435 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u044f \u0441\u0435\u043b\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 DOM. \u0418\u043d\u043e\u0433\u0434\u0430, \u043b\u0443\u0447\u0448\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043b\u0438\u0448\u043d\u0438\u0439 \u043a\u043b\u0430\u0441\u0441 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043d\u0430\u0439\u0442\u0438, \u0447\u0435\u043c \u0438\u0441\u043a\u0430\u0442\u044c \u0435\u0433\u043e \u0447\u0435\u0440\u0435\u0437 \u0442\u0440\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0445 \u0441\u0435\u043b\u0435\u043a\u0442\u043e\u0440\u0430: \u043f\u0441\u0435\u0432\u0434\u043e-\u043a\u043b\u0430\u0441\u0441, \u043f\u043e\u0442\u043e\u043c\u043e\u043a, \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0442\u043e\u0440.<\/p>\n<pre><code class=\"css\">\/* \u043f\u043b\u043e\u0445\u043e *\/ div:first-of-type :last-child &gt; p ~ *  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ div:first-of-type .info <\/code><\/pre>\n<p>  \u0418\u0437\u0431\u0435\u0433\u0430\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0443 \u0441\u0435\u043b\u0435\u043a\u0442\u043e\u0440\u043e\u0432.<\/p>\n<pre><code class=\"css\">\/* \u043f\u043b\u043e\u0445\u043e *\/ img[src$=svg], ul &gt; li:first-child {   opacity: 0; }  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ [src$=svg], ul &gt; :first-child {   opacity: 0; } <\/code><\/pre>\n<h4><a name=\"eleven\"><\/a><b>\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u043e\u0441\u0442\u044c<\/b><\/h4>\n<p>  \u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438 \u0441\u0435\u043b\u0435\u043a\u0442\u043e\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043b\u044c\u0437\u044f \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c. \u041c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0439\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <i>id<\/i> (\u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432) \u0438 \u0438\u0437\u0431\u0435\u0433\u0430\u0439\u0442\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e <i>!important<\/i><\/p>\n<pre><code class=\"css\">\/* \u043f\u043b\u043e\u0445\u043e *\/ .bar {   color: green !important; } .foo {   color: red; }  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ .foo.bar {   color: green; } .foo {   color: red; } <\/code><\/pre>\n<h4><a name=\"twelve\"><\/a><b>\u041f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f<\/b><\/h4>\n<p>  \u041f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0438\u043b\u0435\u0439 \u0441\u0435\u043b\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u044f\u0435\u0442 \u043e\u0442\u043b\u0430\u0434\u043a\u0443. \u0418\u0437\u0431\u0435\u0433\u0430\u0439\u0442\u0435 \u044d\u0442\u043e\u0433\u043e, \u0435\u0441\u043b\u0438 \u043c\u043e\u0436\u0435\u0442\u0435.<\/p>\n<pre><code class=\"css\">\/* \u043f\u043b\u043e\u0445\u043e *\/ li {   visibility: hidden; } li:first-child {   visibility: visible; }  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ li + li {   visibility: hidden; } <\/code><\/pre>\n<h4><a name=\"thriteen\"><\/a><b>\u041d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435<\/b><\/h4>\n<p>  \u041d\u0435 \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u0439\u0442\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u0435\u043b\u0435\u043a\u0442\u043e\u0440\u043e\u0432, \u0441\u0442\u0438\u043b\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438 \u0442\u0430\u043a \u043c\u043e\u0433\u0443\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u043d\u0430\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0443.<\/p>\n<pre><code class=\"css\">\/* \u043f\u043b\u043e\u0445\u043e *\/ div h1, div p {   text-shadow: 0 1px 0 #fff; }  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ div {   text-shadow: 0 1px 0 #fff; } <\/code><\/pre>\n<h4><a name=\"fourteen\"><\/a><b>\u041b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u043e\u0441\u0442\u044c<\/b><\/h4>\n<p>  \u041f\u0443\u0441\u0442\u044c \u0432\u0430\u0448 \u043a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e\u0441\u043b\u043e\u0432\u043d\u044b\u043c. \u0421\u0442\u0430\u0440\u0430\u0439\u0442\u0435\u0441\u044c \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0432 \u0442\u043e\u043c \u043c\u0435\u0441\u0442\u0435, \u0433\u0434\u0435 \u044d\u0442\u043e \u0432\u043e\u0432\u0441\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e.<\/p>\n<pre><code class=\"css\">\/* \u043f\u043b\u043e\u0445\u043e *\/ div {   transition: all 1s;   top: 50%;   margin-top: -10px;   padding-top: 5px;   padding-right: 10px;   padding-bottom: 20px;   padding-left: 10px; }  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ div {   transition: 1s;   top: calc(50% - 10px);   padding: 5px 10px 20px; } <\/code><\/pre>\n<h4><a name=\"fifteen\"><\/a><b>\u0410\u043d\u0433\u043b\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0435 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<\/b><\/h4>\n<p>  \u041f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0443\u044e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0443.<\/p>\n<pre><code class=\"css\">\/* \u043f\u043b\u043e\u0445\u043e *\/ :nth-child(2n + 1) {   transform: rotate(360deg); }  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ :nth-child(odd) {   transform: rotate(1turn); } <\/code><\/pre>\n<h4><a name=\"sixteen\"><\/a><b>\u0412\u0435\u043d\u0434\u043e\u0440\u043d\u044b\u0435 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u044b<\/b><\/h4>\n<p>  \u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u044b. \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0445, \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u0438\u0445 \u043f\u0435\u0440\u0435\u0434 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c\u0438.<\/p>\n<pre><code class=\"css\">\/* \u043f\u043b\u043e\u0445\u043e *\/ div {   transform: scale(2);   -webkit-transform: scale(2);   -moz-transform: scale(2);   -ms-transform: scale(2);   transition: 1s;   -webkit-transition: 1s;   -moz-transition: 1s;   -ms-transition: 1s; }  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ div {   -webkit-transform: scale(2);   transform: scale(2);   transition: 1s; } <\/code><\/pre>\n<h4><a name=\"seventeen\"><\/a><b>\u0410\u043d\u0438\u043c\u0430\u0446\u0438\u044f<\/b><\/h4>\n<p>  \u0418\u043d\u043e\u0433\u0434\u0430 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b (transitions), \u0435\u0436\u0435\u043b\u0438 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044e (animations). \u0418\u0437\u0431\u0435\u0433\u0430\u0439\u0442\u0435 \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0432 \u043f\u043e\u043b\u044c\u0437\u0443 <i>opacity<\/i> \u0438 <i>transform<\/i>. <\/p>\n<pre><code class=\"css\">\/* \u043f\u043b\u043e\u0445\u043e *\/ div:hover {   animation: move 1s forwards; } @keyframes move {   100% {     margin-left: 100px;   } }  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ div:hover {   transition: 1s;   transform: translateX(100px); } <\/code><\/pre>\n<h4><a name=\"eighteen\"><\/a><b>\u0415\u0434\u0438\u043d\u0438\u0446\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f<\/b><\/h4>\n<p>  \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0431\u0435\u0437\u0440\u0430\u0437\u043c\u0435\u0440\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u0421\u0442\u0430\u0440\u0430\u0439\u0442\u0435\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <i>rem<\/i>, \u0435\u0441\u043b\u0438 \u0432\u044b \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0435 \u0432\u0441\u0435 \u0432 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0435\u0434\u0438\u043d\u0438\u0446\u0430\u0445. \u041f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u043a\u0443\u043d\u0434\u044b, \u0435\u0436\u0435\u043b\u0438 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u044b.<\/p>\n<pre><code class=\"css\">\/* \u043f\u043b\u043e\u0445\u043e *\/ div {   margin: 0px;   font-size: .9em;   line-height: 22px;   transition: 500ms; }  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ div {   margin: 0;   font-size: .9rem;   line-height: 1.5;   transition: .5s; } <\/code><\/pre>\n<h4><a name=\"nineteen\"><\/a><b>\u0426\u0432\u0435\u0442\u043e\u0432\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c<\/b><\/h4>\n<p>  \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u0430 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <i>rgba<\/i>. \u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442.<\/p>\n<pre><code class=\"css\">\/* \u043f\u043b\u043e\u0445\u043e *\/ div {   color: hsl(103, 54%, 43%); }  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ div {   color: #5a3; } <\/code><\/pre>\n<h4><a name=\"twenty\"><\/a><b>\u041e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0430<\/b><\/h4>\n<p>  \u0418\u0437\u0431\u0435\u0433\u0430\u0439\u0442\u0435 http-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u0435\u0441\u043b\u0438 \u0440\u0435\u0441\u0443\u0440\u0441 \u043b\u0435\u0433\u043a\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e CSS.<\/p>\n<pre><code class=\"css\">\/* \u043f\u043b\u043e\u0445\u043e *\/ div::before {   content: url(white-circle.svg); }  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ div::before {   content: &quot;&quot;;   display: block;   width: 20px;   height: 20px;   border-radius: 50%;   background: #fff; } <\/code><\/pre>\n<h4><a name=\"twenty-one\"><\/a><b>\u0425\u0430\u043a\u0438<\/b><\/h4>\n<p>  \u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0438\u0445.<\/p>\n<pre><code class=\"css\">\/* \u043f\u043b\u043e\u0445\u043e *\/ div {   \/\/ position: relative;   transform: translateZ(0); }  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ div {   \/* position: relative; *\/   will-change: transform; } <\/code><\/pre>\n<h3><b>JavaScript<\/b><\/h3>\n<p>  <\/p>\n<h4><a name=\"twenty-two\"><\/a><b>\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/b><\/h4>\n<p>  \u041b\u0435\u0433\u043a\u043e\u0447\u0438\u0442\u0430\u0435\u043c\u044b\u0439, \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434 \u0432\u0430\u0436\u043d\u0435\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, JavaScript \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u0430\u0448\u0438\u043c \u0443\u0437\u043a\u0438\u043c \u043c\u0435\u0441\u0442\u043e\u043c \u0432 \u0440\u0430\u0441\u0447\u0435\u0442\u0435 \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u041b\u0443\u0447\u0448\u0435 \u0443\u0434\u0435\u043b\u044f\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0442\u0430\u043a\u0438\u043c \u0432\u0435\u0449\u0430\u043c, \u043a\u0430\u043a \u0441\u0436\u0430\u0442\u0438\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f http-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0441\u0435\u0442\u0438, \u043f\u0435\u0440\u0435\u0440\u0430\u0441\u0447\u0435\u0442 DOM-\u0434\u0435\u0440\u0435\u0432\u0430. \u0415\u0441\u043b\u0438 \u0432\u044b \u0437\u0430\u043f\u043e\u043c\u043d\u0438\u0442\u0435 \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u043d\u0443 \u0438\u0437 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u043e\u043f\u0438\u0440\u0430\u0439\u0442\u0435\u0441\u044c \u043d\u0430 \u043d\u0435\u0435.<\/p>\n<pre><code class=\"javascript\">\/* \u043f\u043b\u043e\u0445\u043e (\u0445\u043e\u0442\u044f \u0438 \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435) *\/ const arr = [1, 2, 3, 4]; const len = arr.length; var i = -1; var result = []; while (++i &lt; len) {   var n = arr[i];   if (n % 2 &gt; 0) continue;   result.push(n * n);  }  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ const arr = [1, 2, 3, 4]; const isEven = n =&gt; n % 2 == 0; \/\/ \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u043e\u0439 \u0441\u0442\u0440\u0435\u043b\u043e\u0447\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 const square = n =&gt; n * n; \/\/ \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441: (param1, param2, \u2026, paramN) =&gt; expression  const result = arr.filter(isEven).map(square);  <\/code><\/pre>\n<p>  <b>\u041a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e<\/b>:<br \/>  1. Babeljs (\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 ES5): <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20arr%20%3D%20%5B1%2C%202%2C%203%2C%204%5D%3B%0Aconst%20len%20%3D%20arr.length%3B%0Avar%20i%20%3D%20-1%3B%0Avar%20result%20%3D%20%5B%5D%3B%0Awhile%20(%2B%2Bi%20%3C%20len)%20%7B%0A%20%20var%20n%20%3D%20arr%5Bi%5D%3B%0A%20%20if%20(n%20%25%202%20%3E%200)%20continue%3B%0A%20%20result.push(n%20*%20n)%3B%20%0A%7D%0A%0A%2F%2F%20result%20%3D%20%5B4%2C%2016%5D%3B%0A\">\u043f\u043b\u043e\u0445\u043e<\/a> vs <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20arr%20%3D%20%5B1%2C%202%2C%203%2C%204%5D%3B%0Aconst%20isEven%20%3D%20b%20%3D%3E%20(n%20%25%202%20%3D%3D%200)%3B%0Aconst%20square%20%3D%20b%20%3D%3E%20n%20*%20n%3B%0A%0Aconst%20result%20%3D%20arr.filter(isEven).map(square)%3B\">\u0445\u043e\u0440\u043e\u0448\u043e<\/a><br \/>  2. <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Guide\/Functions#C\u0442\u0440\u0435\u043b\u043e\u0447\u043d\u044b\u0435_\u0444\u0443\u043d\u043a\u0446\u0438\u0438\">\u0421\u0442\u0440\u0435\u043b\u043e\u0447\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/a> \u0438 <a href=\"https:\/\/learn.javascript.ru\/array-iteration\">\u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u044e\u0449\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432<\/a><\/p>\n<h4><a name=\"twenty-three\"><\/a><b>\u041d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u043e\u0442 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f<\/b><\/h4>\n<p>  \u0421\u0442\u0430\u0440\u0430\u0439\u0442\u0435\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u0412\u0441\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u043c\u0435\u0442\u043e\u0434\u044b \u0432 \u0438\u0434\u0435\u0430\u043b\u0435 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u043d\u0435\u0441\u0442\u0438 \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u0431\u043e\u0447\u043d\u043e\u0433\u043e \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0430, \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c \u043e\u0442 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0438 \u0432 \u0438\u0442\u043e\u0433\u0435, \u043e\u043d\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u0430 \u043d\u0435 \u0432\u043d\u043e\u0441\u0438\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435.<\/p>\n<pre><code class=\"javascript\">\/* \u043f\u043b\u043e\u0445\u043e *\/ const merge = (target, ...sources) =&gt; Object.assign(target, ...sources); merge({ foo: &quot;foo&quot; }, { bar: &quot;bar&quot; }); \/\/ =&gt; { foo: &quot;foo&quot;, bar: &quot;bar&quot; }  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ const merge = (...sources) =&gt; Object.assign({}, ...sources); merge({ foo: &quot;foo&quot; }, { bar: &quot;bar&quot; }); \/\/ =&gt; { foo: &quot;foo&quot;, bar: &quot;bar&quot; }  <\/code><\/pre>\n<p>  <b>\u041a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e<\/b>:<br \/>  1. Babeljs (\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 ES5): <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20merge%20%3D%20(target%2C%20...sources)%20%3D%3E%20Object.assign(target%2C%20...sources)%3B%0Amerge(%7B%20foo%3A%20%22foo%22%20%7D%2C%20%7B%20bar%3A%20%22bar%22%20%7D)%3B\">\u043f\u043b\u043e\u0445\u043e<\/a> vs <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20merge%20%3D%20(...sources)%20%3D%3E%20Object.assign(%7B%7D%2C%20...sources)%3B%0Amerge(%7B%20foo%3A%20%22foo%22%20%7D%2C%20%7B%20bar%3A%20%22bar%22%20%7D)%3B\">\u0445\u043e\u0440\u043e\u0448\u043e<\/a><br \/>  2. <a href=\"http:\/\/frontender.info\/es6-in-depth-rest-parameters-and-defaults\/#ostatochneparametr\">\u041e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b<\/a><\/p>\n<h4><a name=\"twenty-four\"><\/a><b>\u041d\u0430\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c<\/b><\/h4>\n<p>  \u041f\u043e\u043b\u0430\u0433\u0430\u0439\u0442\u0435\u0441\u044c \u043d\u0430 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435.<\/p>\n<pre><code class=\"javascript\">\/* \u043f\u043b\u043e\u0445\u043e *\/ const toArray = obj =&gt; [].slice.call(obj);  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ const toArray = (() =&gt;   Array.from ? Array.from : obj =&gt; [].slice.call(obj) )(); <\/code><\/pre>\n<p>  <b>\u041a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e<\/b>:<br \/>  1. Babeljs (\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 ES5): <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20toArray%20%3D%20obj%20%3D%3E%20%5B%5D.slice.call(obj)%3B\">\u043f\u043b\u043e\u0445\u043e<\/a> vs <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20toArray%20%3D%20(()%20%3D%3E%0A%20%20Array.from%20%3F%20Array.from%20%3A%20obj%20%3D%3E%20%5B%5D.slice.call(obj)%0A)()%3B\">\u0445\u043e\u0440\u043e\u0448\u043e<\/a><br \/>  2. <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Array\/slice#Array-like\">\u041c\u0430\u0441\u0441\u0438\u0432\u043e\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b<\/a><\/p>\n<h4><a name=\"twenty-five\"><\/a><b>\u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435<\/b><\/h4>\n<p>  \u041b\u0438\u0448\u043d\u0438\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u0441\u043c\u044b\u0441\u043b, \u0438\u0437\u0431\u0435\u0433\u0430\u0439\u0442\u0435 \u0438\u0445.<\/p>\n<pre><code class=\"javascript\">\/* \u043f\u043b\u043e\u0445\u043e *\/ if (x === undefined || x === null) { \/* ... *\/  }  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ if (x == undefined) { \/* ... *\/  } <\/code><\/pre>\n<p>  <b>\u041a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e<\/b>:<br \/>  1. <a href=\"https:\/\/learn.javascript.ru\/comparison#\u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435-\u0441-null-\u0438-undefined\">\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441 null \u0438 undefined<\/a><\/p>\n<h4><a name=\"twenty-six\"><\/a><b>\u0426\u0438\u043a\u043b\u044b<\/b><\/h4>\n<p>  \u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0446\u0438\u043a\u043b\u044b, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d\u0438 \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0432\u0430\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b. \u041f\u043e\u043b\u0430\u0433\u0430\u0439\u0442\u0435\u0441\u044c \u043d\u0430 \u043c\u0435\u0442\u043e\u0434\u044b <i>Array.prototype<\/i>.<\/p>\n<pre><code class=\"javascript\">\/* \u043f\u043b\u043e\u0445\u043e *\/ const sum = arr =&gt; {   var sum = 0;   var i = -1;   for (;arr[++i];) {     sum += arr[i];   }   return sum; };  sum([1, 2, 3]); \/\/ =&gt; 6  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ const sum = arr =&gt; arr.reduce((x, y) =&gt; x + y);  sum([1, 2, 3]); \/\/ =&gt; 6 <\/code><\/pre>\n<p>  <b>\u041a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e<\/b>:<br \/>  1. Babeljs (\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 ES5): <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20sum%20%3D%20arr%20%3D%3E%20%7B%0A%20%20var%20sum%20%3D%200%3B%0A%20%20var%20i%20%3D%20-1%3B%0A%20%20for%20(%3Barr%5B%2B%2Bi%5D%3B)%20%7B%0A%20%20%20%20sum%20%2B%3D%20arr%5Bi%5D%3B%0A%20%20%7D%0A%20%20return%20sum%3B%0A%7D%3B%0A%0Asum(%5B1%2C%202%2C%203%5D)%3B%20%2F%2F%20%3D%3E%206\">\u043f\u043b\u043e\u0445\u043e<\/a> vs <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20sum%20%3D%20arr%20%3D%3E%20arr.reduce((x%2C%20y)%20%3D%3E%20x%20%2B%20y)%3B%0A%0Asum(%5B1%2C%202%2C%203%5D)%3B%20%2F%2F%20%3D%3E%206\">\u0445\u043e\u0440\u043e\u0448\u043e<\/a><br \/>  2. <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Array\/Reduce#Example:_Sum_up_all_values_within_an_array\">\u0421\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435<\/a><\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u044b <i>Array.prototype<\/i>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u044e.<\/p>\n<pre><code class=\"javascript\">\/* \u043f\u043b\u043e\u0445\u043e *\/ const createDivs = howMany =&gt; {   while (howMany--) {     document.body.insertAdjacentHTML(&quot;beforeend&quot;, &quot;&lt;div&gt;&lt;\/div&gt;&quot;);   } };  createDivs(5);  \/* \u043f\u043b\u043e\u0445\u043e *\/ const createDivs = howMany =&gt;   [...Array(howMany)].forEach(() =&gt;     document.body.insertAdjacentHTML(&quot;beforeend&quot;, &quot;&lt;div&gt;&lt;\/div&gt;&quot;)   );  createDivs(5);   \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ const createDivs = howMany =&gt; {   if (!howMany) return;   document.body.insertAdjacentHTML(&quot;beforeend&quot;, &quot;&lt;div&gt;&lt;\/div&gt;&quot;);   return createDivs(howMany - 1); };  createDivs(5); <\/code><\/pre>\n<p>  \u0412\u043e\u0442 \u043e\u0431\u0449\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <a href=\"https:\/\/gist.github.com\/bendc\/6cb2db4a44ec30208e86\">Loop<\/a>, \u0434\u0435\u043b\u0430\u044e\u0449\u0430\u044f \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u044e \u043f\u0440\u043e\u0449\u0435 \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438.<\/p>\n<p>  <b>\u041a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e<\/b>:<br \/>  1. Babeljs (\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 ES5): <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=%2F*%20%D0%BF%D0%BB%D0%BE%D1%85%D0%BE%20*%2F%0Aconst%20createDivs%20%3D%20howMany%20%3D%3E%20%7B%0A%20%20while%20(howMany--)%20%7B%0A%20%20%20%20document.body.insertAdjacentHTML(%22beforeend%22%2C%20%22%3Cdiv%3E%3C%2Fdiv%3E%22)%3B%0A%20%20%7D%0A%7D%3B%0A%0AcreateDivs(5)%3B\">\u043f\u043b\u043e\u0445\u043e<\/a> (<a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20createDivs%20%3D%20howMany%20%3D%3E%0A%20%20%5B...Array(howMany)%5D.forEach(()%20%3D%3E%0A%20%20%20%20document.body.insertAdjacentHTML(%22beforeend%22%2C%20%22%3Cdiv%3E%3C%2Fdiv%3E%22)%0A%20%20)%3B%0A%0AcreateDivs(5)%3B\">\u0438\u043b\u0438<\/a>) vs <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20createDivs%20%3D%20howMany%20%3D%3E%20%7B%0A%20%20if%20(!howMany)%20return%3B%0A%20%20document.body.insertAdjacentHTML(%22beforeend%22%2C%20%22%3Cdiv%3E%3C%2Fdiv%3E%22)%3B%0A%20%20return%20createDivs(howMany%20-%201)%3B%0A%7D%3B%0A%0AcreateDivs(5)%3B\">\u0445\u043e\u0440\u043e\u0448\u043e<\/a><br \/>  2. <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/API\/Element\/insertAdjacentHTML\">insertAdjacentHTML() \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u0441 innerHTML()<\/a><\/p>\n<h4><a name=\"twenty-seven\"><\/a><b>\u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b<\/b><\/h4>\n<p>  \u0417\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u043e\u0431 <i>arguments<\/i> \u043a\u0430\u043a \u043e\u0431 \u043e\u0431\u044a\u0435\u043a\u0442\u0435. \u041e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u043b\u0443\u0447\u0448\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e:<br \/>  1. \u041f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u0435 \u0438\u043c\u044f \u0434\u0430\u0435\u0442 \u043b\u0443\u0447\u0448\u0435\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043d\u0430 \u0432\u0445\u043e\u0434\u0435<br \/>  2. \u041e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u2014 \u044d\u0442\u043e \u043c\u0430\u0441\u0441\u0438\u0432 \u0438 \u043e\u043d \u043b\u0435\u0433\u043e\u043a \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438<\/p>\n<pre><code class=\"javascript\">\/* \u043f\u043b\u043e\u0445\u043e *\/ const sortNumbers = () =&gt;   Array.prototype.slice.call(arguments).sort();  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ const sortNumbers = (...numbers) =&gt; numbers.sort(); <\/code><\/pre>\n<p>  <b>\u041a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e<\/b>:<br \/>  1. Babeljs (\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 ES5): <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20sortNumbers%20%3D%20()%20%3D%3E%0A%20%20Array.prototype.slice.call(arguments).sort()%3B\">\u043f\u043b\u043e\u0445\u043e<\/a> vs <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20sortNumbers%20%3D%20(...numbers)%20%3D%3E%20numbers.sort()%3B\">\u0445\u043e\u0440\u043e\u0448\u043e<\/a><br \/>  2. <a href=\"https:\/\/learn.javascript.ru\/arguments-pseudoarray#\u0434\u043e\u0441\u0442\u0443\u043f-\u043a-\u043b\u0438\u0448\u043d\u0438\u043c-\u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u043c\">\u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u043c<\/a><\/p>\n<h4><a name=\"twenty-eight\"><\/a><b>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 apply<\/b><\/h4>\n<p>  \u0417\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 apply(). \u0412\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f (\u0432\u044b\u0437\u043e\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438).<\/p>\n<pre><code class=\"javascript\">const greet = (first, last) =&gt; `Hi ${first} ${last}`; const person = [&quot;John&quot;, &quot;Doe&quot;];  \/* \u043f\u043b\u043e\u0445\u043e *\/ greet.apply(null, person);  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ greet(...person); <\/code><\/pre>\n<p>  <b>\u041a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e<\/b>:<br \/>  1. Babeljs (\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 ES5): <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20greet%20%3D%20(first%2C%20last)%20%3D%3E%20%60Hi%20%24%7Bfirst%7D%20%24%7Blast%7D%60%3B%0Aconst%20person%20%3D%20%5B%22John%22%2C%20%22Doe%22%5D%3B%0A%0A%2F%2F%20%D0%BF%D0%BB%D0%BE%D1%85%D0%BE%0Agreet.apply(null%2C%20person)%3B\">\u043f\u043b\u043e\u0445\u043e<\/a> vs <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20greet%20%3D%20(first%2C%20last)%20%3D%3E%20%60Hi%20%24%7Bfirst%7D%20%24%7Blast%7D%60%3B%0Aconst%20person%20%3D%20%5B%22John%22%2C%20%22Doe%22%5D%3B%0A%0A%2F%2F%20%D1%85%D0%BE%D1%80%D0%BE%D1%88%D0%BE%0Agreet(...person)%3B\">\u0445\u043e\u0440\u043e\u0448\u043e<\/a><br \/>  2. <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Operators\/Spread_operator\">\u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f<\/a><\/p>\n<h4><a name=\"twenty-nine\"><\/a><b>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 bind<\/b><\/h4>\n<p>  \u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 bind(), \u043a\u043e\u0433\u0434\u0430 \u0435\u0441\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0438\u0434\u0438\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044b.<\/p>\n<pre><code class=\"javascript\">\/* \u043f\u043b\u043e\u0445\u043e *\/ [&quot;foo&quot;, &quot;bar&quot;].forEach(func.bind(this));  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ [&quot;foo&quot;, &quot;bar&quot;].forEach(func, this); <\/code><\/pre>\n<pre><code class=\"javascript\">\/* \u043f\u043b\u043e\u0445\u043e *\/ const person = {   first: &quot;John&quot;,   last: &quot;Doe&quot;,   greet() {     const full = function() {       return `${this.first} ${this.last}`;     }.bind(this);     return `Hello ${full()}`;   } }  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ const person = {   first: &quot;John&quot;,   last: &quot;Doe&quot;,   greet() {     const full = () =&gt; `${this.first} ${this.last}`;     return `Hello ${full()}`;   } } <\/code><\/pre>\n<p>  <b>\u041a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e<\/b>:<br \/>  1. Babeljs (\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 ES5): <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20person%20%3D%20%7B%0A%20%20first%3A%20%22John%22%2C%0A%20%20last%3A%20%22Doe%22%2C%0A%20%20greet()%20%7B%0A%20%20%20%20const%20full%20%3D%20function()%20%7B%0A%20%20%20%20%20%20return%20%60%24%7Bthis.first%7D%20%24%7Bthis.last%7D%60%3B%0A%20%20%20%20%7D.bind(this)%3B%0A%20%20%20%20return%20%60Hello%20%24%7Bfull()%7D%60%3B%0A%20%20%7D%0A%7D\">\u043f\u043b\u043e\u0445\u043e<\/a> vs <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20person%20%3D%20%7B%0A%20%20first%3A%20%22John%22%2C%0A%20%20last%3A%20%22Doe%22%2C%0A%20%20greet()%20%7B%0A%20%20%20%20const%20full%20%3D%20()%20%3D%3E%20%60%24%7Bthis.first%7D%20%24%7Bthis.last%7D%60%3B%0A%20%20%20%20return%20%60Hello%20%24%7Bfull()%7D%60%3B%0A%20%20%7D%0A%7D\">\u0445\u043e\u0440\u043e\u0448\u043e<\/a><br \/>  2. <a href=\"https:\/\/habrahabr.ru\/post\/199456\/\">bind()<\/a>, \u0430 \u0442\u0430\u043a\u0436\u0435 <a href=\"http:\/\/alljs.ru\/articles\/array\/iterators\">\u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u044b<\/a> \u0432 JavaScript<\/p>\n<h4><a name=\"thirty\"><\/a><b>\u041c\u0435\u0442\u043e\u0434\u044b \u0432\u044b\u0441\u0448\u0435\u0433\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430<\/b><\/h4>\n<p>  \u0418\u0437\u0431\u0435\u0433\u0430\u0439\u0442\u0435 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0442\u0430\u043c \u0433\u0434\u0435 \u044d\u0442\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e. <\/p>\n<pre><code class=\"javascript\">\/* \u043f\u043b\u043e\u0445\u043e *\/ const result = [1, 2, 3].map(num =&gt; String(num)); \/\/ =&gt; [&quot;1&quot;, &quot;2&quot;, &quot;3&quot;]  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ const result = [1, 2, 3].map(String);  \/\/ \u041f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043a \u0442\u0438\u043f\u0443 string <\/code><\/pre>\n<p>  <b>\u041a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e<\/b>:<br \/>  1. Babeljs (\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 ES5): <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20result%20%3D%20%5B1%2C%202%2C%203%5D.map(num%20%3D%3E%20String(num))%3B\">\u043f\u043b\u043e\u0445\u043e<\/a> vs <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20result%20%3D%20%5B1%2C%202%2C%203%5D.map(String)%3B%20\">\u0445\u043e\u0440\u043e\u0448\u043e<\/a><br \/>  2. <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Array\/map#Example:_Mapping_an_array_of_numbers_using_a_function_containing_an_argument\">\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0447\u0438\u0441\u0435\u043b \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/a><\/p>\n<h4><a name=\"thirty-one\"><\/a><b>\u041a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438<\/b><\/h4>\n<p>  \u0418\u0437\u0431\u0435\u0433\u0430\u0439\u0442\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0439. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e.<\/p>\n<pre><code class=\"javascript\">const plus1 = a =&gt; a + 1; const mult2 = a =&gt; a * 2;  \/* \u043f\u043b\u043e\u0445\u043e *\/ mult2(plus1(5)); \/\/ =&gt; 12  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ const pipeline = (...funcs) =&gt; val =&gt; funcs.reduce((a, b) =&gt; b(a), val); const addThenMult = pipeline(plus1, mult2);  addThenMult(5); \/\/ =&gt; 12 <\/code><\/pre>\n<p>  <b>\u041a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e<\/b>:<br \/>  1. Babeljs (\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 ES5): <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20plus1%20%3D%20a%20%3D%3E%20a%20%2B%201%3B%0Aconst%20mult2%20%3D%20a%20%3D%3E%20a%20*%202%3B%0A%0A%2F*%20%D0%BF%D0%BB%D0%BE%D1%85%D0%BE%20*%2F%0Amult2(plus1(5))%3B%20%2F%2F%20%3D%3E%2012\">\u043f\u043b\u043e\u0445\u043e<\/a> vs <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20plus1%20%3D%20a%20%3D%3E%20a%20%2B%201%3B%0Aconst%20mult2%20%3D%20a%20%3D%3E%20a%20*%202%3B%0A%0A%2F*%20%D1%85%D0%BE%D1%80%D0%BE%D1%88%D0%BE%20*%2F%0Aconst%20pipeline%20%3D%20(...funcs)%20%3D%3E%20val%20%3D%3E%20funcs.reduce((a%2C%20b)%20%3D%3E%20b(a)%2C%20val)%3B%0Aconst%20addThenMult%20%3D%20pipeline(plus1%2C%20mult2)%3B%0A%0AaddThenMult(5)%3B%20%2F%2F%20%3D%3E%2012\">\u0445\u043e\u0440\u043e\u0448\u043e<\/a><\/p>\n<h4><a name=\"thirty-two\"><\/a><b>\u041a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/b><\/h4>\n<p>  \u0414\u043e\u0440\u043e\u0433\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u044b, \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u043a\u0435\u0448\u0438\u0440\u0443\u0435\u0442\u0435 \u0438\u0445.<\/p>\n<pre><code class=\"javascript\">\/* \u043f\u043b\u043e\u0445\u043e *\/ const contains = (arr, value) =&gt;   Array.prototype.includes     ? arr.includes(value)     : arr.some(el =&gt; el === value); contains([&quot;foo&quot;, &quot;bar&quot;], &quot;baz&quot;); \/\/ =&gt; false  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ const contains = (() =&gt;   Array.prototype.includes     ? (arr, value) =&gt; arr.includes(value)     : (arr, value) =&gt; arr.some(el =&gt; el === value) )(); contains([&quot;foo&quot;, &quot;bar&quot;], &quot;baz&quot;); \/\/ =&gt; false <\/code><\/pre>\n<p>  <b>\u041a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e<\/b>:<br \/>  1. Babeljs (\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 ES5): <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20contains%20%3D%20(arr%2C%20value)%20%3D%3E%0A%20%20Array.prototype.includes%0A%20%20%20%20%3F%20arr.includes(value)%0A%20%20%20%20%3A%20arr.some(el%20%3D%3E%20el%20%3D%3D%3D%20value)%3B%0Acontains(%5B%22foo%22%2C%20%22bar%22%5D%2C%20%22baz%22)%3B%20%2F%2F%20%3D%3E%20false\">\u043f\u043b\u043e\u0445\u043e<\/a> vs <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20contains%20%3D%20(()%20%3D%3E%0A%20%20Array.prototype.includes%0A%20%20%20%20%3F%20(arr%2C%20value)%20%3D%3E%20arr.includes(value)%0A%20%20%20%20%3A%20(arr%2C%20value)%20%3D%3E%20arr.some(el%20%3D%3E%20el%20%3D%3D%3D%20value)%0A)()%3B%0Acontains(%5B%22foo%22%2C%20%22bar%22%5D%2C%20%22baz%22)%3B%20%2F%2F%20%3D%3E%20false\">\u0445\u043e\u0440\u043e\u0448\u043e<\/a><br \/>  2. \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c, <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/String\/contains\">\u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043b\u0438 \u043e\u0434\u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u0434\u0440\u0443\u0433\u043e\u0439<\/a>, \u0430 \u0442\u0430\u043a\u0436\u0435 <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Array\/some#Example:_Testing_size_of_all_array_elements\">\u0434\u0435\u043b\u0430\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0430<\/a><\/p>\n<h4><a name=\"thirty-three\"><\/a><b>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435<\/b><\/h4>\n<p>  \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 <i>const<\/i> \u0432\u043c\u0435\u0441\u0442\u043e <i>let<\/i> \u0438 <i>let<\/i> \u0432\u043c\u0435\u0441\u0442\u043e <i>var<\/i>.<\/p>\n<pre><code class=\"javascript\">\/* \u043f\u043b\u043e\u0445\u043e *\/ var me = new Map(); me.set(&quot;name&quot;, &quot;Ben&quot;).set(&quot;country&quot;, &quot;Belgium&quot;);  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ const me = new Map(); me.set(&quot;name&quot;, &quot;Ben&quot;).set(&quot;country&quot;, &quot;Belgium&quot;); <\/code><\/pre>\n<p>  <b>\u041a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e<\/b>:<br \/>  1. Babeljs (\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 ES5): <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=var%20me%20%3D%20new%20Map()%3B%0Ame.set(%22name%22%2C%20%22Ben%22).set(%22country%22%2C%20%22Belgium%22)%3B\">\u043f\u043b\u043e\u0445\u043e<\/a> vs <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20me%20%3D%20new%20Map()%3B%0Ame.set(%22name%22%2C%20%22Ben%22).set(%22country%22%2C%20%22Belgium%22)%3B\">\u0445\u043e\u0440\u043e\u0448\u043e<\/a><br \/>  2. <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Statements\/const#Examples\">\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b<\/a>, <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Statements\/let#let_vs_var\">\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 let<\/a>, \u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u0431 <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Map#\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435_\u043e\u0431\u044a\u0435\u043a\u0442\u0430_Map\">\u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u043e\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0435<\/a><\/p>\n<h4><a name=\"thirty-four\"><\/a><b>\u0423\u0441\u043b\u043e\u0432\u0438\u044f<\/b><\/h4>\n<p>  \u0411\u0443\u0434\u044c\u0442\u0435 \u043f\u0440\u0438\u0432\u0435\u0440\u0436\u0435\u043d\u044b \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 IIFE&#8217;s (\u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0443\u043d\u043a\u0442\u043e\u0440), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 (if, else if, else \u0438 switch).<\/p>\n<pre><code class=\"javascript\">\/* \u043f\u043b\u043e\u0445\u043e *\/ var grade, result = 50; if (result &lt; 50)   grade = &quot;bad&quot;; else if (result &lt; 90)   grade = &quot;good&quot;; else   grade = &quot;excellent&quot;;    \/\/ grade = &quot;good&quot;;  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ let result = 50; const grade = (() =&gt; {   if (result &lt; 50)     return &quot;bad&quot;;   if (result &lt; 90)     return &quot;good&quot;;   return &quot;excellent&quot;; })(); \/\/ grade = &quot;good&quot;; <\/code><\/pre>\n<p>  <b>\u041a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e<\/b>:<br \/>  1. Babeljs (\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 ES5): <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=var%20grade%2C%20result%20%3D%2050%3B%0Aif%20(result%20%3C%2050)%0A%20%20grade%20%3D%20%22bad%22%3B%0Aelse%20if%20(result%20%3C%2090)%0A%20%20grade%20%3D%20%22good%22%3B%0Aelse%0A%20%20grade%20%3D%20%22excellent%22%3B%0A%20%20%0A%2F%2F%20grade%20%3D%20%22good%22%3B\">\u043f\u043b\u043e\u0445\u043e<\/a> vs <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=let%20result%20%3D%2050%3B%0Aconst%20grade%20%3D%20(()%20%3D%3E%20%7B%0A%20%20if%20(result%20%3C%2050)%0A%20%20%20%20return%20%22bad%22%3B%0A%20%20if%20(result%20%3C%2090)%0A%20%20%20%20return%20%22good%22%3B%0A%20%20return%20%22excellent%22%3B%0A%7D)()%3B%20%2F%2F%20grade%20%3D%20%22good%22%3B\">\u0445\u043e\u0440\u043e\u0448\u043e<\/a> (<a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=let%20res%20%3D%2050%3B%0Aconst%20grade%20%3D%20((result)%20%3D%3E%20%7B%0A%20%20if%20(result%20%3C%2050)%0A%20%20%20%20return%20%22bad%22%3B%0A%20%20if%20(result%20%3C%2090)%0A%20%20%20%20return%20%22good%22%3B%0A%20%20return%20%22excellent%22%3B%0A%7D)(res)%3B%20%2F%2F%20grade%20%3D%20%22good%22%3B\">\u0438\u043b\u0438<\/a>)<br \/>  2. <a href=\"http:\/\/getinstance.info\/articles\/javascript\/immediately-invoked-function-expressions\/\">\u041d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/a><\/p>\n<h4><a name=\"thirty-five\"><\/a><b>\u0418\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u044b<\/b><\/h4>\n<p>  \u0418\u0437\u0431\u0435\u0433\u0430\u0439\u0442\u0435 \u0446\u0438\u043a\u043b \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u0430 <i>for&#8230;in<\/i><\/p>\n<pre><code class=\"javascript\">const shared = { foo: &quot;foo&quot; }; const obj = Object.create(shared, {   bar: {     value: &quot;bar&quot;,     enumerable: true   } });  \/* \u043f\u043b\u043e\u0445\u043e *\/ for (var prop in obj) {   if (obj.hasOwnProperty(prop))     console.log(prop); \/\/ =&gt; bar }  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ Object.keys(obj).forEach(prop =&gt; console.log(prop)); <\/code><\/pre>\n<p>  \u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u0446\u0438\u043a\u043b\u043e\u043c \u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0446\u0438\u043a\u043b \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u0438\u0437 \u0446\u0435\u043f\u043e\u0447\u043a\u0438 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u043e\u0432.<\/p>\n<p>  <b>\u041a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e<\/b>:<br \/>  1. Babeljs (\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 ES5): <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20shared%20%3D%20%7B%20foo%3A%20%22foo%22%20%7D%3B%0Aconst%20obj%20%3D%20Object.create(shared%2C%20%7B%0A%20%20bar%3A%20%7B%0A%20%20%20%20value%3A%20%22bar%22%2C%0A%20%20%20%20enumerable%3A%20true%0A%20%20%7D%0A%7D)%3B%0A%0A%2F*%20%D0%BF%D0%BB%D0%BE%D1%85%D0%BE%20*%2F%0Afor%20(var%20prop%20in%20obj)%20%7B%0A%20%20if%20(obj.hasOwnProperty(prop))%0A%20%20%20%20console.log(prop)%3B%0A%7D\">\u043f\u043b\u043e\u0445\u043e<\/a> vs <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20shared%20%3D%20%7B%20foo%3A%20%22foo%22%20%7D%3B%0Aconst%20obj%20%3D%20Object.create(shared%2C%20%7B%0A%20%20bar%3A%20%7B%0A%20%20%20%20value%3A%20%22bar%22%2C%0A%20%20%20%20enumerable%3A%20true%0A%20%20%7D%0A%7D)%3B%0A%0A%2F*%20%D1%85%D0%BE%D1%80%D0%BE%D1%88%D0%BE%20*%2F%0AObject.keys(obj).forEach(prop%20%3D%3E%20console.log(prop))%3B\">\u0445\u043e\u0440\u043e\u0448\u043e<\/a><br \/>  2. <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Object\/hasOwnProperty#Example:_Using_hasOwnProperty_to_test_for_a_property.27s_existence\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 hasOwnProperty \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430<\/a> \u0438 <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Object\/keys#Examples\">\u043e\u0431\u0445\u043e\u0434 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u0430<\/a><\/p>\n<h4><a name=\"thirty-six\"><\/a><b>\u041e\u0431\u044a\u0435\u043a\u0442 \u043a\u0430\u043a \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432<\/b><\/h4>\n<p>  \u0412 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043a\u043e\u043d\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 (<i>Map<\/i>) \u043b\u0443\u0447\u0448\u0435 \u0438 \u043c\u043e\u0449\u043d\u0435\u0435. \u0415\u0441\u043b\u0438 \u0441\u043e\u043c\u043d\u0435\u0432\u0430\u0435\u0442\u0435\u0441\u044c, \u0442\u043e\u0433\u0434\u0430 \u0442\u043e\u0447\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 <i>Map<\/i>.<\/p>\n<pre><code class=\"javascript\">\/* \u043f\u043b\u043e\u0445\u043e *\/ const me = {   name: &quot;Ben&quot;,   age: 30 }; var meSize = Object.keys(me).length; meSize; \/\/ =&gt; 2 me.country = &quot;Belgium&quot;; \/\/ \u043c\u043e\u0436\u043d\u043e  meSize++; meSize; \/\/ =&gt; 3  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ const me = new Map(); me.set(&quot;name&quot;, &quot;Ben&quot;); me.set(&quot;age&quot;, 30); me.size; \/\/ =&gt; 2 me.set(&quot;country&quot;, &quot;Belgium&quot;); me.size; \/\/ =&gt; 3 <\/code><\/pre>\n<p>  <b>\u041a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e<\/b>:<br \/>  1. Babeljs (\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 ES5): <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20me%20%3D%20%7B%0A%20%20name%3A%20%22Ben%22%2C%0A%20%20age%3A%2030%0A%7D%3B%0A%0A%2F%2F%20me%20%3D%201%3B%20%2F%2F%20error!%20%D1%82%D0%B0%D0%BA%20%D0%BA%D0%B0%D0%BA%20%D0%BD%D0%B5%D0%BB%D1%8C%D0%B7%D1%8F%20%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C%20%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BA%D1%81%D1%82%20%D0%BA%D0%BE%D0%BD%D1%81%D1%82%D0%B0%D0%BD%D1%82%D1%8B%0A%2F%2F%20%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%20%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D1%8F%D1%82%D1%8C%20%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%20%D0%B8%20%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D1%8F%D1%82%D1%8C%20%D0%B8%D1%85%0A%0Avar%20meSize%20%3D%20Object.keys(me).length%3B%0AmeSize%3B%20%2F%2F%20%3D%3E%202%0Ame.country%20%3D%20%22Belgium%22%3B%0AmeSize%2B%2B%3B%0AmeSize%3B%20%2F%2F%20%3D%3E%203\">\u043f\u043b\u043e\u0445\u043e<\/a> vs <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20me%20%3D%20new%20Map()%3B%0Ame.set(%22name%22%2C%20%22Ben%22)%3B%0Ame.set(%22age%22%2C%2030)%3B%0Ame.size%3B%20%2F%2F%20%3D%3E%202%0Ame.set(%22country%22%2C%20%22Belgium%22)%3B%0Ame.size%3B%20%2F%2F%20%3D%3E%203\">\u0445\u043e\u0440\u043e\u0448\u043e<\/a><br \/>  2. <a href=\"https:\/\/learn.javascript.ru\/set-map#map\">\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432\u0438\u0434\u0430 \u043a\u043b\u044e\u0447: \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/a><\/p>\n<h4><a name=\"thirty-seven\"><\/a><b>\u041a\u0430\u0440\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/b><\/h4>\n<p>  \u041a\u0430\u0440\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u043e\u0449\u043d\u043e\u0439, \u043d\u043e \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0447\u0443\u0436\u0435\u0440\u043e\u0434\u043d\u043e\u0439 \u043f\u0430\u0440\u0430\u0434\u0438\u0433\u043c\u043e\u0439 \u0434\u043b\u044f \u043c\u043d\u043e\u0433\u0438\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432. \u041d\u0435 \u0437\u043b\u043e\u0443\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0439\u0442\u0435.<\/p>\n<pre><code class=\"javascript\">\/* \u043f\u043b\u043e\u0445\u043e *\/ const sum = a =&gt; b =&gt; a + b; sum(5)(3); \/\/ =&gt; 8  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ const sum = (a, b) =&gt; a + b; sum(5, 3); \/\/ =&gt; 8 <\/code><\/pre>\n<p>  <b>\u041a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e<\/b>:<br \/>  1. Babeljs (\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 ES5): <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20sum%20%3D%20a%20%3D%3E%20b%20%3D%3E%20a%20%2B%20b%3B%0Asum(5)(3)%3B%20%2F%2F%20%3D%3E%208\">\u043f\u043b\u043e\u0445\u043e<\/a> vs <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20sum%20%3D%20(a%2C%20b)%20%3D%3E%20a%20%2B%20b%3B%0Asum(5%2C%203)%3B%20%2F%2F%20%3D%3E%208\">\u0445\u043e\u0440\u043e\u0448\u043e<\/a><br \/>  2. <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9A%D0%B0%D1%80%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5\">\u041a\u0430\u0440\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/a> \u0438 <a href=\"http:\/\/true-coder.ru\/javascript\/karrirovanie-karring-v-javascript.html\">\u043f\u0440\u0438\u043c\u0435\u0440\u044b<\/a><\/p>\n<h4><a name=\"thirty-eight\"><\/a><b>\u0427\u0438\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/b><\/h4>\n<p>  \u041d\u0435 \u0441\u043a\u0440\u044b\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u0432\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u0434\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0443\u043c\u043d\u044b\u0435 \u0442\u0440\u044e\u043a\u0438.<\/p>\n<pre><code class=\"javascript\">\/* \u043f\u043b\u043e\u0445\u043e *\/ foo || doSomething();  \/* \u043f\u043b\u043e\u0445\u043e *\/ void function() { \/* IIFE *\/ }();  \/* \u043f\u043b\u043e\u0445\u043e *\/ const n = ~~3.14;  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ if (!foo) doSomething();  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ (function() { \/* IIFE *\/ }());  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ const n = Math.floor(3.14); <\/code><\/pre>\n<p>  <b>\u041a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e<\/b>:<br \/>  1. <a href=\"https:\/\/habrahabr.ru\/post\/167877\/\">\u041e\u0431 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u0438 \u0441\u0443\u0440\u043e\u0432\u043e\u0439 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/a><\/p>\n<h4><a name=\"thirty-nine\"><\/a><b>\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430<\/b><\/h4>\n<p>  \u041d\u0435 \u0431\u043e\u0439\u0442\u0435\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u043c\u0435\u043b\u043a\u0438\u0445 \u0438 \u043c\u043d\u043e\u0433\u043e\u0440\u0430\u0437\u043e\u0432\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u043e\u043d\u0438 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u044b.<\/p>\n<pre><code class=\"javascript\">\/* \u043f\u043b\u043e\u0445\u043e *\/ let last = arr[arr.length - 1];  \/* \u043f\u043b\u043e\u0445\u043e *\/ const product = (a, b) =&gt; a * b; const triple = n =&gt; n * 3;  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ const first = arr =&gt; arr[0]; \/\/ =&gt; first(arr); const last = arr =&gt; first(arr.slice(-1)); \/\/ =&gt; last(arr);  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ const product = (a, b) =&gt; a * b; const triple = product.bind(null, 3); <\/code><\/pre>\n<p>  <b>\u041a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e<\/b>:<br \/>  1. Babeljs (\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 ES5): <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=let%20last%20%3D%20arr%5Barr.length%20-%201%5D%3B%20%2F*%20%D0%BF%D0%BB%D0%BE%D1%85%D0%BE%20*%2F%0A%0A%2F*%20%D0%BF%D0%BB%D0%BE%D1%85%D0%BE%20*%2F%0Aconst%20product%20%3D%20(a%2C%20b)%20%3D%3E%20a%20*%20b%3B%0Aconst%20triple%20%3D%20n%20%3D%3E%20n%20*%203%3B\">\u043f\u043b\u043e\u0445\u043e<\/a> vs <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20first%20%3D%20arr%20%3D%3E%20arr%5B0%5D%3B%20%2F%2F%20%3D%3E%20first(arr)%3B%0Aconst%20last%20%3D%20arr%20%3D%3E%20first(arr.slice(-1))%3B%20%2F%2F%20%3D%3E%20last(arr)%3B%0A%0A%2F*%20%D1%85%D0%BE%D1%80%D0%BE%D1%88%D0%BE%20*%2F%0Aconst%20product%20%3D%20(a%2C%20b)%20%3D%3E%20a%20*%20b%3B%0Aconst%20triple%20%3D%20product.bind(null%2C%203)%3B\">\u0445\u043e\u0440\u043e\u0448\u043e<\/a><\/p>\n<h4><a name=\"forty\"><\/a><b>\u0417\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438<\/b><\/h4>\n<p>  \u041c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0439\u0442\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0433\u043e \u043a\u043e\u0434\u0430, \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0432 \u043a\u0443\u0440\u0441\u0435 \u043a\u0430\u043a \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u041d\u0435 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0432\u0441\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0440\u0430\u0434\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043b\u0435\u0433\u043a\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u044b:<\/p>\n<pre><code class=\"javascript\">\/* \u043f\u043b\u043e\u0445\u043e *\/ var _ = require(&quot;underscore&quot;); _.compact([&quot;foo&quot;, 0])); _.unique([&quot;foo&quot;, &quot;foo&quot;]); _.union([&quot;foo&quot;], [&quot;bar&quot;], [&quot;foo&quot;]);  \/* \u0445\u043e\u0440\u043e\u0448\u043e *\/ const compact = arr =&gt; arr.filter(el =&gt; el); const unique = arr =&gt; [...Set(arr)]; const union = (...arr) =&gt; unique([].concat(...arr));  compact([&quot;foo&quot;, 0]); unique([&quot;foo&quot;, &quot;foo&quot;]); union([&quot;foo&quot;], [&quot;bar&quot;], [&quot;foo&quot;]); <\/code><\/pre>\n<p>  <b>\u041a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e<\/b>:<br \/>  1. Babeljs (\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 ES5): <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=var%20_%20%3D%20require(%22underscore%22)%3B%0A_.compact(%5B%22foo%22%2C%200%5D)%3B%0A_.unique(%5B%22foo%22%2C%20%22foo%22%5D)%3B%0A_.union(%5B%22foo%22%5D%2C%20%5B%22bar%22%5D%2C%20%5B%22foo%22%5D)%3B\">\u043f\u043b\u043e\u0445\u043e<\/a> vs <a href=\"https:\/\/babeljs.io\/repl\/#?experimental=false&amp;evaluate=true&amp;loose=false&amp;spec=false&amp;code=const%20compact%20%3D%20arr%20%3D%3E%20arr.filter(el%20%3D%3E%20el)%3B%0Aconst%20unique%20%3D%20arr%20%3D%3E%20%5B...Set(arr)%5D%3B%0Aconst%20union%20%3D%20(...arr)%20%3D%3E%20unique(%5B%5D.concat(...arr))%3B%0A%0Acompact(%5B%22foo%22%2C%200%5D)%3B%0Aunique(%5B%22foo%22%2C%20%22foo%22%5D)%3B%0Aunion(%5B%22foo%22%5D%2C%20%5B%22bar%22%5D%2C%20%5B%22foo%22%5D)%3B\">\u0445\u043e\u0440\u043e\u0448\u043e<\/a><br \/>  2. <a href=\"https:\/\/habrahabr.ru\/post\/181536\/\">\u041f\u0443\u0442\u044c JavaScript \u043c\u043e\u0434\u0443\u043b\u044f<\/a> \u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 <a href=\"http:\/\/underscorejs.ru\/\">Underscore<\/a>               <\/p>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habrahabr.ru\/post\/275729\/\"> https:\/\/habrahabr.ru\/post\/275729\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>       <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/5ad\/d35\/6fe\/5add356fe9fe4db6a3d5e8eff84dff59.png\" align=\"left\"\/><\/p>\n<h4><b>Frontend Guidelines<\/b><\/h4>\n<p>\u041f\u0440\u0430\u0432\u0438\u043b\u0430 \u0438 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f, \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f HTML, \u0421SS \u0438 JavaScript \u043a\u043e\u0434\u0430. \u0415\u0433\u043e \u0446\u0435\u043b\u044c \u2014 \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u0434\u0430 \u0438 \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442\u044c \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b.<\/p>\n<h4><b>\u041e\u0442 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a\u0430<\/b><\/h4>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e \u0432\u0441\u0435\u0445 \u0441\u043d\u043e\u0432\u0430, \u043c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0430\u043a\u0441\u0438\u043c \u0418\u0432\u0430\u043d\u043e\u0432, \u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b \u043f\u0435\u0440\u0435\u0432\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0432\u0430\u0441 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c. <a href=\"https:\/\/dribbble.com\/bdc\">\u0411\u0435\u043d\u0434\u0436\u0430\u043c\u0438\u043d \u0414\u0435 \u041a\u0443\u043a<\/a> (Benjamin De Cock), \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0438\u0437 \u0411\u0435\u043b\u044c\u0433\u0438\u0438, \u0441\u043e\u0431\u0440\u0430\u043b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u043f\u043e \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044e \u043a\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u044e\u0442 \u0441\u0435\u0431\u044f \u043a\u0430\u043a <a href=\"https:\/\/github.com\/bendc\/frontend-guidelines\">\u043b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438<\/a> \u043f\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044e HTML, CSS, JS. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u0442\u044c \u0445\u043e\u0440\u043e\u0448\u0438\u0439 <a href=\"https:\/\/google.github.io\/styleguide\/htmlcssguide.xml\">\u0433\u0430\u0439\u0434\u043b\u0430\u0439\u043d \u043e\u0442 Google<\/a>, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0435\u0441\u0442\u044c \u0435\u0449\u0435 \u0447\u0442\u043e-\u0442\u043e, \u043e\u0434\u043d\u0430\u043a\u043e, \u0435\u0441\u043b\u0438 \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0438\u0437 \u043d\u0438\u0445, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0434\u0435\u044f\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0432\u0430\u0448 \u043a\u043e\u0434 \u0441\u0442\u0430\u043d\u0435\u0442 \u043b\u0443\u0447\u0448\u0435. \u0412 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u0442\u0438\u043c \u0433\u0430\u0439\u0434\u043b\u0430\u0439\u043d\u0430\u043c \u043d\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u043e, \u0430 \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442. \u0412 \u043e\u0431\u0449\u0435\u043c \u0438 \u0446\u0435\u043b\u043e\u043c, \u0432\u0441\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0432\u0430\u0448\u0435\u0433\u043e \u043e\u043f\u044b\u0442\u0430 \u0438 \u0432\u0438\u0434\u0435\u043d\u044c\u044f \u0434\u0435\u043b\u0430, \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u043e\u0432\u0438\u0447\u043e\u043a, \u0442\u043e \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u043f\u0438\u0448\u0443\u0442 \u0434\u0440\u0443\u0433\u0438\u0435 \u0438 \u0432 \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u0435\u0440\u043d\u044b\u043c, \u0435\u0441\u043b\u0438 \u0432\u044b \u0433\u0443\u0440\u0443, \u0442\u043e \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435 \u0432\u0430\u043c \u0438 \u043d\u0435 \u043d\u0443\u0436\u043d\u044b \u0433\u0430\u0439\u0434\u043b\u0430\u0439\u043d\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043a\u0435\u043c \u043d\u0430 \u0432\u0430\u0448 \u0432\u0437\u0433\u043b\u044f\u0434. \u0418\u0442\u0430\u043a, \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-273549","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/273549","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=273549"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/273549\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=273549"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=273549"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=273549"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}