{"id":309878,"date":"2020-09-14T09:00:15","date_gmt":"2020-09-14T09:00:15","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=309878"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=309878","title":{"rendered":"200 \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u043f\u043e JavaScript"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/519004\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ig\/mq\/2d\/igmq2dvqrh3pvqpohaicef0c3zi.png\"><\/p>\n<p>  \u0414\u043e\u0431\u0440\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u0443\u0442\u043e\u043a, \u0434\u0440\u0443\u0437\u044c\u044f!<\/p>\n<p>  \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437 \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u043e\u0442\u043d\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u043f\u043e \u043e\u0441\u043d\u043e\u0432\u0430\u043c JavaScript \u0438\u0437 <a href=\"https:\/\/github.com\/sudheerj\/javascript-interview-questions\" rel=\"nofollow\">\u044d\u0442\u043e\u0433\u043e \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f<\/a> \u0441 \u043a\u0440\u0430\u0442\u043a\u0438\u043c\u0438 \u043e\u0442\u0432\u0435\u0442\u0430\u043c\u0438 \u0438 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438 \u043d\u0430 \u00ab\u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0443\u0447\u0435\u0431\u043d\u0438\u043a \u043f\u043e JavaScript\u00bb \u0418\u043b\u044c\u0438 \u041a\u0430\u043d\u0442\u043e\u0440\u0430 (JSR) \u0438 MDN.<\/p>\n<p>  \u0414\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a, \u0430 \u0442\u0430\u043a\u0436\u0435 300+ \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432 <a href=\"https:\/\/jsq.netlify.app\/\" rel=\"nofollow\">\u043c\u043e\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438<\/a>.<\/p>\n<p>  \u0412 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u043e\u043f\u0440\u043e\u0441\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0432 \u043e\u0444\u0444\u043b\u0430\u0439\u043d-\u0440\u0435\u0436\u0438\u043c\u0435.<\/p>\n<p>  \u041f\u0440\u0438\u043d\u043e\u0448\u0443 \u0438\u0437\u0432\u0438\u043d\u0435\u043d\u0438\u044f \u0437\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438. \u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442\u0441\u044f \u043b\u044e\u0431\u0430\u044f \u0444\u043e\u0440\u043c\u0430 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u0438.<\/p>\n<p>  \u0420\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u043e\u0442 14.09.<\/p>\n<p>  \u041f\u0435\u0440\u0432\u044b\u0435 100 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 <a href=\"https:\/\/habr.com\/ru\/post\/517002\/\">\u0437\u0434\u0435\u0441\u044c<\/a>.<br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<h3>101. \u0414\u043b\u044f \u0447\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f stopPropagation()?<\/h3>\n<p>  \u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0432\u0441\u043f\u043b\u044b\u0442\u0438\u044f \u0438\u043b\u0438 \u043f\u043e\u0434\u043d\u044f\u0442\u0438\u044f \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0432\u0432\u0435\u0440\u0445 \u043f\u043e \u0446\u0435\u043f\u043e\u0447\u043a\u0435 \u0438\u0437 \u043f\u0440\u0435\u0434\u043a\u043e\u0432 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430. \u0414\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u043e\u043d \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043e\u0442 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043a \u0435\u0433\u043e \u043f\u0440\u0435\u0434\u043a\u0430\u043c. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<pre><code class=\"javascript\">&lt;div onclick=&quot;f2()&quot;&gt;     &lt;div onclick=&quot;f1()&quot;&gt;&lt;\/div&gt; &lt;\/div&gt;  function f1(event) {     event.stopPropagation()     console.log('\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440') }  function f2() {     console.log('\u0412\u043d\u0435\u0448\u043d\u0438\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440') } <\/code><\/pre>\n<p>  \u041f\u0440\u0438 \u043a\u043b\u0438\u043a\u0435 \u043f\u043e \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u043c\u0443 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0443 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u00ab\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u00bb. \u0415\u0441\u043b\u0438 \u0443\u0431\u0440\u0430\u0442\u044c event.stopPropagation(), \u0442\u043e \u043f\u0440\u0438 \u043a\u043b\u0438\u043a\u0435 \u043f\u043e \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u043c\u0443 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0443, \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u044b \u043e\u0431\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f.<\/p>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/bubbling-and-capturing\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/API\/Event\/stopPropagation\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>102. \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f return false?<\/h3>\n<p>  \u0414\u0430\u043d\u043d\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0434\u043b\u044f:<\/p>\n<ul>\n<li>\u041e\u0442\u043c\u0435\u043d\u044b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430<\/li>\n<li>\u041f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043f\u043e DOM<\/li>\n<li>\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043b\u0431\u044d\u043a\u0430 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u044b\u0437\u0432\u0430\u0432\u0448\u0435\u0439 \u0435\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/li>\n<\/ul>\n<p>  \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435: \u0431\u0435\u0437 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 return \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 undefined.<\/p>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/default-browser-action\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Statements\/return\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>103. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 BOM?<\/h3>\n<p>  BOM \u0438\u043b\u0438 (Browser Object Model \u2014 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430) \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 JavaScript \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u043c. \u0414\u0430\u043d\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u0442\u0430\u043a\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043a\u0430\u043a navigator, location, history, screen, XMLHttpRequest \u0438 \u0442.\u043f. \u0414\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, BOM \u2014 \u044d\u0442\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u043e \u0432\u0441\u0435\u043c, \u043a\u0440\u043e\u043c\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430.<br \/>  \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435: BOM \u043d\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u0445.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/sz\/yx\/9h\/szyx9hq8q_n0dcrbjrv_rjsplxe.png\"><\/p>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/browser-environment\" rel=\"nofollow\">JSR<\/a><\/p>\n<h3>104. \u0414\u043b\u044f \u0447\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f setTimeout()?<\/h3>\n<p>  \u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438. \u0414\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u043e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u043b\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f (\u0432 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445). \u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043c\u044b \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0447\u0435\u0440\u0435\u0437 2 \u0441\u0435\u043a\u0443\u043d\u0434\u044b:<\/p>\n<pre><code class=\"javascript\">setTimeout(() =&gt; console.log('\u041f\u0440\u0438\u0432\u0435\u0442!'), 2000)  \/\/ \u0432\u043e \u0438\u0437\u0431\u0435\u0436\u0430\u043d\u0438\u0435 \u0443\u0442\u0435\u0447\u0435\u043a \u043f\u0430\u043c\u044f\u0442\u0438, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a const timer = setTimeout(() =&gt; {     console.log('\u041f\u0440\u0438\u0432\u0435\u0442!')     clearTimeout(timer) }, 2000) <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/settimeout-setinterval\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/API\/WindowTimers\/setTimeout\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>105. \u0414\u043b\u044f \u0447\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f setInterval()?<\/h3>\n<p>  \u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438. \u0414\u0440\u0443\u0433\u0438\u043c \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u043e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u043b\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a \u0432\u0440\u0435\u043c\u0435\u043d\u0438 (\u0432 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445). \u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043c\u044b \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u043a\u0430\u0436\u0434\u044b\u0435 2 \u0441\u0435\u043a\u0443\u043d\u0434\u044b:<\/p>\n<pre><code class=\"javascript\">setInterval(() =&gt; console.log('\u041f\u0440\u0438\u0432\u0435\u0442!'), 2000)  \/\/ \u0432\u043e \u0438\u0437\u0431\u0435\u0436\u0430\u043d\u0438\u0435 \u0443\u0442\u0435\u0447\u0435\u043a \u043f\u0430\u043c\u044f\u0442\u0438, \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0439\u0442\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0442\u0430\u0439\u043c\u0435\u0440 \/\/ \u043f\u043e\u0441\u043b\u0435 \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u0446\u0435\u043b\u0438 let i = 0 const timer = setInterval(() =&gt; {     console.log('\u041f\u0440\u0438\u0432\u0435\u0442!')     i++      if (i == 2) {         clearInterval(timer)     } }, 2000) <\/code><\/pre>\n<p>  \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u00ab\u041f\u0440\u0438\u0432\u0435\u0442!\u00bb \u0432\u044b\u0432\u0435\u0434\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0434\u0432\u0430 \u0440\u0430\u0437\u0430, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0442\u0430\u0439\u043c\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d<\/p>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/settimeout-setinterval\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/API\/WindowOrWorkerGlobalScope\/setInterval\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>106. \u041f\u043e\u0447\u0435\u043c\u0443 JavaScript \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043e\u0434\u043d\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u044b\u043c (single threated)?<\/h3>\n<p>  JavaScript \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u044b\u043c \u0438\u043b\u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u043c \u044f\u0437\u044b\u043a\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0432 \u043e\u0434\u0438\u043d \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0430. \u0415\u0441\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0439, \u0435\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438 \u0432\u0441\u0435 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043f\u043e\u0442\u043e\u043a \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d. \u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u043e\u0442\u043e\u043a\u0430, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435. \u0411\u0440\u0430\u0443\u0437\u0435\u0440 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0435\u0442 \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f. \u0414\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u043a\u043e\u043b\u0431\u044d\u043a\u0438, \u043f\u0440\u043e\u043c\u0438\u0441\u044b, async\/await, \u0432\u043e\u0440\u043a\u0435\u0440\u044b \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c. \u0412 JavaScript \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0442 Java, Go \u0438\u043b\u0438 C++ \u043d\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u0442\u043e\u043a\u0438 \u0438\u043b\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b.<\/p>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/intro\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>107. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0434\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 (event delegation)?<\/h3>\n<p>  \u0414\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u2014 \u044d\u0442\u043e \u0442\u0435\u0445\u043d\u0438\u043a\u0430, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0435 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0439, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0445 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438.<br \/>  \u0427\u0430\u0441\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043a\u043d\u043e\u043f\u043e\u043a \u0432 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u044e\u0449\u0435\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 \u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u0442\u0435\u043a\u0441\u0442\u0430 \u0432 \u0444\u043e\u0440\u043c\u0430\u0445, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<pre><code class=\"javascript\">&lt;form&gt;     &lt;input type=&quot;text&quot; class=&quot;first-input&quot;&gt;     &lt;input type=&quot;text&quot; class=&quot;second-input&quot;&gt; &lt;\/form&gt;  &lt;div&gt;     &lt;button class=&quot;first-button&quot;&gt;click&lt;\/button&gt;     &lt;button class=&quot;second-button&quot;&gt;click&lt;\/button&gt; &lt;\/div&gt;  const form = document.querySelector('form') const buttons = document.querySelector('div')  form.addEventListener('input', event =&gt; {     console.log(event.target.className) })  buttons.addEventListener('click', event =&gt; {     console.log(event.target.className) }) <\/code><\/pre>\n<p>  \u0412 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0432\u043c\u0435\u0441\u0442\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043d\u0430 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0445, \u043c\u044b \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u043c \u0438\u0445 \u043d\u0430 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0445. \u0412\u0432\u043e\u0434 \u0442\u0435\u043a\u0441\u0442\u0430 \u0432 \u043f\u043e\u043b\u0435 \u0438\u043b\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0435 \u043a\u043d\u043e\u043f\u043a\u0438 \u043f\u0440\u0438\u0432\u043e\u0434\u044f\u0442 \u043a \u0432\u044b\u0432\u043e\u0434\u0443 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c.<\/p>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/event-delegation\" rel=\"nofollow\">JSR<\/a><\/p>\n<h3>108. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 ECMAScript?<\/h3>\n<p>  ECMAScript \u2014 \u044d\u0442\u043e \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043b\u0435\u0436\u0430\u0449\u0438\u0439 \u0432 \u043e\u0441\u043d\u043e\u0432\u0435 JavaScript. \u042d\u0442\u043e \u0441\u0432\u043e\u0435\u0433\u043e \u0440\u043e\u0434\u0430 \u0448\u0430\u0431\u043b\u043e\u043d \u0438\u043b\u0438 \u0441\u0445\u0435\u043c\u0430, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u00ab\u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f\u00bb JavaScript. ECMAScript \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d \u0432 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 ECMA-262 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043f\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430\u043c Ecma International.<\/p>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/manuals-specifications\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Language_Resources\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>109. \u041d\u0430\u0437\u043e\u0432\u0438\u0442\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 JSON<\/h3>\n<p>  \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 JSON \u0438\u043c\u0435\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438:<\/p>\n<ul>\n<li>\u0414\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u043e\u0431\u043e\u0439 \u043f\u0430\u0440\u044b \u043a\u043b\u044e\u0447\/\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/li>\n<li>\u041a\u043b\u044e\u0447 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0434\u0432\u043e\u0439\u043d\u044b\u0435 \u043a\u0430\u0432\u044b\u0447\u043a\u0438, \u043a\u0440\u043e\u043c\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432, \u043a\u043e\u0433\u0434\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0438\u0441\u043b\u043e\u043c (\u00abkey\u00bb: \u00abvalue\u00bb)<\/li>\n<li>\u0414\u0430\u043d\u043d\u044b\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0437\u0430\u043f\u044f\u0442\u044b\u043c\u0438<\/li>\n<li>\u041e\u0431\u044a\u0435\u043a\u0442\u044b \u043e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0444\u0438\u0433\u0443\u0440\u043d\u044b\u0435 \u0441\u043a\u043e\u0431\u043a\u0438<\/li>\n<li>\u041c\u0430\u0441\u0441\u0438\u0432\u044b \u2014 \u0432 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0435<\/li>\n<\/ul>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/json\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/JSON\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>110. \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 JSON.stringify()?<\/h3>\n<p>  \u041f\u0440\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440, \u043e\u043d\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0438\u043c\u0435\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442. \u0414\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u0441\u0442\u0440\u043e\u043a\u0443 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 JSON \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 JSON.stringify():<\/p>\n<pre><code class=\"javascript\">const user = { name: '\u0412\u0430\u043d\u044c\u043a\u0430', age: 30 } const str = JSON.stringify(user) console.log(str) \/\/ {&quot;name&quot;:&quot;\u0412\u0430\u043d\u044c\u043a\u0430&quot;,&quot;age&quot;:30} <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/json\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/JSON\/stringify\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>111. \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 JSON.parse()?<\/h3>\n<p>  \u041f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043e\u043d\u0438 \u0438\u043c\u0435\u044e\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442. \u0414\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 JavaScript \u043e\u0431\u044a\u0435\u043a\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 JSON.parse():<\/p>\n<pre><code class=\"javascript\">const str = { &quot;name&quot;:&quot;\u0412\u0430\u043d\u044c\u043a\u0430&quot;,&quot;age&quot;:30 } const user = JSON.parse(str) console.log(user) \/\/ {name: &quot;\u0412\u0430\u043d\u044c\u043a\u0430&quot;, age: 30} <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/json\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/JSON\/parse\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>112. \u0417\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u0435\u043d JSON?<\/h3>\n<p>  \u041f\u0440\u0438 \u043e\u0431\u043c\u0435\u043d\u0435 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043c\u0435\u0436\u0434\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c \u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c, \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 JSON \u2014 \u044d\u0442\u043e \u0442\u0435\u043a\u0441\u0442, \u043e\u043d \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442. \u0422\u0430\u043a\u0436\u0435 \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043b\u044e\u0431\u044b\u043c \u044f\u0437\u044b\u043a\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u0430\u0440\u044f\u0434\u0443 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0430\u043c\u0438, \u0442\u0430\u043a\u0438\u043c\u0438 \u043a\u0430\u043a XML \u0438\u043b\u0438 Protobuf.<\/p>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/json\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/JSON\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>113. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 PWA (Progressive Web Application \u2014 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0438\u0432\u043d\u043e\u0435 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435)?<\/h3>\n<p>  \u0415\u0441\u043b\u0438 \u043a\u0440\u0430\u0442\u043a\u043e, \u0442\u043e PWA \u2014 \u044d\u0442\u043e \u0432\u0435\u0431-\u0441\u0430\u0439\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0435\u0434\u0443\u0442 \u0441\u0435\u0431\u044f \u043f\u043e\u0434\u043e\u0431\u043d\u043e \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c. \u041e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u043d\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u0438\u043b\u0438 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440, \u0430 \u0442\u0430\u043a\u0436\u0435, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0432 \u043e\u0444\u0444\u043b\u0430\u0439\u043d\u0435. \u0414\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0441\u0435\u0440\u0432\u0438\u0441-\u0432\u043e\u0440\u043a\u0435\u0440\u044b \u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u043c PWA \u043f\u0435\u0440\u0435\u0434 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0445 \u0440\u0430\u0437\u043c\u0435\u0440 \u0438 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043b\u0435\u0433\u043a\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0422\u0430\u043a\u0436\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0434\u0432\u0443\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 \u2014 \u0432\u0435\u0431 \u0438 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u043e\u043f\u044b\u0442.<\/p>\n<p>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/Progressive_web_apps\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>114. \u0414\u043b\u044f \u0447\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f clearTimeout()?<\/h3>\n<p>  \u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0442\u0430\u0439\u043c\u0435\u0440\u0430, \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u043e\u0433\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e setTimeout(). \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0442\u0430\u0439\u043c\u0435\u0440\u0430 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f clearTimeout() \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430.<\/p>\n<pre><code class=\"javascript\">const timer = setTimeout(() =&gt; {     console.log('\u041f\u0440\u0438\u0432\u0435\u0442!')     clearTimeout(timer) }, 2000) <\/code><\/pre>\n<p>  \u0412 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0447\u0435\u0440\u0435\u0437 \u0434\u0432\u0435 \u0441\u0435\u043a\u0443\u043d\u0434\u044b \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u00ab\u041f\u0440\u0438\u0432\u0435\u0442!\u00bb, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0442\u0430\u0439\u043c\u0435\u0440 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u0431\u043e\u0440\u0449\u0438\u043a \u043c\u0443\u0441\u043e\u0440\u0430 \u043c\u043e\u0433 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0439 \u0442\u0430\u0439\u043c\u0435\u0440.<\/p>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/settimeout-setinterval\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/API\/WindowOrWorkerGlobalScope\/clearTimeout\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>115. \u0414\u043b\u044f \u0447\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f clearInterval()?<\/h3>\n<p>  \u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0442\u0430\u0439\u043c\u0435\u0440\u0430, \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u043e\u0433\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e setInterval(). \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0442\u0430\u0439\u043c\u0435\u0440\u0430 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f clearInterval() \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430.<\/p>\n<pre><code class=\"javascript\">let i = 1 const timer = setInterval(() =&gt; {     console.log(i)     i++      if (i === 3) clearInterval(timer) }, 1000) <\/code><\/pre>\n<p>  \u0412 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 i, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 1 (1, 2). \u041a\u043e\u0433\u0434\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 i \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0440\u0430\u0432\u043d\u044b\u043c 3, \u0442\u0430\u0439\u043c\u0435\u0440 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f.<\/p>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/settimeout-setinterval\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/API\/WindowOrWorkerGlobalScope\/clearInterval\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>116. \u041a\u0430\u043a \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435?<\/h3>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e location \u043e\u0431\u044a\u0435\u043a\u0442\u0430 window:<\/p>\n<pre><code class=\"javascript\">location.href = 'newPage.html' \/\/ \u0438\u043b\u0438 location.replace('newPage.html') \/\/ \u0438\u043b\u0438 location.assign('newPage.html') <\/code><\/pre>\n<p>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/API\/Location\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>117. \u041a\u0430\u043a \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u0438 \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0430 \u0432 \u0441\u0442\u0440\u043e\u043a\u0435?<\/h3>\n<p>  \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c, \u0442\u0440\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c.<br \/>  String.prototype.includes()<\/p>\n<pre><code class=\"javascript\">const mainStr = 'hello' const subStr = 'hel' mainStr.includes(subStr) \/\/ true <\/code><\/pre>\n<p>  String.prototype.indexOf()<\/p>\n<pre><code class=\"javascript\">const mainStr = 'hello' const subStr = 'hel' mainStr.indexOf(subStr) !== -1 \/\/ true <\/code><\/pre>\n<p>  RegExp<\/p>\n<pre><code class=\"javascript\">const mainStr = 'hello' const regex = \/hel\/ regex.test(mainStr) \/\/ true <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/string\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/String\/includes\" rel=\"nofollow\">MDN \u2014 includes<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/String\/indexOf\" rel=\"nofollow\">MDN \u2014 indexOf<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/RegExp\/test\" rel=\"nofollow\">MDN \u2014 test<\/a><\/p>\n<h3>118. \u041a\u0430\u043a \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0430\u0434\u0440\u0435\u0441\u0430 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b?<\/h3>\n<p>  \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 HTML, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0432 \u0442\u0438\u043f \u043f\u043e\u043b\u044f \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 email (&lt;input type=\u00abemail\u00bb&gt;). \u041e\u0434\u043d\u0430\u043a\u043e, \u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u043c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u043e\u0431\u044b\u0447\u043d\u043e, email \u0432\u0430\u043b\u0438\u0434\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u042d\u0442\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d JavaScript:<\/p>\n<pre><code class=\"javascript\">const validateEmail = email =&gt;     \/S+@S+.S+\/         .test(email.toString()         .toLowerCase()) const email = 'myemail@example.com' validateEmail(email) \/\/ true <\/code><\/pre>\n<p>  \u0412 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438 \u0430\u0434\u0440\u0435\u0441\u0430 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b. \u0411\u043e\u043b\u0435\u0435 \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a (RFC 2822): [a-z0-9!#$%&amp;&#8217;*+\/=?^_\\`{|}~-]+(?:.[a-z0-9!#$%&amp;&#8217;*+\/=?^_\\`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?<\/p>\n<h3>119. \u041a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 URL?<\/h3>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e location \u043e\u0431\u044a\u0435\u043a\u0442\u0430 window \u0438\u043b\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e URL \u043e\u0431\u044a\u0435\u043a\u0442\u0430 document:<\/p>\n<pre><code class=\"javascript\">console.log('\u0422\u0435\u043a\u0443\u0449\u0438\u0439 URL', location.href) console.log('\u0422\u0435\u043a\u0443\u0449\u0438\u0439 URL', document.URL) \/\/ \u0432 Chrome \u0432 \u043f\u0443\u0441\u0442\u043e\u0439 \u0432\u043a\u043b\u0430\u0434\u043a\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c &quot;\u0422\u0435\u043a\u0443\u0449\u0438\u0439 URL chrome-search:\/\/local-ntp\/local-ntp.html&quot; <\/code><\/pre>\n<p>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/API\/Location\" rel=\"nofollow\">MDN \u2014 location<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/API\/Document\/URL\" rel=\"nofollow\">MDN \u2014 document.URL<\/a><\/p>\n<h3>120. \u041a\u0430\u043a\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0438\u043c\u0435\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 location?<\/h3>\n<p>  \u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 location \u043c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0447\u0430\u0441\u0442\u0435\u0439 URL \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b:<\/p>\n<ul>\n<li>href \u2014 \u043f\u043e\u043b\u043d\u044b\u0439 URL<\/li>\n<li>origin \u2014 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u0445\u043e\u0441\u0442 \u0438 \u043f\u043e\u0440\u0442 (\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0435 \u043e\u0431\u0449\u0435\u0433\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f (SOP) \u0438 \u0421\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 (CORS))<\/li>\n<li>protocol<\/li>\n<li>host \u2014 \u0445\u043e\u0441\u0442 \u0438 \u043f\u043e\u0440\u0442<\/li>\n<li>hostname \u2014 \u0445\u043e\u0441\u0442<\/li>\n<li>port<\/li>\n<li>pathname \u2014 \u043f\u0443\u0442\u044c<\/li>\n<li>search \u2014 \u0441\u0442\u0440\u043e\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043f\u043e\u0441\u043b\u0435 ?<\/li>\n<li>hash \u2014 \u0441\u0442\u0440\u043e\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043f\u043e\u0441\u043b\u0435 # (\u044f\u043a\u043e\u0440\u044f)<\/li>\n<li>username \u2014 \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043f\u0435\u0440\u0435\u0434 \u0434\u043e\u043c\u0435\u043d\u043e\u043c<\/li>\n<li>password \u2014 \u043f\u0430\u0440\u043e\u043b\u044c \u043f\u0435\u0440\u0435\u0434 \u0434\u043e\u043c\u0435\u043d\u043e\u043c<\/li>\n<\/ul>\n<p>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/API\/Location\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>121. \u041a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u0430?<\/h3>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 URL:<\/p>\n<pre><code class=\"javascript\">const url = new URL('https:\/\/example.com?foo=1&amp;bar=2') console.log(url.search) \/\/ ?foo=1&amp;bar=2 console.log(url.searchParams.get('foo')) \/\/ 1 <\/code><\/pre>\n<p>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/API\/Document\/URL\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>122. \u041a\u0430\u043a \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u0435?<\/h3>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c, \u0442\u0440\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430.<br \/>  \u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 in<\/p>\n<pre><code class=\"javascript\">const user = { name: '\u0412\u0430\u043d\u044c\u043a\u0430' } console.log('name' in user) \/\/ true console.log(!('age' in user)) \/\/ true <\/code><\/pre>\n<p>  \u041c\u0435\u0442\u043e\u0434 hasOwnProperty()<\/p>\n<pre><code class=\"javascript\">const user = { name: '\u0412\u0430\u043d\u044c\u043a\u0430' } console.log(user.hasOwnProperty('name')) \/\/ true console.log(!user.hasOwnProperty('age')) \/\/ true <\/code><\/pre>\n<p>  \u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441 undefined<\/p>\n<pre><code class=\"javascript\">const user = { name: '\u0412\u0430\u043d\u044c\u043a\u0430' } console.log(user.name !== undefined) \/\/ true console.log(user.age === undefined) \/\/ true <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/object\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Statements\/for...in\" rel=\"nofollow\">MDN \u2014 for&#8230;in<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Object\/hasOwnProperty\" rel=\"nofollow\">MDN \u2014 hasOwnProperty<\/a><\/p>\n<h3>123. \u041a\u0430\u043a \u043f\u0435\u0440\u0435\u0431\u0440\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430?<\/h3>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0446\u0438\u043a\u043b for&#8230;in \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0441 \u043c\u0435\u0442\u043e\u0434\u043e\u043c hasOwnProperty() \u0434\u043b\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0443\u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432.<\/p>\n<pre><code class=\"javascript\">const user = {     name: '\u0412\u0430\u043d\u044c\u043a\u0430',     age: 30 }  for (key in user) {     if (user.hasOwnProperty(key)) {         console.log(\\`&#36;{key}: &#36;{user[key]}\\`) \/\/ name: \u0412\u0430\u043d\u044c\u043a\u0430 age: 30     } } <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/object\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Statements\/for...in\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>124. \u041a\u0430\u043a \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0447\u0442\u043e \u043e\u0431\u044a\u0435\u043a\u0442 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0443\u0441\u0442\u044b\u043c?<\/h3>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c, \u0442\u0440\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430.<br \/>  \u041c\u0435\u0442\u043e\u0434 Object.entries()<\/p>\n<pre><code class=\"javascript\">const obj = {} console.log(Object.entries(obj).length === 0) \/\/ true \/\/ \u0434\u043b\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0438\u0437 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 Date const obj2 = new Date() console.log(Object.entries(obj2).length === 0 &amp;&amp; obj2.constructor === Object) \/\/ false <\/code><\/pre>\n<p>  \u041c\u0435\u0442\u043e\u0434 Object.keys()<\/p>\n<pre><code class=\"javascript\">const obj = {} console.log(Object.keys(obj).length === 0) \/\/ true \/\/ \u0434\u043b\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0438\u0437 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 Date const obj2 = new Date() console.log(Object.keys(obj2).length === 0 &amp;&amp; obj2.constructor === Object) \/\/ false <\/code><\/pre>\n<p>  \u0426\u0438\u043a\u043b for&#8230;in \u0438 \u043c\u0435\u0442\u043e\u0434 Object.hasOwnProperty()<\/p>\n<pre><code class=\"javascript\">const obj = {} const obj2 = {key: 'value'}  const isEmpty = obj =&gt; {     for (key in obj) {         if (obj.hasOwnProperty(key)) return false     }     return true }  console.log(isEmpty(obj)) \/\/ true console.log(isEmpty(obj2)) \/\/ false <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/object\" rel=\"nofollow\">JSR \u2014 \u041e\u0431\u044a\u0435\u043a\u0442\u044b<\/a><br \/>  <a href=\"https:\/\/learn.javascript.ru\/keys-values-entries\" rel=\"nofollow\">JSR \u2014 Object.keys, values, entries<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Object\/entries\" rel=\"nofollow\">MDN \u2014 Object.entries<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Object\/keys\" rel=\"nofollow\">MDN \u2014 Object.keys<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Statements\/for...in\" rel=\"nofollow\">MDN \u2014 for&#8230;in<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Object\/hasOwnProperty\" rel=\"nofollow\">MDN \u2014 Object.hasOwnProperty<\/a><\/p>\n<h3>125. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043e\u0431\u044a\u0435\u043a\u0442 arguments?<\/h3>\n<p>  arguments \u2014 \u044d\u0442\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 (\u043f\u0441\u0435\u0432\u0434\u043e\u043c\u0430\u0441\u0441\u0438\u0432), \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b:<\/p>\n<pre><code class=\"javascript\">function sum () {     let total = 0     for (let i = 0; i &lt; arguments.length; i++) {         total += arguments[i]     }     return total      \/\/ \u0438\u043b\u0438     let total = 0     for (const i of arguments) {         total += i     }     return total      \/\/ \u0438\u043b\u0438     return Array.from(arguments).reduce((acc, cur) =&gt; acc + cur)  }  sum(1, 2, 3) \/\/ 6 <\/code><\/pre>\n<p>  \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0441\u0442\u0440\u0435\u043b\u043e\u0447\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 arguments. \u0412\u043c\u0435\u0441\u0442\u043e arguments \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 rest\u2026 (\u043f\u0440\u043e\u0447\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u043a \u0432 \u043e\u0431\u044b\u0447\u043d\u044b\u0445, \u0442\u0430\u043a \u0438 \u0432 \u0441\u0442\u0440\u0435\u043b\u043e\u0447\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445:<\/p>\n<pre><code class=\"javascript\">const sum = (...rest) =&gt; rest.reduce((acc, cur) =&gt; acc + cur)  sum(1, 2, 3) \/\/ 6 <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/arguments-pseudoarray\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Functions\/arguments\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>126. \u041a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u0443\u044e \u0431\u0443\u043a\u0432\u0443 \u0441\u0442\u0440\u043e\u043a\u0438 \u0437\u0430\u0433\u043b\u0430\u0432\u043d\u043e\u0439?<\/h3>\n<p>  \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u043e\u0432 charAt(), toUpperCase() \u0438 slice():<\/p>\n<pre><code class=\"javascript\">String.prototype.capitilize = function () {     return this.charAt(0).toUpperCase() + this.slice(1) }  console.log('hello'.capitilize()) \/\/ Hello <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/string\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/String\/charAt\" rel=\"nofollow\">MDN \u2014 charAt<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/String\/toUpperCase\" rel=\"nofollow\">MDN \u2014 toUpperCase<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/String\/slice\" rel=\"nofollow\">MDN \u2014 slice<\/a><\/p>\n<h3>127. \u041a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0434\u0430\u0442\u0443?<\/h3>\n<p>  \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 Date \u0438\u043b\u0438 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430 Intl.DateTimeFormat:<\/p>\n<pre><code class=\"javascript\">console.log(new Date().toLocaleDateString()) \/\/ 02.09.2020  console.log(new Intl.DateTimeFormat(     'ru-Ru',     {         weekday: 'long',         day: 'numeric',         month: 'long',         year: 'numeric'     } ).format(new Date())) \/\/ \u0441\u0440\u0435\u0434\u0430, 2 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f 2020 \u0433. <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/date\" rel=\"nofollow\">JSR \u2014 Date<\/a><br \/>  <a href=\"https:\/\/learn.javascript.ru\/intl\" rel=\"nofollow\">JSR = Intl<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Date\" rel=\"nofollow\">MDN \u2014 Date<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Intl\/DateTimeFormat\" rel=\"nofollow\">MDN \u2014 Intl.DateTimeFormat<\/a><\/p>\n<h3>128. \u041a\u0430\u043a \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0434\u0432\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 Date?<\/h3>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u043d\u0435 \u0441\u0430\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u043e\u043c getTime():<\/p>\n<pre><code class=\"javascript\">const d1 = new Date() const d2 = new Date(d1)  console.log(d1.getTime() === d2.getTime()) \/\/ true console.log(d1 === d2) \/\/ false <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/date\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Date\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>129. \u041a\u0430\u043a \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0447\u0442\u043e \u0441\u0442\u0440\u043e\u043a\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438?<\/h3>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 startsWith():<\/p>\n<pre><code class=\"javascript\">console.log('Good morning'.startsWith('Good')) \/\/ true console.log('Good morning'.startsWith('morning')) \/\/ false <\/code><\/pre>\n<p>  \u041f\u043e \u0434\u0430\u043d\u043d\u044b\u043c <a href=\"https:\/\/caniuse.com\/#feat=mdn-javascript_builtins_string_startswith\" rel=\"nofollow\">CanIUse<\/a> \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u043e\u0447\u0442\u0438 94% \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u0432<\/p>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/string\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/String\/startsWith\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>130. \u041a\u0430\u043a \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432 \u0441\u0442\u0440\u043e\u043a\u0435?<\/h3>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b trimStart() (\u043d\u0430\u0447\u0430\u043b\u043e \u0441\u0442\u0440\u043e\u043a\u0438), trimEnd() (\u043a\u043e\u043d\u0435\u0446 \u0441\u0442\u0440\u043e\u043a\u0438) \u0438 trim() (\u043d\u0430\u0447\u0430\u043b\u043e \u0438 \u043a\u043e\u043d\u0435\u0446 \u0441\u0442\u0440\u043e\u043a\u0438):<\/p>\n<pre><code class=\"javascript\">console.log('  hello world   '.trim()) \/\/ hello world <\/code><\/pre>\n<p>  trim \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0434\u043b\u044f \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 \u0441\u043b\u043e\u0432\u0430\u043c\u0438. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u043c replace() \u0438 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c:<\/p>\n<pre><code class=\"javascript\">console.log('hello   world'.replace(\/s+\/, ' ')) \/\/ hello world \/\/ \u043c\u043e\u0436\u043d\u043e \u0443\u0442\u043e\u0447\u043d\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432 console.log('hello   world'.replace(\/s{2,}\/, ' ')) \/\/ hello world console.log('key   value'.replace(\/s{2,}\/, ' -&gt; ')) \/\/ key -&gt; value <\/code><\/pre>\n<p>  \u041f\u043e \u0434\u0430\u043d\u043d\u044b\u043c <a href=\"https:\/\/caniuse.com\/#feat=mdn-javascript_builtins_string_trimstart\" rel=\"nofollow\">CanIUse<\/a> \u043c\u0435\u0442\u043e\u0434\u044b trimStart() \u0438 trimEnd() \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 93% \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u0432.<\/p>\n<p>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/String\/Trim\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>131. \u041a\u0430\u043a \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0432 \u043e\u0431\u044a\u0435\u043a\u0442?<\/h3>\n<p>  \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u0432\u0430 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442:<\/p>\n<pre><code class=\"javascript\">const obj = {     name: '\u0412\u0430\u043d\u044c\u043a\u0430',     age: 30 } <\/code><\/pre>\n<p>  \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u043d\u0435\u0433\u043e \u043d\u043e\u0432\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u043b\u0438\u0431\u043e \u0442\u043e\u0447\u0435\u0447\u043d\u0443\u044e, \u043b\u0438\u0431\u043e \u0441\u043a\u043e\u0431\u043e\u0447\u043d\u0443\u044e \u043d\u043e\u0442\u0430\u0446\u0438\u044e:<\/p>\n<pre><code class=\"javascript\">obj.job = '\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a' obj['job'] = '\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a' <\/code><\/pre>\n<p>  \u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u043e\u0442\u043b\u0438\u0447\u0438\u0439 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u043a\u043e\u0431\u043e\u0447\u043d\u043e\u0439 \u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0439 \u043a\u043b\u044e\u0447 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0447\u0438\u0441\u043b\u043e\u043c:<\/p>\n<pre><code class=\"javascript\">const obj = {} obj[1] = '\u043e\u0434\u0438\u043d' console.log(obj) \/\/ { 1: '\u043e\u0434\u0438\u043d' } obj.2 = '\u0434\u0432\u0430' \/\/ SyntaxError: Unexpected number <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/object\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Object\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>132. \u042f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 !&#8212; \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c?<\/h3>\n<p>  \u041d\u0435\u0442, \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f. \u042d\u0442\u043e \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044f \u0434\u0432\u0443\u0445 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432: \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430! (\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043d\u0435) \u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u2014 (\u0434\u0435\u043a\u0440\u0435\u043c\u0435\u043d\u0442). \u0415\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441 \u043a\u0430\u043a\u0438\u043c-\u043b\u0438\u0431\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c, \u0442\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u043e \u043d\u0430 \u0435\u0434\u0438\u043d\u0438\u0446\u0443, \u0437\u0430\u0442\u0435\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u043e \u0432 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0442\u0438\u043f \u0438 \u0438\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e:<\/p>\n<pre><code class=\"javascript\">const fun = val =&gt; !--val const a = 1 const b = 2 console.log(fun(a)) \/\/ !0 -&gt; not false -&gt; true console.log(fun(b)) \/\/ !1 -&gt; not true -&gt; false <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/operators\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Operators\/Logical_NOT\" rel=\"nofollow\">MDN \u2014 Logical NOT<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Operators\/Decrement\" rel=\"nofollow\">MDN \u2014 Decrement<\/a><\/p>\n<h3>133. \u041a\u0430\u043a \u043f\u0440\u0438\u0441\u0432\u043e\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e?<\/h3>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 || (\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0438\u043b\u0438):<\/p>\n<pre><code class=\"javascript\">const a = b || 'default' <\/code><\/pre>\n<p>  \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 a \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 default \u0432 \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 b \u0431\u0443\u0434\u0435\u0442 \u043b\u043e\u0436\u043d\u044b\u043c (false, undefined, null, NaN, 0, &#187;).<br \/>  \u0415\u0441\u043b\u0438 \u0440\u0435\u0447\u044c \u0438\u0434\u0435\u0442 \u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0442\u043e \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0441\u0432\u043e\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"javascript\">const greet = (name = '\u043d\u0435\u0437\u043d\u0430\u043a\u043e\u043c\u0435\u0446') =&gt; \\`\u041f\u0440\u0438\u0432\u0435\u0442, &#36;{name}!\\` console.log(greet('\u0412\u0430\u043d\u044c\u043a\u0430')) \/\/ \u041f\u0440\u0438\u0432\u0435\u0442, \u0412\u0430\u043d\u044c\u043a\u0430! console.log(greet()) \/\/ \u041f\u0440\u0438\u0432\u0435\u0442, \u043d\u0435\u0437\u043d\u0430\u043a\u043e\u043c\u0435\u0446! <\/code><\/pre>\n<p>  \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439:<\/p>\n<pre><code class=\"javascript\">const sum = (a = 1, b = a + 2) =&gt; a + b console.log(sum()) \/\/ 4 <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/operators\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Operators\/Logical_OR\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>134. \u041a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043c\u043d\u043e\u0433\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443?<\/h3>\n<p>  \u0420\u0430\u043d\u044c\u0448\u0435 \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u043b\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a (\u043a\u043e\u043d\u043a\u0430\u0442\u0435\u043d\u0430\u0446\u0438\u044f \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 \u0441\u0442\u0440\u043e\u043a\u0438):<\/p>\n<pre><code class=\"javascript\">const str =     '\u0410\u0437 \u0435\u0441\u043c\u044c' + ' ' +     '\u043e\u0447\u0435\u043d\u044c \u0434\u043b\u0438\u043d\u043d\u0430\u044f' + ' ' +     '\u0441\u0442\u0440\u043e\u043a\u0430!'  \/\/ \u0438\u043b\u0438 const str = '\u0410\u0437 \u0435\u0441\u043c\u044c a  \u043e\u0447\u0435\u043d\u044c \u0434\u043b\u0438\u043d\u043d\u0430\u044f  \u0441\u0442\u0440\u043e\u043a\u0430!' console.log(str) \/*     \u0410\u0437 \u0435\u0441\u043c\u044c     \u043e\u0447\u0435\u043d\u044c \u0434\u043b\u0438\u043d\u043d\u0430\u044f     \u0441\u0442\u0440\u043e\u043a\u0430! *\/ <\/code><\/pre>\n<p>  \u0421\u0435\u0439\u0447\u0430\u0441 \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u044e\u0442 \u0442\u0430\u043a (\u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0439 \u043b\u0438\u0442\u0435\u0440\u0430\u043b):<\/p>\n<pre><code class=\"javascript\">const str =     \\`\u0410\u0437 \u0435\u0441\u043c\u044c     \u043e\u0447\u0435\u043d\u044c \u0434\u043b\u0438\u043d\u043d\u0430\u044f     \u0441\u0442\u0440\u043e\u043a\u0430!\\` <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/string\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/template_strings\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>135. \u041c\u043e\u0436\u0435\u043c \u043b\u0438 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c?<\/h3>\n<p>  \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u2014 \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043c\u044b \u0432\u043f\u043e\u043b\u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u043c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u0440\u0443\u0433\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f:<\/p>\n<pre><code class=\"javascript\">function someFun () {} someFun.somePropName = 'somePropValue'  console.log(someFun.somePropName) \/\/ somePropValue \/\/ \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e console.log(someFun.name) \/\/ someFun  const sum = (x, y) =&gt; x + y console.log(sum(1, 2)) \/\/ 3  sum.curry = x =&gt; y =&gt; x + y console.log(sum.curry(1)(2)) \/\/ 3 <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/function-basics\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/%D0%A1%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8C\/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>136. \u041a\u0430\u043a \u0443\u0437\u043d\u0430\u0442\u044c, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043e\u0436\u0438\u0434\u0430\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044f?<\/h3>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e length:<\/p>\n<pre><code class=\"javascript\">const sum = (a, b, c) =&gt; +a + +b + +c console.log(sum(1, '1', true)) \/\/ 3 console.log(sum(0, '', [])) \/\/ 0  console.log(sum.length) \/\/ 3 <\/code><\/pre>\n<p>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Function\/length\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>137. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043f\u043e\u043b\u0438\u0444\u0438\u043b (polyfill)?<\/h3>\n<p>  \u041f\u043e\u043b\u0438\u0444\u0438\u043b\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e JavaScript-\u043a\u043e\u0434\u0430 \u0432 \u0441\u0442\u0430\u0440\u044b\u0445 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u0445. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0437\u0430 \u0441\u0447\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u043e\u0432\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u044f\u0437\u044b\u043a\u0430 \u043d\u0430 \u0441\u0442\u0430\u0440\u043e\u043c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0435. \u0421\u0430\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0432 \u0441\u0442\u0430\u0440\u044b\u0439 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0440\u0430\u043d\u0441\u043f\u0438\u043b\u044f\u0446\u0438\u0435\u0439. \u0421\u0430\u043c\u044b\u043c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u043c \u0442\u0440\u0430\u043d\u0441\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c JavaScript-\u043a\u043e\u0434\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f Babel.<br \/>  \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 JavaScript \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 Promise.allSettled(), \u043a\u043e\u0442\u043e\u0440\u044b\u0439, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 Promise.all(), \u043d\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0438 \u043b\u044e\u0431\u043e\u0433\u043e \u0438\u0437 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0445 \u0435\u043c\u0443 \u043f\u0440\u043e\u043c\u0438\u0441\u043e\u0432.<br \/>  \u041e\u0434\u043d\u0430\u043a\u043e, \u043d\u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0438\u0439 \u0434\u0435\u043d\u044c \u0435\u0433\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u043c\u0438 \u043f\u043e \u0434\u0430\u043d\u043d\u044b\u043c <a href=\"https:\/\/caniuse.com\/#feat=mdn-javascript_builtins_promise_allsettled\" rel=\"nofollow\">CanIUse<\/a> \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 80%, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0443\u0436\u0435\u043d \u043f\u043e\u043b\u0438\u0444\u0438\u043b:<\/p>\n<pre><code class=\"javascript\">const promise1 = Promise.resolve('promise1') const promise2 = Promise.reject('promise2') const promise3 = Promise.resolve('promise3')  \/\/ \u0432\u043e\u0442 \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 Promise.allSettled() Promise     .allSettled([promise1, promise2, promise3])     .then(console.log) \/*     [         {status: &quot;fulfilled&quot;, value: &quot;promise1&quot;},         {status: &quot;rejected&quot;, reason: &quot;promise2&quot;},         {status: &quot;fulfilled&quot;, value: &quot;promise3&quot;},     ] *\/  \/\/ \u0430 \u0432\u043e\u0442 \u0435\u0433\u043e \u043f\u043e\u043b\u0438\u0444\u0438\u043b \/\/ \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Promise.all() = 94% const allSettled = promises =&gt; {     const wrappedPromises = promises         .map(p =&gt; Promise.resolve(p)         .then(             val =&gt; ({                 status: 'fulfilled',                 value: val             }),             err =&gt; ({                 status: 'rejected',                 reason: err             })))     return Promise.all(wrappedPromises) } allSettled([promise1,promise2,promise3])     .then(console.log) <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/polyfills\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Glossary\/Polyfill\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>138. \u0414\u043b\u044f \u0447\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b continue \u0438 break?<\/h3>\n<p>  \u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 break \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0432\u044b\u0445\u043e\u0434\u0430 \u0438\u0437 \u0446\u0438\u043a\u043b\u0430. \u041f\u043e\u0441\u043b\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043a\u043e\u0434 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0434\u0430\u043b\u044c\u0448\u0435:<\/p>\n<pre><code class=\"javascript\">const obj = {     1: 'Everything',     2: 'is',     3: 'impossible' }  for (key in obj) {     if (obj[key] === 'impossible') break      console.log(obj[key]) \/\/ Everything is }  console.log('possible') \/\/ possible <\/code><\/pre>\n<p>  \u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 continue \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438:<\/p>\n<pre><code class=\"javascript\">const obj = {     1: 'Everything',     2: 'is',     3: 'impossible',     4: 'possible' }  for (key in obj) {     if (obj[key] === 'impossible') continue      console.log(obj[key]) \/\/ Everything is possible } <\/code><\/pre>\n<p>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Statements\/break\" rel=\"nofollow\">MDN \u2014 break<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Statements\/continue\" rel=\"nofollow\">MDN \u2014 continue<\/a><\/p>\n<h3>139. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043c\u0435\u0442\u043a\u0430 (label)?<\/h3>\n<p>  \u041c\u0435\u0442\u043a\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c \u0446\u0438\u043a\u043b\u044b \u0438 \u0431\u043b\u043e\u043a\u0438 \u043a\u043e\u0434\u0430. \u041e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0432\u044b\u0445\u043e\u0434\u0430 \u0438\u0437 \u0446\u0438\u043a\u043b\u0430 \u0438\u043b\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430:<\/p>\n<pre><code class=\"javascript\">loop1: for (let i = 0; i &lt; 3; i++) {     loop2:     for (let j = 0; j &lt; 3; j++) {         if (i === j) continue loop1          console.log(\\`i = &#36;{i}, j = &#36;{j}\\`)     } }  \/*     i = 1, j = 0     i = 2, j = 0     i = 2, j = 1 *\/ <\/code><\/pre>\n<p>  \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u043a \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u043b\u043e\u0445\u043e\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u043e\u0439.<\/p>\n<p>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Statements\/label\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>140. \u0412 \u0447\u0435\u043c \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043a\u043e\u0434\u0430?<\/h3>\n<p>  \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0432 \u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0438\u043b\u0438 \u0444\u0443\u043a\u043d\u0446\u0438\u0438. \u042d\u0442\u043e \u0434\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430:<\/p>\n<ul>\n<li>\u0414\u0435\u043b\u0430\u0435\u0442 \u043a\u043e\u0434 \u0447\u0438\u0441\u0442\u044b\u043c<\/li>\n<li>\u0412\u0441\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435<\/li>\n<li>\u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445<\/li>\n<li>\u041f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0435\u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445<\/li>\n<\/ul>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/variables\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/%D0%A1%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8C\/Variable\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>141. \u0412 \u0447\u0435\u043c \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043f\u0440\u0438 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0438?<\/h3>\n<p>  \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f. \u042d\u0442\u043e \u0434\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430:<\/p>\n<ul>\n<li>\u0414\u0435\u043b\u0430\u0435\u0442 \u043a\u043e\u0434 \u0447\u0438\u0441\u0442\u044b\u043c<\/li>\n<li>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0438 \u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435<\/li>\n<li>\u041f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u0438\u0435 \u043d\u0435\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f undefined<\/li>\n<\/ul>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/variables\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/%D0%A1%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8C\/Variable\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>142. \u041d\u0430\u0437\u043e\u0432\u0438\u0442\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u043e\u0431\u044a\u0435\u043a\u0442\u0430<\/h3>\n<p>  \u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432\u043c\u0435\u0441\u0442\u043e \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 new Object() \u0440\u0435\u043a\u043c\u043e\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043a\u043e\u0431\u043e\u0447\u043d\u0443\u044e \u043d\u043e\u0442\u0430\u0446\u0438\u044e {}. \u0422\u0430\u043a\u0436\u0435 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u0438\u043f\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<ul>\n<li>\u0441\u0442\u0440\u043e\u043a\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, &#187; \u0432\u043c\u0435\u0441\u0442\u043e new String()<\/li>\n<li>\u0447\u0438\u0441\u043b\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, 0 \u0432\u043c\u0435\u0441\u0442\u043e new Number()<\/li>\n<li>\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, false \u0432\u043c\u0435\u0441\u0442\u043e new Boolean()<\/li>\n<li>[] \u0432\u043c\u0435\u0441\u0442\u043e new Array()<\/li>\n<li>\/\/ \u0432\u043c\u0435\u0441\u0442\u043e new RegExp()<\/li>\n<li>function (){} \u0432\u043c\u0435\u0441\u0442\u043e new Function()<\/li>\n<\/ul>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/object\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Object\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>143. \u041a\u0430\u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 JSON?<\/h3>\n<p>  JSON-\u043c\u0430\u0441\u0441\u0438\u0432 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 JSON-\u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<pre><code class=\"javascript\">[     { &quot;name&quot;: &quot;\u0412\u0430\u043d\u044c\u043a\u0430&quot;, &quot;age&quot;: 30 },     { &quot;name&quot;: &quot;\u041f\u0435\u0442\u044c\u043a\u0430&quot;, &quot;age&quot;: 20 } ] <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/json\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/JSON\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>144. \u041a\u0430\u043a \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0443\u044e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0435 \u0446\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0432 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435?<\/h3>\n<p>  \u0422\u0430\u043a\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u043e\u0432 Math.random() \u0438 Math.floor() \u043e\u0431\u044a\u0435\u043a\u0442\u0430 Math:<\/p>\n<pre><code class=\"javascript\">const getRandomInteger = (min, max) =&gt; Math.floor(min + Math.random() * (max + 1 - min)) <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/number\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Math\/random\" rel=\"nofollow\">MDN \u2014 Math.random()<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Math\/floor\" rel=\"nofollow\">MDN \u2014 Math.floor()<\/a><\/p>\n<h3>145. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 tree shaking (\u0432\u0441\u0442\u0440\u044f\u0445\u0438\u0432\u0430\u043d\u0438\u0435 \u0434\u0435\u0440\u0435\u0432\u0430)?<\/h3>\n<p>  Tree shaking \u2014 \u044d\u0442\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439. \u0422\u0430\u043a\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u0432 \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0441\u0431\u043e\u0440\u043a\u0443 (\u0431\u0430\u043d\u0434\u043b). \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u0431\u043e\u0440\u0449\u0438\u043a \u043c\u043e\u0434\u0443\u043b\u0435\u0439 (\u0431\u0430\u043d\u0434\u043b\u0435\u0440) \u043c\u043e\u0433 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f, \u0430 \u043a\u0430\u043a\u0438\u0435 \u043d\u0435\u0442, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 ES6 \u043c\u043e\u0434\u0443\u043b\u044f\u0445. \u0414\u0430\u043d\u043d\u0430\u044f \u0442\u0435\u0445\u043d\u0438\u043a\u0430 \u0431\u044b\u043b\u0430 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0431\u0430\u043d\u0434\u043b\u0435\u0440\u043e\u043c Rollup.<\/p>\n<p>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Glossary\/Tree_shaking\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>146. \u0414\u043b\u044f \u0447\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f tree shaking (\u0432\u0441\u0442\u0440\u044f\u0445\u0438\u0432\u0430\u043d\u0438\u0435 \u0434\u0435\u0440\u0435\u0432\u0430)?<\/h3>\n<p>  Tree shaking \u043c\u043e\u0436\u0435\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0431\u043e\u0440\u043a\u0438 (\u0431\u0430\u043d\u0434\u043b\u0430) \u0437\u0430 \u0441\u0447\u0435\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0438\u0437 \u043d\u0435\u0435 \u043a\u043e\u0434\u0430 \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439. \u0427\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0431\u043e\u0440\u043a\u0438, \u0442\u0435\u043c \u0432\u044b\u0448\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. Tree shaking \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0432 \u0442\u0430\u043a\u0438\u0445 \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0430\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439, \u043a\u0430\u043a Rollup \u0438 Webpack.<\/p>\n<p>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Glossary\/Tree_shaking\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>147. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435?<\/h3>\n<p>  \u0420\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u2014 \u044d\u0442\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u044e\u0449\u0430\u044f \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d. \u042d\u0442\u043e\u0442 \u0448\u0430\u0431\u043b\u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u0441\u0442\u0440\u043e\u043a\u0435. \u0420\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0448\u0438\u0440\u043e\u043a\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u0438\u043c\u0438 \u044f\u0437\u044b\u043a\u0430\u043c\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043f\u043e\u0438\u0441\u043a\u0430 \u0438 \u0437\u0430\u043c\u0435\u043d\u044b \u0442\u0435\u043a\u0441\u0442\u0430. \u041e\u0431\u0449\u0438\u0439 \u0448\u0430\u0431\u043b\u043e\u043d \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"javascript\">\/\u0448\u0430\u0431\u043b\u043e\u043d\/\u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 <\/code><\/pre>\n<p>  \u041f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<pre><code class=\"javascript\">const regex = \/java\/i const str = 'JavaScript' console.log(regex.test(str)) \/\/ true <\/code><\/pre>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 RegExp:<\/p>\n<pre><code class=\"javascript\">const regex = new RegExp('java', 'i') const str = 'JavaScript' console.log(regex.test(str)) \/\/ true <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/regexp-methods\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/RegExp\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>148. \u041a\u0430\u043a\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0445?<\/h3>\n<p>  \u0412 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u0432\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u0430: exec() \u0438 test().<br \/>  \u041c\u0435\u0442\u043e\u0434 exec() \u0438\u0449\u0435\u0442 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u0441 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c \u0432 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u043e\u0439 \u0435\u043c\u0443 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u0441\u0442\u0440\u043e\u043a\u0435. \u041f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0442\u043e\u0433\u043e, \u0438\u043c\u0435\u0435\u0442 \u043b\u0438 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0444\u043b\u0430\u0433 g. \u0415\u0441\u043b\u0438 \u043d\u0435\u0442, \u0442\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u043e\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435. \u0415\u0441\u043b\u0438 \u0444\u043b\u0430\u0433 g \u0435\u0441\u0442\u044c, \u0442\u043e:<\/p>\n<ul>\n<li>\u0412\u044b\u0437\u043e\u0432 exec() \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u043e\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442 \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u0433\u043e \u0432 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0435 lastIndex.<\/li>\n<li>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0442\u0430\u043a\u043e\u0439 \u0432\u044b\u0437\u043e\u0432 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043f\u043e\u0438\u0441\u043a \u0441 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 lastIndex, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442 \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u0433\u043e \u0432 lastIndex.<\/li>\n<li>\u0415\u0441\u043b\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u0442, \u0442\u043e exec() \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 null, \u0430 \u0434\u043b\u044f lastIndex \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 0.<\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"javascript\">const str = 'Java \u0438 JavaScript - \u0440\u0430\u0437\u043d\u044b\u0435 \u044f\u0437\u044b\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f' const regex = \/Java\/g  let result while (result = regex.exec(str)) {     console.log(         \\`\u041d\u0430\u0439\u0434\u0435\u043d\u043e &#36;{result[0]} \u043d\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 &#36;{result.index}\\`     ) } \/*     \u041d\u0430\u0439\u0434\u0435\u043d\u043e Java \u043d\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 0     \u041d\u0430\u0439\u0434\u0435\u043d\u043e Java \u043d\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 7 *\/ <\/code><\/pre>\n<p>  \u041c\u0435\u0442\u043e\u0434 test() \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e, \u043d\u0430\u0439\u0434\u0435\u043d\u043e \u043b\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u0432 \u0441\u0442\u0440\u043e\u043a\u0435:<\/p>\n<pre><code class=\"javascript\">const str = '\u042f \u043b\u044e\u0431\u043b\u044e JavaScript'  console.log(     \/\u042f \u043b\u044e\u0431\u043b\u044e\/.test(str) \/\/ true ) <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/regexp-methods\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/RegExp\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>149. \u041a\u0430\u043a\u0438\u0435 \u0444\u043b\u0430\u0433\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0445?<\/h3>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<tbody>\n<tr>\n<th>\u0424\u043b\u0430\u0433<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td>g<\/td>\n<td>\u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435<\/td>\n<\/tr>\n<tr>\n<td>i<\/td>\n<td>\u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u043f\u0440\u0438 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438<\/td>\n<\/tr>\n<tr>\n<td>m<\/td>\n<td>\u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u0441\u0442\u0440\u043e\u043a\u0430\u043c<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<pre><code class=\"javascript\">const regex = \/([\u0430-\u044f\u0451]+)s([\u0430-\u044f\u0451]+)\/i const str = '\u0418\u0432\u0430\u043d \u0418\u0432\u0430\u043d\u043e\u0432' const newStr = str.replace(regex, '&#36;2 &#36;1') console.log(newStr) \/\/ \u0418\u0432\u0430\u043d\u043e\u0432 \u0418\u0432\u0430\u043d <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/regexp-methods\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/RegExp\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>150. \u041a\u0430\u043a\u0438\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0445?<\/h3>\n<p>  \u0421\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0432 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0445, \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0433\u0440\u0443\u043f\u043f.<br \/>  \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u044b\u0435 \u043a\u043b\u0430\u0441\u0441\u044b:  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<tbody>\n<tr>\n<th>\u0421\u0438\u043c\u0432\u043e\u043b<\/th>\n<th>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td>\\.<\/td>\n<td>\u043b\u044e\u0431\u043e\u0439 \u0441\u0438\u043c\u0432\u043e\u043b, \u0437\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c<\/td>\n<\/tr>\n<tr>\n<td>\\d<\/td>\n<td>\u0446\u0438\u0444\u0440\u0430<\/td>\n<\/tr>\n<tr>\n<td>\\D<\/td>\n<td>\u043d\u0435 \u0446\u0438\u0444\u0440\u0430<\/td>\n<\/tr>\n<tr>\n<td>\\w<\/td>\n<td>\u0441\u0438\u043c\u0432\u043e\u043b \u043b\u0430\u0442\u0438\u043d\u0438\u0446\u044b \u0438 \u043d\u0438\u0436\u043d\u0435\u0435 \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u0435<\/td>\n<\/tr>\n<tr>\n<td>\\W<\/td>\n<td>\u043d\u0435 \u0441\u0438\u043c\u0432\u043e\u043b \u043b\u0430\u0442\u0438\u043d\u0438\u0446\u044b \u0438 \u043d\u0438\u0436\u043d\u0435\u0435 \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u0435<\/td>\n<\/tr>\n<tr>\n<td>\\s<\/td>\n<td>\u043f\u0440\u043e\u0431\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0438\u043c\u0432\u043e\u043b<\/td>\n<\/tr>\n<tr>\n<td>\\S<\/td>\n<td>\u043d\u0435 \u043f\u0440\u043e\u0431\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0438\u043c\u0432\u043e\u043b<\/td>\n<\/tr>\n<tr>\n<td>\\<\/td>\n<td>\u044d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \\. \u2014 \u044d\u0442\u043e \u0442\u043e\u0447\u043a\u0430<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  \u041d\u0430\u0431\u043e\u0440\u044b \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432:  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<tbody>\n<tr>\n<th>\u0421\u0438\u043c\u0432\u043e\u043b<\/th>\n<th>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td>[\u0430-\u044f\u0451\u0410-\u042f\u0401]<\/td>\n<td>\u043b\u044e\u0431\u0430\u044f \u0431\u0443\u043a\u0432\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u0433\u043e \u0430\u043b\u0444\u0430\u0432\u0438\u0442\u0430<\/td>\n<\/tr>\n<tr>\n<td>[^\u0430-\u044f\u0451\u0410-\u042f\u0401]<\/td>\n<td>\u043b\u044e\u0431\u043e\u0439 \u0441\u0438\u043c\u0432\u043e\u043b, \u043a\u0440\u043e\u043c\u0435 \u0431\u0443\u043a\u0432 \u0440\u0443\u0441\u0441\u043a\u043e\u0433\u043e \u0430\u043b\u0444\u0430\u0432\u0438\u0442\u0430<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  \u0413\u0440\u0430\u043d\u0438\u0446\u044b:  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<tbody>\n<tr>\n<th>\u0421\u0438\u043c\u0432\u043e\u043b<\/th>\n<th>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td>^<\/td>\n<td>\u043d\u0430\u0447\u0430\u043b\u043e \u0441\u0442\u0440\u043e\u043a\u0438<\/td>\n<\/tr>\n<tr>\n<td>$<\/td>\n<td>\u043a\u043e\u043d\u0435\u0446 \u0441\u0442\u0440\u043e\u043a\u0438<\/td>\n<\/tr>\n<tr>\n<td>\\b<\/td>\n<td>\u0433\u0440\u0430\u043d\u0438\u0446\u0430 \u0441\u043b\u043e\u0432\u0430 \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u044b<\/td>\n<\/tr>\n<tr>\n<td>\\B<\/td>\n<td>\u0433\u0440\u0430\u043d\u0438\u0446\u0430 \u0441\u043b\u043e\u0432\u0430 \u043d\u0435\u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u044b<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  \u0413\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430:  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<tbody>\n<tr>\n<th>\u0421\u0438\u043c\u0432\u043e\u043b<\/th>\n<th>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td>(x)<\/td>\n<td>\u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 x, \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442\u0441\u044f<\/td>\n<\/tr>\n<tr>\n<td>(?:x)<\/td>\n<td>\u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 x, \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0435 \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442\u0441\u044f<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  \u041a\u0432\u0430\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b:  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<tbody>\n<tr>\n<th>\u0421\u0438\u043c\u0432\u043e\u043b<\/th>\n<th>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td>*<\/td>\n<td>\u043d\u043e\u043b\u044c \u0438 \u0431\u043e\u043b\u0435\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432<\/td>\n<\/tr>\n<tr>\n<td>+<\/td>\n<td>\u043e\u0434\u0438\u043d \u0438 \u0431\u043e\u043b\u0435\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432<\/td>\n<\/tr>\n<tr>\n<td>*? \u0438 +?<\/td>\n<td>\u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e * \u0438 +, \u043d\u043e \u0438\u0449\u0435\u0442\u0441\u044f \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435<\/td>\n<\/tr>\n<tr>\n<td>?<\/td>\n<td>\u043d\u043e\u043b\u044c \u0438\u043b\u0438 \u043e\u0434\u0438\u043d \u0441\u0438\u043c\u0432\u043e\u043b<\/td>\n<\/tr>\n<tr>\n<td>x(?=y)<\/td>\n<td>\u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 x, \u0435\u0441\u043b\u0438 \u0437\u0430 x \u0441\u043b\u0435\u0434\u0443\u0435\u0442 y<\/td>\n<\/tr>\n<tr>\n<td>x(?!y)<\/td>\n<td>\u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 x, \u0435\u0441\u043b\u0438 \u0437\u0430 x \u043d\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 y<\/td>\n<\/tr>\n<tr>\n<td>(?&lt;=y)x<\/td>\n<td>\u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 x, \u0435\u0441\u043b\u0438 x \u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0443\u0435\u0442 y<\/td>\n<\/tr>\n<tr>\n<td>(?!y)x<\/td>\n<td>\u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 x, \u0435\u0441\u043b\u0438 x \u043d\u0435 \u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0443\u0435\u0442 y<\/td>\n<\/tr>\n<tr>\n<td>x|y<\/td>\n<td>x \u0438\u043b\u0438 y<\/td>\n<\/tr>\n<tr>\n<td>x{n}<\/td>\n<td>n \u2014 \u0442\u043e\u0447\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e x<\/td>\n<\/tr>\n<tr>\n<td>x{n,}<\/td>\n<td>n \u2014 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e x<\/td>\n<\/tr>\n<tr>\n<td>x{n,m}<\/td>\n<td>n \u2014 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e x, m \u2014 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 (\u043e\u0442, \u0434\u043e)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/regexp-methods\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/RegExp\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>151. \u041a\u0430\u043a \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0442\u0438\u043b\u0438 HTML-\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430?<\/h3>\n<p>  \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043b\u0438\u0431\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 style, \u043b\u0438\u0431\u043e \u043f\u0440\u0438\u0441\u0432\u043e\u0438\u0432 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043a\u043b\u0430\u0441\u0441:<\/p>\n<pre><code class=\"javascript\">document     .querySelector(selector)     .style.property = value document     .querySelector('title')     .fontSize = '2rem'  document.querySelector(selector)     .className = 'class-name' document.querySelector(selector)     .classList.add('class-name') document.querySelector('button')     .classList.add('active') <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/styles-and-classes\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/HTML\/Global_attributes\/style\" rel=\"nofollow\">MDN \u2014 style<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/API\/Element\/className\" rel=\"nofollow\">MDN \u2014 className<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/API\/Element\/classList\" rel=\"nofollow\">MDN \u2014 classList<\/a><\/p>\n<h3>152. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 debugger (\u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a)?<\/h3>\n<p>  \u0412\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 debugger \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043b\u044e\u0431\u043e\u043c\u0443 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u043c\u0443 \u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0438 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u043c\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a (\u0442\u043e\u0447\u0435\u043a \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0430, \u0431\u0440\u0435\u043a\u043f\u043e\u0439\u043d\u0442\u043e\u0432). \u0415\u0441\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0432 \u0441\u0440\u0435\u0434\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d, \u0434\u0430\u043d\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0430:<\/p>\n<pre><code class=\"javascript\">const fun = () =&gt; {     \/\/ \u043c\u0430\u0433\u0438\u044f     debugger \/\/ \u0432 \u044d\u0442\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e     \/\/ \u043c\u0430\u0433\u0438\u044f } <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/debugging-chrome\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Statements\/debugger\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>153. \u0414\u043b\u044f \u0447\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 debugger (\u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0430)?<\/h3>\n<p>  \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0441 \u0446\u0435\u043b\u044c\u044e \u0432\u044b\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0447\u0438\u043d \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u041f\u043e\u0441\u043b\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u043e.<\/p>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/debugging-chrome\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Statements\/debugger\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>154. \u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432?<\/h3>\n<p>  \u041d\u0435\u0442, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u043c\u0435\u0442\u043e\u043a, \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043d\u0435\u043b\u044c\u0437\u044f:<\/p>\n<pre><code class=\"javascript\">const class = '\u041f\u0435\u0440\u0432\u044b\u0439 \u0440\u0430\u0437 \u0432 \u043f\u0435\u0440\u0432\u044b\u0439 \u043a\u043b\u0430\u0441\u0441' \/\/ SyntaxError: Unexpected token 'class' <\/code><\/pre>\n<p>  <\/p>\n<h3>155. \u041a\u0430\u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0448\u0438\u0440\u0438\u043d\u0443 \u0438 \u0432\u044b\u0441\u043e\u0442\u0443 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f?<\/h3>\n<p>  \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438. \u0412\u043e\u0442 \u043e\u0434\u0438\u043d \u0438\u0437 \u043d\u0438\u0445:<\/p>\n<pre><code class=\"javascript\">const getImgSize = src =&gt; {     const img = new Image()     img.src = src     img.addEventListener('load', () =&gt; console.log(\\`&#36;{img.width} x &#36;{img.height}\\`)) \/\/ 276 x 110     document.body.append(img) } getImgSize('http:\/\/www.google.com\/ intl\/en_ALL\/images\/logo.gif') <\/code><\/pre>\n<p>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/API\/HTMLImageElement\/Image\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>156. \u041a\u0430\u043a \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 HTTP-\u0437\u0430\u043f\u0440\u043e\u0441?<\/h3>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 XMLHttpRequest, \u043f\u0435\u0440\u0435\u0434\u0430\u0432 \u0435\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0443 open() \u0442\u0440\u0435\u0442\u0438\u0439 \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c false:<\/p>\n<pre><code class=\"javascript\">const getUsers = url =&gt; {     const xhr = new XMLHttpRequest()     xhr.open('GET', url, false)     xhr.send()     console.table(xhr.response)      const response = JSON.parse(xhr.response)     const template = \\`         &lt;table&gt;             &#36;{response.reduce((html, user) =&gt; html += \\`                 &lt;tr&gt;                     &lt;td&gt;&#36;{user.name}&lt;\/td&gt;                     &lt;td&gt;&#36;{user.username}&lt;\/td&gt;                     &lt;td&gt;&#36;{user.email}&lt;\/td&gt;                 &lt;\/tr&gt;\\`, '')}         &lt;table&gt;     \\`     document.body         .insertAdjacentHTML('beforeend', template) }  getUsers('https:\/\/jsonplaceholder. typicode.com\/users') <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/xmlhttprequest\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/%D0%A1%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8C\/XHR_(XMLHttpRequest)\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>157. \u041a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 HTTP-\u0437\u0430\u043f\u0440\u043e\u0441?<\/h3>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 fetch():<\/p>\n<pre><code class=\"javascript\">const getUsers = async url =&gt; {     const response = await fetch(url)     const data = await response.json()     console.table(data)      const template = \\`         &lt;table&gt;             &#36;{data.reduce((html, user) =&gt; html += \\`                 &lt;tr&gt;                     &lt;td&gt;&#36;{user.name}&lt;\/td&gt;                     &lt;td&gt;&#36;{user.username}&lt;\/td&gt;                     &lt;td&gt;&#36;{user.email}&lt;\/td&gt;                 &lt;\/tr&gt;\\`, '')}         &lt;table&gt;     \\`     document.body.insertAdjacentHTML('beforeend', template) }  getUsers('https:\/\/jsonplaceholder. typicode.com\/users') <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/fetch\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/API\/Fetch_API\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>158. \u041a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u0430\u0442\u0443 \u0432 \u043d\u0443\u0436\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435?<\/h3>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 toLocaleString():<\/p>\n<pre><code class=\"javascript\">console.log(     new Date().toLocaleString('ru-Ru', {         weekday: 'long',         year: 'numeric',         month: 'long',         day: 'numeric'     }) ) \/\/ \u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435, 6 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f 2020 \u0433. <\/code><\/pre>\n<p>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Date\/toLocaleString\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>159. \u041a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b?<\/h3>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432 scrollWidth, offsetWidth, clientWidth \u0438 scrollHeight, offsetHeight, clientHeight \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 document.body \u0438 document.documentElement:<\/p>\n<pre><code class=\"javascript\">const pageWidth = Math.max(     document.body.scrollWidth, document.documentElement.scrollWidth,     document.body.offsetWidth, document.documentElement.offsetWidth,     document.body.clientWidth, document.documentElement.clientWidth ) const pageHeight = Math.max(     document.body.scrollHeight, document.documentElement.scrollHeight,     document.body.offsetHeight, document.documentElement.offsetHeight,     document.body.clientHeight, document.documentElement.clientHeight ) const pageSize = {     width: pageWidth,     heigth: pageHeight } console.log(pageSize)  const pageCenter = {     centerX: pageWidth \/ 2,     centerY: pageHeight \/ 2 } console.log(pageCenter) <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/size-and-scroll\" rel=\"nofollow\">JSR<\/a><\/p>\n<h3>160. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0439 \u0438\u043b\u0438 \u0442\u0435\u0440\u043d\u0430\u0440\u043d\u044b\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440?<\/h3>\n<p>  \u0422\u0435\u0440\u043d\u0430\u0440\u043d\u044b\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u0437\u0430\u043f\u0438\u0441\u0438 \u0431\u043b\u043e\u043a\u0430 if&#8230;else:<\/p>\n<pre><code class=\"javascript\">let accesAllowed const age = propmt('\u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u043c \u043b\u0435\u0442?')  \/\/ if...else if (age &gt; 18) {     accesAllowed = true } else {     accessAllowed = false }  \/\/ \u0442\u0435\u0440\u043d\u0430\u0440\u043d\u044b\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 (age &gt; 18)     ? accesAllowed = true     : accessAllowed = false <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/ifelse\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Operators\/%D0%A3%D1%81%D0%BB%D0%BE%D0%B2%D0%BD%D1%8B%D0%B9_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>161. \u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u0438\u0437 \u0442\u0435\u0440\u043d\u0430\u0440\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432?<\/h3>\n<p>  \u0414\u0430, \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0442\u0435\u0440\u043d\u0430\u0440\u043d\u044b\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043e\u0439 \u0431\u043b\u043e\u043a\u0430 if&#8230;else if&#8230;else:<\/p>\n<pre><code class=\"javascript\">let accessAllowed const getAge = () =&gt; prompt('\u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u043c \u043b\u0435\u0442?')  \/\/ \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u043f\u0440\u0438\u043c\u0435\u0440 - \u043d\u0435 \u043d\u0430\u0434\u043e \u0442\u0430\u043a \u0434\u0435\u043b\u0430\u0442\u044c \/\/ if...else if...else const checkAge = (age = getAge()) =&gt; {     console.log(age)     if (isNaN(age)) {         Promise.resolve(alert('\u0412\u043e\u0437\u0440\u0430\u0441\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0447\u0438\u0441\u043b\u043e\u043c')).then(accessAllowed = false).then(checkAge)     } else if (age === null || age === '') {         Promise.resolve(alert('\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0432\u0430\u0448 \u0432\u043e\u0437\u0440\u0430\u0441\u0442')).then(accessAllowed = false).then(checkAge)     } else if (age &lt; 0) {         Promise.resolve(alert('\u0412\u043e\u0437\u0440\u0430\u0441\u0442 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043c\u0435\u043d\u044c\u0448\u0435 0')).then(accessAllowed = false).then(checkAge)     } else if (age &gt; 100) {         Promise.resolve(alert('\u0412\u043e\u0437\u0440\u0430\u0441\u0442 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 100')).then(accessAllowed = false).then(checkAge)     } else if (age &lt; 18) {         Promise.resolve(alert('\u0418\u0437\u0432\u0438\u043d\u0438\u0442\u0435, \u0432\u044b \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043e\u043b\u043e\u0434\u044b')).then(accessAllowed = false)     } else {         Promise.resolve(alert('\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c!')).then(accessAllowed = true)     }     console.log(accessAllowed) }  \/\/ \u0442\u0435\u0440\u043d\u0430\u0440\u043d\u044b\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 const checkAge = (age = getAge()) =&gt; {     isNaN(age)         ? Promise.resolve(alert('\u0412\u043e\u0437\u0440\u0430\u0441\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0447\u0438\u0441\u043b\u043e\u043c')).then(accessAllowed = false).then(checkAge)         : (age === null || age === '')           ? Promise.resolve(alert('\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0432\u0430\u0448 \u0432\u043e\u0437\u0440\u0430\u0441\u0442')).then(accessAllowed = false).then(checkAge)           : (age &lt; 0)             ? Promise.resolve(alert('\u0412\u043e\u0437\u0440\u0430\u0441\u0442 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043c\u0435\u043d\u044c\u0448\u0435 0')).then(accessAllowed = false).then(checkAge)             : (age &gt; 100)             ? Promise.resolve(alert('\u0412\u043e\u0437\u0440\u0430\u0441\u0442 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 100')).then(accessAllowed = false).then(checkAge)             : (age &lt; 18)                 ? Promise.resolve(alert('\u0418\u0437\u0432\u0438\u043d\u0438\u0442\u0435, \u0432\u044b \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043e\u043b\u043e\u0434\u044b')).then(accessAllowed = false)                 : Promise.resolve(alert('\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c!')).then(accessAllowed = true)     console.log(accessAllowed) } <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/ifelse\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Operators\/%D0%A3%D1%81%D0%BB%D0%BE%D0%B2%D0%BD%D1%8B%D0%B9_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>162. \u041a\u0430\u043a \u043d\u0430\u0447\u0430\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u043b\u043d\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b?<\/h3>\n<p>  \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438.<br \/>  \u0420\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0442\u0435\u0433 script \u043f\u0435\u0440\u0435\u0434 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0438\u043c \u0442\u0435\u0433\u043e\u043c body \u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u043c\u0443 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 defer:<\/p>\n<pre><code class=\"javascript\">&lt;body&gt;     ...     &lt;script src=&quot;script.js&quot;&gt;&lt;\/script&gt; &lt;\/body&gt;  &lt;!-- \u0438\u043b\u0438 --&gt; &lt;head&gt;     ...     &lt;script src=&quot;script.js&quot; defer&gt;&lt;\/script&gt; &lt;\/head&gt; <\/code><\/pre>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u0430\u0448 \u0441\u043a\u0440\u0438\u043f\u0442 \u2014 \u044d\u0442\u043e \u043c\u043e\u0434\u0443\u043b\u044c, \u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 defer, \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0430\u0442\u0440\u0438\u0431\u0443\u0442 type \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c module:<\/p>\n<pre><code class=\"javascript\">&lt;script src=&quot;script.js&quot; type=&quot;module&quot;&gt;&lt;\/script&gt; <\/code><\/pre>\n<p>  \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u0435\u0433\u0443 body \u0430\u0442\u0440\u0438\u0431\u0443\u0442 onload:<\/p>\n<pre><code class=\"javascript\">&lt;body onload=&quot;script()&quot;&gt;&lt;\/body&gt; <\/code><\/pre>\n<p>  \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u0434 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u044f load \u043e\u0431\u044a\u0435\u043a\u0442\u0430 window:<\/p>\n<pre><code class=\"javascript\">window.onload = () =&gt; console.log('\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u0430')  \/\/ \u0438\u043b\u0438 window.addEventListener('load', () =&gt; console.log('\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u0430')) <\/code><\/pre>\n<p>  \u0421\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0434\u043b\u044f document.body:<\/p>\n<pre><code class=\"javascript\">document.body.onload = () =&gt; console.log('\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u0430') <\/code><\/pre>\n<p>  <\/p>\n<h3>163. \u0412 \u0447\u0435\u043c \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 __proto__ \u0438 prototype?<\/h3>\n<p>  \u0421\u0432\u043e\u0439\u0441\u0442\u0432\u043e __proto__ (\u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0435 \u0441\u043a\u0440\u044b\u0442\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e [[Prototype]]) \u2014 \u044d\u0442\u043e \u043e\u0431\u044a\u0435\u043a\u0442, \u043e\u0442 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u043e\u043b\u044f \u0438 \u043c\u0435\u0442\u043e\u0434\u044b. \u0410 prototype \u2014 \u044d\u0442\u043e \u043e\u0431\u044a\u0435\u043a\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f __proto__ \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 new:<\/p>\n<pre><code class=\"javascript\">class Person {     constructor(firstName, secondName) {         this.firstName = firstName         this.secondName = secondName     }     getFullName() {         return \\`&#36;{this.firstName} &#36;{this.secondName}\\`     }  }  const user = new Person('\u0418\u0432\u0430\u043d', '\u0418\u0432\u0430\u043d\u043e\u0432') console.log(user.getFullName()) \/\/ \u0418\u0432\u0430\u043d \u0418\u0432\u0430\u043d\u043e\u0432 console.log(user.__proto__.getFullName === Person.prototype.getFullName) \/\/ true console.log(Person.prototype) \/\/ {constructor: \u0192, getFullName: \u0192} console.log(user.prototype === undefined) \/\/ true <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/prototype-inheritance\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Inheritance_and_the_prototype_chain\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>164. \u041f\u0440\u0438\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u0440\u0438\u043c\u0435\u0440 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u043e\u0447\u043a\u0438 \u0441 \u0437\u0430\u043f\u044f\u0442\u043e\u0439<\/h3>\n<p>  \u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u043e\u0447\u043a\u0438 \u0437\u0430\u043f\u044f\u0442\u043e\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 IIFE (Immediately Invoked Fuction Expression \u2014 \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f):<br \/>  \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434:<\/p>\n<pre><code class=\"javascript\">try {     const x = '\u0411\u044b\u0442\u044c'      (() =&gt; {         console.log(x)     })() } catch {     console.log('\u041d\u0435 \u0431\u044b\u0442\u044c') } <\/code><\/pre>\n<p>  \u0411\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u0442\u0430\u043a:<\/p>\n<pre><code class=\"javascript\">try {     const x = '\u0411\u044b\u0442\u044c'(() =&gt; {         console.log(x)     })() } catch {     console.log('\u041d\u0435 \u0431\u044b\u0442\u044c') } <\/code><\/pre>\n<p>  \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0431\u043b\u043e\u043a\u0435 try \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043e\u0448\u0438\u0431\u043a\u0443 TypeError: \u00ab\u0411\u044b\u0442\u044c\u00bb is not a function, \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0431\u043b\u043e\u043a\u0443 catch, \u0438 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u00ab\u041d\u0435 \u0431\u044b\u0442\u044c\u00bb.<br \/>  \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u0434 \u0440\u0430\u0431\u043e\u0442\u0430\u043b, \u043a\u0430\u043a \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f, \u043e\u043d \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<pre><code class=\"javascript\">try {     \/\/ \u0442\u043e\u0447\u043a\u0443 \u0441 \u0437\u0430\u043f\u044f\u0442\u043e\u0439 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043b\u0438\u0431\u043e \u0437\u0434\u0435\u0441\u044c     const x = '\u0411\u044b\u0442\u044c';     \/\/ \u043b\u0438\u0431\u043e \u0437\u0434\u0435\u0441\u044c     ;(() =&gt; {         console.log(x)     })() } catch {     console.log('\u041d\u0435 \u0431\u044b\u0442\u044c') } <\/code><\/pre>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u043e \u0441\u043b\u0443\u0447\u0430\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0430\u0441\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0442\u043e\u0447\u0435\u043a \u0441 \u0437\u0430\u043f\u044f\u0442\u043e\u0439.<\/p>\n<h3>165. \u0414\u043b\u044f \u0447\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 freeze()?<\/h3>\n<p>  \u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434, \u043a\u0430\u043a \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0437 \u0435\u0433\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f, \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u00ab\u0437\u0430\u043c\u043e\u0440\u0430\u0436\u0438\u0432\u0430\u043d\u0438\u044f\u00bb \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u0417\u0430\u043c\u043e\u0440\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u043c (\u0438\u043c\u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u044b\u043c). \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0432 \u0442\u0430\u043a\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0435\u043b\u044c\u0437\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430, \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435. \u0422\u0430\u043a\u0436\u0435 \u044d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 configurable: false \u0438 writable: false \u0434\u043b\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432. \u041c\u0435\u0442\u043e\u0434 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0437\u0430\u043c\u043e\u0440\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442.<\/p>\n<pre><code class=\"javascript\">'use strict' const obj = {     mission: 'possible' }  Object.freeze(obj) obj.mission = 'impossible' \/\/ TypeError: Cannot assign to read only property 'mission' of object '#&lt;Object&gt;'  delete obj.mission \/\/ TypeError: Cannot delete property 'mission' of #&lt;Object&gt; <\/code><\/pre>\n<p>  \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0432 \u043d\u0435\u0441\u0442\u0440\u043e\u0433\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043d\u0435 \u0432\u044b\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u043a\u043e\u0434 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f.<\/p>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/property-descriptors\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Object\/freeze\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>166. \u0417\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u0435\u043d \u043c\u0435\u0442\u043e\u0434 freeze()?<\/h3>\n<p>  \u041f\u0430\u0440\u0430\u0434\u0438\u0433\u043c\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0433\u043b\u0430\u0441\u0438\u0442, \u0447\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0438\u043c\u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u044b\u043c, \u0442.\u0435. \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0435\u0433\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f, \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430. \u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u043b\u0438\u0430\u0441\u043e\u043c \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 final \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/property-descriptors\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Object\/freeze\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>167. \u041a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u0443\u044e \u0431\u0443\u043a\u0432\u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 \u0437\u0430\u0433\u043b\u0430\u0432\u043d\u043e\u0439?<\/h3>\n<p>  \u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439:<\/p>\n<pre><code class=\"javascript\">const capitilize = str =&gt; str.replace(     \/[\u0430-\u044f\u0451]S+\/gi,     txt =&gt; txt[0].toUpperCase() + txt.slice(1).toLowerCase() )  console.log(capitilize('\u0430\u041f\u0442\u0435\u043a\u0430, \u0443\u043b\u0418\u0446\u0430, \u0444\u043e\u043d\u0410\u0440\u044c')) \/\/ \u0410\u043f\u0442\u0435\u043a\u0430, \u0423\u043b\u0438\u0446\u0430, \u0424\u043e\u043d\u0430\u0440\u044c <\/code><\/pre>\n<p>  <\/p>\n<h3>168. \u041a\u0430\u043a \u0443\u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d JavaScript?<\/h3>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u0433 noscript. \u041a\u043e\u0434 \u0432\u043d\u0443\u0442\u0440\u0438 \u044d\u0442\u043e\u0433\u043e \u0442\u0435\u0433\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d JavaScript:<\/p>\n<pre><code class=\"javascript\">    console.log('JavaScript \u0432\u043a\u043b\u044e\u0447\u0435\u043d')  &lt;noscript&gt;     &lt;p&gt;\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u0435 JavaScript, \u0438\u043b\u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f&lt;\/p&gt; &lt;\/noscript&gt; <\/code><\/pre>\n<p>  \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c JavaScript \u0432 Chrome, \u0437\u0430\u0445\u043e\u0434\u0438\u043c \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 -&gt; \u0440\u0430\u0437\u0434\u0435\u043b \u00ab\u041a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c\u00bb -&gt; \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0430\u0439\u0442\u043e\u0432 -&gt; \u0440\u0430\u0437\u0434\u0435\u043b \u00ab\u041a\u043e\u043d\u0442\u0435\u043d\u0442\u00bb -&gt; JavaScript.<\/p>\n<p>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/HTML\/Element\/noscript\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>169. \u041a\u0430\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f JavaScript?<\/h3>\n<p>  \u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0441\u043b\u0443\u0436\u0430\u0442 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0438\u043b\u0438 \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u0430\u043c\u0438. JavaScript \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b:<\/p>\n<ul>\n<li>\u0410\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435: + (\u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043a \u0447\u0438\u0441\u043b\u0443, \u043a\u043e\u043d\u043a\u0430\u0442\u0435\u043d\u0430\u0446\u0438\u044f), \u2014 (\u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435), * (\u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435), \/ (\u0434\u0435\u043b\u0435\u043d\u0438\u0435), % (\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e, \u0441 \u043e\u0441\u0442\u0430\u0442\u043a\u043e\u043c), ++ (\u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442), \u2014 (\u0434\u0435\u043a\u0440\u0435\u043c\u0435\u043d\u0442), ** (\u0432\u043e\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u0441\u0442\u0435\u043f\u0435\u043d\u044c)<\/li>\n<li>\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f: == (\u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u043e\u0435, \u043d\u0435\u0441\u0442\u0440\u043e\u0433\u043e\u0435 \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e), != (\u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u043e\u0435 \u043d\u0435\u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e), === (\u0441\u0442\u0440\u043e\u0433\u043e\u0435 \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e, \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u043e\u0441\u0442\u044c), !== (\u0441\u0442\u0440\u043e\u0433\u043e\u0435 \u043d\u0435\u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e), &gt;, &gt;=, &lt;, &lt;=<\/li>\n<li>\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435: &amp;&amp; (\u0438), || (\u0438\u043b\u0438),! (\u043d\u0435) (!!! (\u0434\u0432\u043e\u0439\u043d\u043e\u0435 \u043e\u0442\u0440\u0438\u0446\u0430\u043d\u0438\u0435) \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c)<\/li>\n<li>\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043d\u0438\u044f: =, +=, -=, *=, \/=, %=<\/li>\n<li>\u0442\u0435\u0440\u043d\u0430\u0440\u043d\u044b\u0439: ?&#8230;: (if&#8230;else)<\/li>\n<li>\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 typeof: \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0442\u0438\u043f \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u0430<\/li>\n<li>\u043f\u043e\u0431\u0438\u0442\u043e\u0432\u044b\u0435: &amp; (\u0438), | (\u0438\u043b\u0438), ^ (\u0438\u0441\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0435\u0435 \u0438\u043b\u0438), ~ (\u043d\u0435), &lt;&lt; (\u043b\u0435\u0432\u044b\u0439 \u0441\u0434\u0432\u0438\u0433), &gt;&gt; (\u043f\u0440\u0430\u0432\u044b\u0439 \u0441\u0434\u0432\u0438\u0433), &gt;&gt;&gt; (\u043f\u0440\u0430\u0432\u044b\u0439 \u0441\u0434\u0432\u0438\u0433 \u0441 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c \u043d\u0443\u043b\u044f\u043c\u0438)<\/li>\n<li>\u043d\u043e\u0432\u044b\u0435:?.. (\u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430), ?? (\u0441\u043b\u0438\u044f\u043d\u0438\u0435 \u0441 null)<\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"javascript\">\/\/ \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430 const obj = {     foo: {         baz: {             qux: 'bar'         }     } }  \/\/ \u0442\u043e\u0433\u0434\u0430 console.log(obj.foo.bar.baz.qux) \/\/ TypeError: Cannot read property 'baz' of undefined  if (     obj.foo !== undefined &amp;&amp;     obj.foo.bar !== undefined &amp;&amp;     obj.foo.bar.baz !== undefined ) {     console.log(obj.foo.bar.baz.qux) \/\/ \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 }  \/\/ \u0441\u0435\u0439\u0447\u0430\u0441 console.log(obj?.foo?.bar?.baz?.qux) \/\/ undefined  \/\/ \u0441\u043b\u0438\u044f\u043d\u0438\u0435 \u0441 null console.log(     0 || 'default null', \/\/ 'default null'     0 ?? 'default null', \/\/ 0     '' || 'default string', \/\/ default string     '' ?? 'default string', \/\/ '' ) <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/operators\" rel=\"nofollow\">JSR \u2014 \u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b<\/a><br \/>  <a href=\"https:\/\/learn.javascript.ru\/logical-operators\" rel=\"nofollow\">JSR \u2014 \u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b<\/a><br \/>  <a href=\"https:\/\/learn.javascript.ru\/comparison\" rel=\"nofollow\">JSR \u2014 \u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f<\/a><br \/>  <a href=\"https:\/\/learn.javascript.ru\/ifelse\" rel=\"nofollow\">JSR \u2014 \u0423\u0441\u043b\u043e\u0432\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b<\/a><br \/>  <a href=\"https:\/\/learn.javascript.ru\/bitwise-operators\" rel=\"nofollow\">JSR \u2014 \u041f\u043e\u0431\u0438\u0442\u043e\u0432\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Operators\/Optional_chaining\" rel=\"nofollow\">MDN \u2014 \u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Operators\/Nullish_Coalescing_Operator\" rel=\"nofollow\">MDN \u2014 \u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0443\u043b\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u0438\u044f\u043d\u0438\u044f<\/a><\/p>\n<h3>170. \u0414\u043b\u044f \u0447\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 rest\u2026 (\u043f\u0440\u043e\u0447\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b)?<\/h3>\n<p>  \u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 rest \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 arguments \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432:<\/p>\n<pre><code class=\"javascript\">const sum = (...rest) =&gt; rest.reduce((acc, cur) =&gt; acc + cur)  console.log(sum(1, 2, 3)) \/\/ 6 <\/code><\/pre>\n<p>  \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 rest \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430:<\/p>\n<pre><code class=\"javascript\">const fun = (x, ...rest, y) =&gt; console.log(rest) \/\/ SyntaxError: Rest parameter must be last formal parameter <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/destructuring-assignment\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Functions\/rest_parameters\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>171. \u0414\u043b\u044f \u0447\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 spread\u2026 (\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f)?<\/h3>\n<p>  \u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 spread \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f (\u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438, \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f) \u0438\u0442\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 (\u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432, \u0441\u0442\u0440\u043e\u043a). \u0420\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0430 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0438\u0437 \u0447\u0438\u0441\u0435\u043b \u0432 \u043d\u0430\u0431\u043e\u0440 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439:<\/p>\n<pre><code class=\"javascript\">const sum = (x, y, z) =&gt; x + y + z  const nums = [1, 2, 3]  console.log(sum(...nums)) \/\/ 6 <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/destructuring-assignment\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Operators\/Spread_syntax\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>172. \u041a\u0430\u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0437\u0430\u043c\u043e\u0440\u043e\u0436\u0435\u043d \u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442?<\/h3>\n<p>  \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0437\u0430\u043c\u043e\u0440\u043e\u0436\u0435\u043d \u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442, \u0442.\u0435. \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u043e\u043d \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u043c (\u0438\u043c\u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u044b\u043c), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 isFrozen():<\/p>\n<pre><code class=\"javascript\">const obj = {     prop: '\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 \u043c\u0438\u0440 JavaScript!' }  Object.freeze(obj)  console.log(Object.isFrozen(obj)) \/\/ true <\/code><\/pre>\n<p>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Object\/isFrozen\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>173. \u041a\u0430\u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043e\u0431\u044a\u0435\u043a\u0442?<\/h3>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 is():<\/p>\n<pre><code class=\"javascript\">Object.is('\u0434\u0432\u043e\u0435 \u0438\u0437 \u043b\u0430\u0440\u0446\u0430', '\u0434\u0432\u043e\u0435 \u0438\u0437 \u043b\u0430\u0440\u0446\u0430') \/\/ true Object.is(0.1 + 0.2, 0.3) \/\/ false Object.is(window, window) \/\/ true Object.is(+0, -0) \/\/ false  const objA = {} const objB = objA Object.is(objA, objB) \/\/ true Object.is({}, {}) \/\/ false <\/code><\/pre>\n<p>  \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0440\u0430\u0432\u043d\u044b\u043c\u0438, \u0435\u0441\u043b\u0438:<\/p>\n<ul>\n<li>\u043e\u0431\u0430 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f undefined<\/li>\n<li>\u043e\u0431\u0430 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f null<\/li>\n<li>\u043e\u0431\u0430 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f true \u0438\u043b\u0438 false<\/li>\n<li>\u043e\u0431\u0430 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0439 \u0434\u043b\u0438\u043d\u044b \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438<\/li>\n<li>\u043e\u0431\u0430 \u0441\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u043e\u0434\u0438\u043d \u043e\u0431\u044a\u0435\u043a\u0442<\/li>\n<li>\u043e\u0431\u0430 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0438\u0441\u043b\u0430\u043c\u0438, +0, -0 \u0438\u043b\u0438 NaN<\/li>\n<\/ul>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/object\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Object\/is\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>174. \u041a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043e\u043f\u0438\u044e \u043e\u0431\u044a\u0435\u043a\u0442\u0430?<\/h3>\n<p>  \u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 assign():<\/p>\n<pre><code class=\"javascript\">const objA = {a: 1, b: 2} const objB = Object.assign(objA)  console.log(objB) \/\/ {a: 1, b: 2}  console.log(objA === objB) \/\/ true <\/code><\/pre>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u044f \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b:<\/p>\n<pre><code class=\"javascript\">const objA = {a: 1, b: 2} const objB = {b: 2, c: 3}  const objC = Object.assign(objA, objB) console.log(objC) {a: 1, b: 2, c: 3} <\/code><\/pre>\n<p>  \u0414\u043b\u044f \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u044f\u0437\u043a\u0443 JSON.parse-JSON.stringify:<\/p>\n<pre><code class=\"javascript\">const objA = {a: 1, b: 2}  const objB = JSON.parse(JSON.stringify(objA))  console.log(objB) \/\/ {a: 1, b: 2} <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/object\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Object\/assign\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>175. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043f\u0440\u043e\u043a\u0441\u0438?<\/h3>\n<p>  \u041e\u0431\u044a\u0435\u043a\u0442 Proxy \u00ab\u043e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f\u00bb \u0432\u043e\u043a\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438 \u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0442\u044c (\u0438, \u043f\u0440\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0438, \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c) \u0440\u0430\u0437\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u043d\u0438\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0447\u0442\u0435\u043d\u0438\u0435\/\u0437\u0430\u043f\u0438\u0441\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435.<\/p>\n<pre><code class=\"javascript\">const handler = {     get: (obj, prop) =&gt; prop in obj         ? obj[prop]         : 0 }  \/\/ new Proxy(\u0446\u0435\u043b\u044c, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a) const p = new Proxy({}, handler)  p.a = 1 p.b = true  console.log(p.a, p.b) \/\/ 1 true console.log( 'c' in p, p.c) \/\/ false 0 <\/code><\/pre>\n<p>  <\/p>\n<h3>176. \u0414\u043b\u044f \u0447\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 seal()?<\/h3>\n<p>  \u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u00ab\u0437\u0430\u043f\u0435\u0447\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u00bb \u043e\u0431\u044a\u0435\u043a\u0442, \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c\/\u0443\u0434\u0430\u043b\u044f\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430. \u041e\u043d \u0442\u0430\u043a\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 configurable: false \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432. \u041e\u0434\u043d\u0430\u043a\u043e, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0442\u0430\u043a\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c. \u0414\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u0437\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u043d\u043d\u044b\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 isSealed().<\/p>\n<pre><code class=\"javascript\">'use strict' const obj = {     prop: '\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 \u043c\u0438\u0440 JavaScript!' }  Object.seal(obj)  obj.prop = '\u041e\u0441\u0442\u0430\u0432\u044c \u043d\u0430\u0434\u0435\u0436\u0434\u0443, \u0432\u0441\u044f\u043a \u0441\u044e\u0434\u0430 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439' console.log(Object.isSealed(obj)) \/\/ true delete obj.prop \/\/ TypeError: Cannot delete property 'prop' of #&lt;Object&gt; console.log(obj.prop) \/\/ \u041e\u0441\u0442\u0430\u0432\u044c \u043d\u0430\u0434\u0435\u0436\u0434\u0443, \u0432\u0441\u044f\u043a \u0441\u044e\u0434\u0430 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 <\/code><\/pre>\n<p>  \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0432 \u043d\u0435\u0441\u0442\u0440\u043e\u0433\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0437\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0442\u0438\u0445\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0441\u044f \u043d\u0438\u0447\u0435\u043c.<\/p>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/property-descriptors\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Object\/seal\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>177. \u0412 \u0447\u0435\u043c \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438 freeze() \u0438 seal()?<\/h3>\n<p>  \u041c\u0435\u0442\u043e\u0434 Object.seal() \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043c\u0435\u0442\u043e\u0434\u0430 Object.freeze() \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430.<\/p>\n<pre><code class=\"javascript\">'use strict' const objA = {     prop: '\u0411\u044b\u0442\u044c' } Object.freeze(objA) objA.prop = '\u041d\u0435 \u0431\u044b\u0442\u044c' \/\/ TypeError: Cannot assign to read only property 'prop' of object '#&lt;Object&gt;'  const objB = {     prop: '\u041d\u0435 \u0431\u044b\u0442\u044c' } Object.seal(objB) objB.prop = '\u0411\u044b\u0442\u044c' console.log(objB.prop) \/\/ \u0411\u044b\u0442\u044c <\/code><\/pre>\n<p>  <\/p>\n<h3>178. \u041a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u044b\u0435 \u043f\u0430\u0440\u044b \u043a\u043b\u044e\u0447\/\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430?<\/h3>\n<p>  \u041c\u0435\u0442\u043e\u0434 Object.entries() \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u044b\u0445 \u043f\u0430\u0440 \u043a\u043b\u044e\u0447\/\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u0432\u0438\u0434\u0435 \u043f\u043e\u0434\u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 \u0432 \u0442\u043e\u043c \u0436\u0435 \u043f\u043e\u0440\u044f\u0434\u043a\u0435, \u0447\u0442\u043e \u0438 \u0446\u0438\u043a\u043b for&#8230;in:<\/p>\n<pre><code class=\"javascript\">const obj = {     x: 1,     y: 2 }  console.log(Object.entries(obj)) \/\/ [[&quot;x&quot;, 1], [&quot;y&quot;, 2]]  for (let [key, value] of Object.entries(obj)) {     console.log(\\`&#36;{key}: &#36;{value}\\`) \/\/ x: 1 y: 2 } <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/keys-values-entries\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Object\/entries\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>179. \u0412 \u0447\u0435\u043c \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 Object.keys(), Object.values() \u0438 Object.entries()?<\/h3>\n<p>  \u041c\u0435\u0442\u043e\u0434 Object.keys() \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043b\u044e\u0447\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u043c\u0435\u0442\u043e\u0434 Object.values() \u2014 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0435\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432, \u0430 Object.entries() \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 \u043f\u0430\u0440 \u043a\u043b\u044e\u0447\/\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435:<\/p>\n<pre><code class=\"javascript\">const user = {     name: '\u0412\u0430\u043d\u044c\u043a\u0430',     age: 30 }  console.log(Object.keys(user)) \/\/ [&quot;name&quot;, &quot;age&quot;] console.log(Object.values(user)) \/\/ [&quot;\u0412\u0430\u043d\u044c\u043a\u0430&quot;, 30] console.log(Object.entries(user)) \/\/ [[&quot;name&quot;, &quot;\u0412\u0430\u043d\u044c\u043a\u0430&quot;], [&quot;age&quot;, 30]] <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/keys-values-entries\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Object\/keys\" rel=\"nofollow\">MDN \u2014 Object.keys()<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Object\/values\" rel=\"nofollow\">MDN \u2014 Object.values()<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Object\/entries\" rel=\"nofollow\">MDN \u2014 Object.entries()<\/a><\/p>\n<h3>180. \u041a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u043e\u043c, \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044e-\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u0438 \u043a\u043b\u0430\u0441\u0441\u044b?<\/h3>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 Object.create():<\/p>\n<pre><code class=\"javascript\">const firstUser = {     name: '\u0412\u0430\u043d\u044c\u043a\u0430',     sayHi() {         console.log(\\`\u041f\u0440\u0438\u0432\u0435\u0442, \u043c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 &#36;{this.name}!\\`)     } }  const secondUser = Object.create(firstUser)  secondUser.name = '\u041f\u0435\u0442\u044c\u043a\u0430' secondUser.sayHi() \/\/ \u041f\u0440\u0438\u0432\u0435\u0442, \u043c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041f\u0435\u0442\u044c\u043a\u0430! <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/prototype-inheritance\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Object\/create\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>181. \u0414\u043b\u044f \u0447\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f WeakSet?<\/h3>\n<p>  WeakSet \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0441\u043e \u0441\u043b\u0430\u0431\u044b\u043c\u0438 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438. \u0414\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u043e\u043d \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0434\u0440\u0443\u0433\u0438\u043c \u043a\u043e\u0434\u043e\u043c. \u0422\u0430\u043a\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0443\u0434\u0430\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u043e\u043c \u043c\u0443\u0441\u043e\u0440\u0430, \u043a\u043e\u0433\u0434\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u044b\u043c\u0438 (\u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u043c\u0438), \u0442.\u0435. \u043a\u043e\u0433\u0434\u0430 \u043e\u0442 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u044e\u0447 \u0432 WeakSet.<\/p>\n<pre><code class=\"javascript\">const ws = new WeakSet() let user = {}  ws.add(user) console.log(ws.has(user)) \/\/ true  user = null console.log(ws.has(user)) \/\/ false, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0431\u044b\u043b\u0430 \u043e\u0447\u0438\u0449\u0435\u043d\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/weakmap-weakset\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/WeakSet\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>182. \u0412 \u0447\u0435\u043c \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 Set \u0438 WeakSet?<\/h3>\n<p>  \u0418\u0445 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u043e\u0442\u043b\u0438\u0447\u0438\u0435\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u0445\u0440\u0430\u043d\u044f\u0449\u0438\u0435\u0441\u044f \u0432 WeakSet, \u0438\u043c\u0435\u044e\u0442 \u0441\u043b\u0430\u0431\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438, \u0442.\u0435. \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0443\u0434\u0430\u043b\u044f\u044e\u0442\u0441\u044f, \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u044b\u043c\u0438. \u0414\u0440\u0443\u0433\u0438\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u0442 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c:<\/p>\n<ul>\n<li>\u0412 Set \u043c\u043e\u0433\u0443\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u043b\u044e\u0431\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0430 \u0432 WeakSet \u2014 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u044b<\/li>\n<li>WeakSet \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 size<\/li>\n<li>WeakSet \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 clear(), keys(), values(), forEach()<\/li>\n<li>WeakSet \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0442\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u043e\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c\u044e<\/li>\n<\/ul>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/weakmap-weakset\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/WeakSet\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>183. \u041a\u0430\u043a\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432 WeakSet?<\/h3>\n<p>  WeakSet \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438:<\/p>\n<ul>\n<li>add(): \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e<\/li>\n<li>delete(): \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u0438\u0437 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/li>\n<li>has(): \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/li>\n<li>length(): \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0434\u043b\u0438\u043d\u0443 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"javascript\">const ws = new WeakSet() const objA = {} const objB = {}  ws.add(objA) ws.add(objB) console.log(ws.has(objA)) \/\/ true console.log(ws.lenghth()) \/\/ 2 ws.delete(objA) console.log(ws.has(objA)) \/\/ false <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/weakmap-weakset\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/WeakSet\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>184. \u0414\u043b\u044f \u0447\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f WeakMap?<\/h3>\n<p>  WeakMap \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0430\u0440 \u043a\u043b\u044e\u0447\/\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043a\u043b\u044e\u0447\u0438 \u0438\u043c\u0435\u044e\u0442 \u0441\u043b\u0430\u0431\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438. \u0414\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u043e\u043d \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043c \u043a\u043b\u044e\u0447\u0435\u0439, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0434\u0440\u0443\u0433\u0438\u043c \u043a\u043e\u0434\u043e\u043c. \u0422\u0430\u043a\u0438\u0435 \u043a\u043b\u044e\u0447\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0443\u0434\u0430\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u043e\u043c \u043c\u0443\u0441\u043e\u0440\u0430, \u043a\u043e\u0433\u0434\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u044b\u043c\u0438 (\u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u043c\u0438), \u0442.\u0435. \u043a\u043e\u0433\u0434\u0430 \u043e\u0442 \u043d\u0438\u0445 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u044e\u0447 \u0432 WeakMap.<\/p>\n<pre><code class=\"javascript\">const wm = new WeakMap() let user = {} wm.set(user, 'user') console.log(wm.has(user)) \/\/ true user = null console.log(wm.has(user)) \/\/ false, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0431\u044b\u043b\u0430 \u043e\u0447\u0438\u0449\u0435\u043d\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/weakmap-weakset\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/WeakMap\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>185. \u0412 \u0447\u0435\u043c \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 Map \u0438 WeakMap?<\/h3>\n<p>  \u0418\u0445 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u043e\u0442\u043b\u0438\u0447\u0438\u0435\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u043a\u043b\u044e\u0447\u0438, \u0445\u0440\u0430\u043d\u044f\u0449\u0438\u0435\u0441\u044f \u0432 WeakMap, \u0438\u043c\u0435\u044e\u0442 \u0441\u043b\u0430\u0431\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438, \u0442.\u0435. \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0443\u0434\u0430\u043b\u044f\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u044b\u043c\u0438. \u0414\u0440\u0443\u0433\u0438\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u0442 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c:<\/p>\n<ul>\n<li>\u0412 Map \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043b\u044e\u0447\u0435\u0439 \u043c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043b\u044e\u0431\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0430 \u0432 WeakMap \u2014 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u044b<\/li>\n<li>WeakMap \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 size<\/li>\n<li>WeakMap \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 clear(), keys(), values(), entries(), forEach()<\/li>\n<li>WeakMap \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0442\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u043e\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c\u044e<\/li>\n<\/ul>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/weakmap-weakset\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/WeakMap\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>186. \u041a\u0430\u043a\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432 WeakMap?<\/h3>\n<p>  WeakMap \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438:<\/p>\n<ul>\n<li>set(): \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0430\u0440\u0443 \u043a\u043b\u044e\u0447\/\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u043e\u0431\u044a\u0435\u043a\u0442<\/li>\n<li>delete(): \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u043a\u043b\u044e\u0447\u0443<\/li>\n<li>has(): \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u043a\u043b\u044e\u0447\u0443<\/li>\n<li>get(): \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u043a\u043b\u044e\u0447\u0443<\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"javascript\">const wm = new WeakMap() const firstUser = {} const secondUser = {}  wm.set(firstUser, '\u0412\u0430\u043d\u044c\u043a\u0430') wm.set(secondUser, '\u041f\u0435\u0442\u044c\u043a\u0430') console.log(wm.has(firstUser)) \/\/ true console.log(wm.get(firstUser)) \/\/ \u0412\u0430\u043d\u044c\u043a\u0430 wm.delete(secondUser) console.log(wm.has(secondUser)) \/\/ false <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/weakmap-weakset\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/WeakMap\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>187. \u041a\u0430\u043a \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c URL?<\/h3>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 encodeURI(). \u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0432\u0441\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b, \u043a\u0440\u043e\u043c\u0435, \/?: @ = + $ #<\/p>\n<pre><code class=\"javascript\">const url = 'https:\/\/ru.wikipedia.org\/wiki\/\u041b\u0435\u0440\u043c\u043e\u043d\u0442\u043e\u0432,_\u041c\u0438\u0445\u0430\u0438\u043b_\u042e\u0440\u044c\u0435\u0432\u0438\u0447' const encoded = encodeURI(url) console.log(encoded) \/\/ https:\/\/ru.wikipedia.org\/wiki\/%D0%9B%D0... <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/url\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/encodeURI\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>188. \u041a\u0430\u043a \u0440\u0430\u0441\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c URL?<\/h3>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 decodeURI():<\/p>\n<pre><code class=\"javascript\">const url = 'https:\/\/ru.wikipedia.org\/wiki\/%D0%9B%D0...' const decoded = decodeURI(url) console.log(decoded) \/\/ https:\/\/ru.wikipedia.org\/wiki\/\u041b\u0435\u0440\u043c\u043e\u043d\u0442\u043e\u0432,_\u041c\u0438\u0445\u0430\u0438\u043b_\u042e\u0440\u044c\u0435\u0432\u0438\u0447 <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/url\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/decodeURI\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>189. \u041a\u0430\u043a \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043d\u0430 \u043f\u0435\u0447\u0430\u0442\u044c?<\/h3>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 print(). \u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u043f\u0435\u0447\u0430\u0442\u0438:<\/p>\n<pre><code class=\"javascript\">&lt;button&gt;\u041f\u0435\u0447\u0430\u0442\u044c&lt;\/button&gt;  document.querySelector('button')     .addEventListener('click', () =&gt; print()) <\/code><\/pre>\n<p>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/API\/Window\/print\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>190. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f?<\/h3>\n<p>  \u0410\u043d\u043e\u043d\u0438\u043c\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u2014 \u044d\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0431\u0435\u0437 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f. \u0422\u0430\u043a\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0447\u0430\u0441\u0442\u043e \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043e\u043b\u0431\u044d\u043a\u043e\u0432:<\/p>\n<pre><code class=\"javascript\">const sayHi = function () {     console.log('\u041f\u0440\u0438\u0432\u0435\u0442') } sayHi() \/\/ \u041f\u0440\u0438\u0432\u0435\u0442 \/\/ \u0438\u043b\u0438 const sayBye = () =&gt; console.log('\u041f\u043e\u043a\u0430') sayBye() \/\/ \u041f\u043e\u043a\u0430  window.addEventListener('click', function () {     console.log('\u041d\u0435 \u0431\u0443\u0434\u0438 \u043b\u0438\u0445\u043e, \u043f\u043e\u043a\u0430 \u043e\u043d\u043e \u0442\u0438\u0445\u043e') }) \/\/ \u0438\u043b\u0438 window.addEventListener('contextmenu', e =&gt; {     e.preventDefault()     console.log('\u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043d\u043e\u0435 \u043c\u0435\u043d\u044e - \u0434\u0435\u0442\u044f\u043c \u043d\u0435 \u0438\u0433\u0440\u0443\u0448\u043a\u0430') }) <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/function-basics\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/%D0%A1%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8C\/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>191. \u041a\u0430\u043a\u043e\u0432 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0438 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445?<\/h3>\n<p>  \u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0438\u043c\u0435\u044e\u0442 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u043d\u0430\u0434 \u043e\u0434\u043d\u043e\u0438\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438:<\/p>\n<pre><code class=\"javascript\">let question = '\u041d\u0435 \u0431\u044b\u0442\u044c'  function toBe () {     question = '\u0411\u044b\u0442\u044c'     console.log(question) } toBe() \/\/ \u0411\u044b\u0442\u044c <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/variables\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/%D0%A1%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8C\/Variable\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>192. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0430\u043a\u0441\u0435\u0441\u0441\u043e\u0440\u044b?<\/h3>\n<p>  \u0410\u043a\u0441\u0435\u0441\u0441\u043e\u0440\u044b \u0438\u043b\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u2014 \u044d\u0442\u043e \u0433\u0435\u0442\u0442\u0435\u0440\u044b \u0438 \u0441\u0435\u0442\u0442\u0435\u0440\u044b. \u0413\u0435\u0442\u0442\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u0430 \u0441\u0435\u0442\u0442\u0435\u0440\u044b \u2014 \u0434\u043b\u044f \u0438\u0445 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438:<\/p>\n<pre><code class=\"javascript\">class User {     constructor (name, age) {         this.name = name         this.age = age     }      #access = false      get access () {         return this.#access     }      set access (bool) {         this.#access = bool     } }  const user = new User('\u0412\u0430\u043d\u044c\u043a\u0430', 30) console.log(user.#access) \/\/ SyntaxError: Private field '#access' must be declared in an enclosing class  console.log(user.access) \/\/ false user.access = true console.log(user.access) \/\/ true <\/code><\/pre>\n<p>  \u0413\u0435\u0442\u0442\u0435\u0440\u044b \u0438 \u0441\u0435\u0442\u0442\u0435\u0440\u044b \u2014 \u044d\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430, \u0430 \u043c\u0435\u0442\u043e\u0434\u044b \u2014 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:<\/p>\n<pre><code class=\"javascript\">class User {     constructor (name, age) {         this.name = name         this.age = age     }      #access = false      getAccess () {         return this.#access     }      setAccess(bool) {         this.#access = bool     } }  const user = new User('\u0412\u0430\u043d\u044c\u043a\u0430', 30) console.log(user.#access) \/\/ SyntaxError: Private field '#access' must be declared in an enclosing class  console.log(user.getAccess()) \/\/ false user.setAccess(true) console.log(user.getAccess()) \/\/ true <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/property-accessors\" rel=\"nofollow\">JSR<\/a><\/p>\n<h3>193. \u041a\u0430\u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430?<\/h3>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 Object.defineProperty(). \u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u0438 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0443:<\/p>\n<pre><code class=\"javascript\">'use strict' const obj = {}  Object.defineProperty(obj, 'prop', {     value: 1,     writable: false })  console.log(obj.prop) \/\/ 1 obj.prop = 2 \/\/ TypeError: Cannot assign to read only property 'prop' of object '#&lt;Object&gt;' <\/code><\/pre>\n<p>  \u0412 \u043d\u0435\u0441\u0442\u0440\u043e\u0433\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u0442\u0438\u0445\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0441\u044f \u043d\u0438\u0447\u0435\u043c.<\/p>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/property-descriptors\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Object\/defineProperty\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>194. \u0412 \u0447\u0435\u043c \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0433\u0435\u0442\u0442\u0435\u0440\u043e\u0432 \u0438 \u0441\u0435\u0442\u0442\u0435\u0440\u043e\u0432?<\/h3>\n<p>  \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0433\u0435\u0442\u0442\u0435\u0440\u043e\u0432 \u0438 \u0441\u0435\u0442\u0442\u0435\u0440\u043e\u0432 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<ul>\n<li>\u041e\u043d\u0438 \u0438\u043c\u0435\u044e\u0442 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441<\/li>\n<li>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u044b\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u2014 \u0430\u043a\u0441\u0435\u0441\u0441\u043e\u0440\u043e\u0432<\/li>\n<li>\u041f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438<\/li>\n<li>\u041c\u043e\u0433\u0443\u0442 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0430\u043d\u043d\u044b\u0445<\/li>\n<li>\u041f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0438 \u0437\u0430 \u0441\u0446\u0435\u043d\u043e\u0439, \u043a\u043e\u0433\u0434\u0430 \u0440\u0435\u0447\u044c \u0438\u0434\u0435\u0442 \u043e\u0431 \u0438\u043d\u043a\u0430\u043f\u0441\u0443\u043b\u044f\u0446\u0438\u0438<\/li>\n<\/ul>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/property-accessors\" rel=\"nofollow\">JSR<\/a><\/p>\n<h3>195. \u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u0433\u0435\u0442\u0442\u0435\u0440\u044b \u0438 \u0441\u0435\u0442\u0442\u0435\u0440\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u0430 Object.defineProperty()?<\/h3>\n<p>  \u0412\u043f\u043e\u043b\u043d\u0435:<\/p>\n<pre><code class=\"javascript\">const obj = {counter: 0}  Object.defineProperty(obj, 'increment', {     get() {return ++this.counter} }) Object.defineProperty(obj, 'decrement', {     get() {return --this.counter} })  Object.defineProperty(obj, 'sum', {     set(val) {return this.counter += val} }) Object.defineProperty(obj, 'sub', {     set(val) {return this.counter -= val} })  obj.sum = 10 obj.sub = 5 console.log(obj) \/\/ {counter: 5} console.log(obj.increment) \/\/ 6 console.log(obj.decrement) \/\/ 5 <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/property-descriptors\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Object\/defineProperty\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>196. \u0414\u043b\u044f \u0447\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f switch&#8230;case?<\/h3>\n<p>  switch&#8230;case \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043e\u0439 if&#8230;else \u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0431\u043e\u043b\u0435\u0435 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u044f:<\/p>\n<pre><code class=\"javascript\">const calc = (x, y, operator) =&gt; {     let result      try {         switch (operator) {             case '+':                 result = x + y                 break             case '-':                 result = x - y                 break             case '*':                 result = x * y                 break             case '\/':                 result = x \/ y                 break             default:                 throw new Error('\u041d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f')         }          if (isNaN(result)) {             throw new Error('\u041e\u043f\u0435\u0440\u0430\u043d\u0434\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0447\u0438\u0441\u043b\u0430\u043c\u0438')         }          console.log(result)         return result     } catch (e) {         console.error(e.message)     } }  calc(1, 2, '+') \/\/ 3 calc(3, 4, '*') \/\/ 12 calc('a', 1, '-') \/\/ \u041e\u043f\u0435\u0440\u0430\u043d\u0434\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0447\u0438\u0441\u043b\u0430\u043c\u0438 calc(5, 6, 'x') \/\/ \u041d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f <\/code><\/pre>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/switch\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Statements\/switch\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>197. \u041d\u0430\u0437\u043e\u0432\u0438\u0442\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f switch&#8230;case<\/h3>\n<p>  \u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 switch&#8230;case \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0438\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043f\u0440\u0430\u0432\u0438\u043b:<\/p>\n<ul>\n<li>\u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0447\u0438\u0441\u043b\u043e\u043c \u0438\u043b\u0438 \u0441\u0442\u0440\u043e\u043a\u043e\u0439<\/li>\n<li>\u043d\u0435 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439<\/li>\n<li>\u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f default \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0439. \u0415\u0441\u043b\u0438 \u043d\u0438 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 case \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0431\u043b\u043e\u043a default<\/li>\n<li>break \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0446\u0438\u043a\u043b\u0430<\/li>\n<li>break \u0442\u0430\u043a\u0436\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c, \u043d\u043e \u0431\u0435\u0437 \u043d\u0435\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0446\u0438\u043a\u043b\u0430 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0441\u044f<\/li>\n<\/ul>\n<p>  <a href=\"https:\/\/learn.javascript.ru\/switch\" rel=\"nofollow\">JSR<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Web\/JavaScript\/Reference\/Statements\/switch\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>198. \u041d\u0430\u0437\u043e\u0432\u0438\u0442\u0435 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445.<\/h3>\n<p>  \u041f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 (\u00ab\u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u0430\u043c\u0438\u00bb) \u0432 JavaScript \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<\/p>\n<ul>\n<li>number \u0434\u043b\u044f \u043b\u044e\u0431\u044b\u0445 \u0447\u0438\u0441\u0435\u043b: \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u0438\u043b\u0438 \u0447\u0438\u0441\u0435\u043b \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439, \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u044b \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u043e\u043c \u00b12<sup>53<\/sup><\/li>\n<li>bigint \u0434\u043b\u044f \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b<\/li>\n<li>string \u0434\u043b\u044f \u0441\u0442\u0440\u043e\u043a. \u0421\u0442\u0440\u043e\u043a\u0430 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0438\u043b\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, \u043d\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430<\/li>\n<li>boolean \u0434\u043b\u044f true\/false<\/li>\n<li>null \u0434\u043b\u044f \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u2013 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043f, \u0438\u043c\u0435\u044e\u0449\u0438\u0439 \u043e\u0434\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 null<\/li>\n<li>undefined \u0434\u043b\u044f \u043d\u0435\u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u2013 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043f, \u0438\u043c\u0435\u044e\u0449\u0438\u0439 \u043e\u0434\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 undefined<\/li>\n<li>symbol \u0434\u043b\u044f \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432<\/li>\n<\/ul>\n<p>  <a href=\"https:\/\/developer.mozilla.org\/ru\/docs\/%D0%A1%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8C\/Type\" rel=\"nofollow\">MDN<\/a><\/p>\n<h3>\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u0430<\/h3>\n<p>  <a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/482472\/\">Habr \u2014 \u0418\u0437 \u0447\u0435\u0433\u043e \u0441\u0434\u0435\u043b\u0430\u043d JavaScript?<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/477284\/\">Habr \u2014 \u0417\u0430\u0447\u0435\u043c \u0432 JavaScript \u043d\u0443\u0436\u0435\u043d \u0441\u0442\u0440\u043e\u0433\u0438\u0439 \u0440\u0435\u0436\u0438\u043c?<\/a><br \/>  <a href=\"https:\/\/medium.com\/devschacht\/javascript-coercions-9a36505c1370\" rel=\"nofollow\">\u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e JavaScript \u0441\u0438\u043b\u044c\u043d\u044b\u0439?<\/a><br \/>  <a href=\"https:\/\/medium.com\/nmc-techblog\/advanced-javascript-es6-temporal-dead-zone-default-parameters-and-let-vs-var-deep-dive-ca588fcde21b\" rel=\"nofollow\">Medium \u2014 Advanced JavaScript ES6 \u2014 Temporal Dead Zone, Default Parameters And Let vs Var \u2014 Deep dive!<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/post\/517338\/\">JavaScript: \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438<\/a><br \/>  <a href=\"https:\/\/medium.com\/@stasonmars\/%D0%B4%D0%B5%D0%BB%D0%B5%D0%B3%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D0%B8%CC%86-%D0%B2-javascript-d91cbdd8916a\" rel=\"nofollow\">\u0414\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0438\u0306 \u0432 JavaScript<\/a><br \/>  <a href=\"https:\/\/medium.com\/@stasonmars\/%D0%BF%D0%BE%D0%BD%D0%B8%D0%BC%D0%B0%D0%B5%D0%BC-%D0%B7%D0%B0%D0%BC%D1%8B%D0%BA%D0%B0%D0%BD%D0%B8%D1%8F-%D0%B2-javascript-%D1%80%D0%B0%D0%B7-%D0%B8-%D0%BD%D0%B0%D0%B2%D1%81%D0%B5%D0%B3%D0%B4%D0%B0-c211805b6898\" rel=\"nofollow\">Medium \u2014 \u041f\u043e\u043d\u0438\u043c\u0430\u0435\u043c \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u0432 JavaScript. \u0420\u0430\u0437 \u0438 \u043d\u0430\u0432\u0441\u0435\u0433\u0434\u0430<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/513764\/\">Habr \u2014 \u0414\u044d\u043d \u0410\u0431\u0440\u0430\u043c\u043e\u0432 \u043e \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f\u0445 \u0432 JavaScript<\/a><br \/>  <a href=\"https:\/\/medium.com\/madhash\/understanding-prototypes-in-javascript-e466244da086\" rel=\"nofollow\">Medium \u2014 Understanding Prototypes in JavaScript<\/a><br \/>  <a href=\"https:\/\/medium.com\/@stasonmars\/%D0%BF%D0%BE%D0%B4%D1%80%D0%BE%D0%B1%D0%BD%D0%BE-%D0%BE-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%B0%D1%85-apply-call-%D0%B8-bind-%D0%BD%D0%B5%D0%BE%D0%B1%D1%85%D0%BE%D0%B4%D0%B8%D0%BC%D1%8B%D1%85-%D0%BA%D0%B0%D0%B6%D0%B4%D0%BE%D0%BC%D1%83-javascript-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D1%83-ddd5f9b06290\" rel=\"nofollow\">Medium \u2014 \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e \u043c\u0435\u0442\u043e\u0434\u0430\u0445 apply(), call() \u0438 bind(), \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u043a\u0430\u0436\u0434\u043e\u043c\u0443 JavaScript \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/post\/518386\/\">JavaScript: \u043f\u043e\u043b\u043d\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u043a\u043b\u0430\u0441\u0441\u0430\u043c<\/a><br \/>  <a href=\"https:\/\/medium.com\/javascript-in-plain-english\/javascript-classes-an-in-depth-look-part-1-47d8f4e77cbd\" rel=\"nofollow\">Medium \u2014 JavaScript Classes: An In-Depth look (Part 1)<\/a><br \/>  <a href=\"https:\/\/medium.com\/@stasonmars\/%D1%80%D0%B0%D0%B7%D0%B1%D0%B8%D1%80%D0%B0%D0%B5%D0%BC%D1%81%D1%8F-%D1%81-%D0%BF%D1%83%D1%82%D0%B0%D0%BD%D0%B8%D1%86%D0%B5%D0%B9-%D0%BC%D0%B5%D0%B6%D0%B4%D1%83-javascript-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%B0%D0%BC%D0%B8-slice-splice-%D0%B8-split-6e72363baf1d\" rel=\"nofollow\">Medium \u2014 \u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0441 \u043f\u0443\u0442\u0430\u043d\u0438\u0446\u0435\u0439 \u043c\u0435\u0436\u0434\u0443 JavaScript \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438 slice(), splice() \u0438 split()<\/a><br \/>  <a href=\"https:\/\/medium.com\/@stasonmars\/%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2-%D0%B2-javascript-d25c261a7aff\" rel=\"nofollow\">\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0432 JavaScript<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/480354\/\">\u041d\u0430\u0447\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438 JavaScript-\u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 .map(), .filter() \u0438 .reduce()<\/a><br \/>  <a href=\"https:\/\/medium.com\/@stasonmars\/%D0%BA%D0%B0%D0%BA-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82-reduce-%D0%B2-javascript-%D0%BA%D0%BE%D0%B3%D0%B4%D0%B0-%D0%B5%D0%B3%D0%BE-%D0%BD%D1%83%D0%B6%D0%BD%D0%BE-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D1%8F%D1%82%D1%8C-%D0%B8-%D0%BA%D0%B0%D0%BA%D0%B8%D0%B5-%D0%BA%D1%80%D1%83%D1%82%D1%8B%D0%B5-%D0%B2%D0%B5%D1%89%D0%B8-%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE-%D1%81-%D0%BD%D0%B8%D0%BC-b650c397bee6\" rel=\"nofollow\">\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 reduce() \u0432 JavaScript<\/a><br \/>  <a href=\"https:\/\/medium.com\/@stasonmars\/%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D0%BC-%D1%81-%D0%B0%D1%81%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%BD%D0%BE%D0%B8%CC%86-%D0%B8%D1%82%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B5%D0%B8%CC%86-%D0%B2-ecmascript-2019-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F-for-of-cc0baa81cdd8\" rel=\"nofollow\">\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0438\u0306 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0435\u0438\u0306 \u0432 ECMAScript 2019, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f for-of<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/504586\/\">\u041d\u043e\u0432\u0448\u0435\u0441\u0442\u0432\u0430 ES2020, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043d\u0440\u0430\u0432\u044f\u0442\u0441\u044f<\/a><br \/>  <a href=\"https:\/\/www.digitalocean.com\/community\/tutorials\/understanding-map-and-set-objects-in-javascript-ru\" rel=\"nofollow\">DigitalOcean \u2014 \u0417\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 map \u0438 set \u0432 JavaScript<\/a><br \/>  <a href=\"https:\/\/medium.com\/@stasonmars\/%D0%BF%D0%BE%D0%BD%D0%B8%D0%BC%D0%B0%D0%B5%D0%BC-%D0%BA%D0%B0%D1%80%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B2-javascript-5ec4a1d88827\" rel=\"nofollow\">Medium \u2014 \u041f\u043e\u043d\u0438\u043c\u0430\u0435\u043c \u043a\u0430\u0440\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 JavaScript<\/a><br \/>  <a href=\"https:\/\/medium.com\/@mike_wong\/what-is-memoization-in-javascript-5c6cdef49ad2\" rel=\"nofollow\">Medium \u2014 What is Memoization in Javascript?<\/a><br \/>  <a href=\"https:\/\/redd.one\/blog\/debounce-vs-throttle\" rel=\"nofollow\">Redd \u2014 Debounce vs Throttle: Definitive Visual Guide<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/511590\/\">\u041f\u0443\u0442\u044c \u043a \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0445 \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u043e\u0432 \u0432 JavaScript<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/post\/491252\/\">Habr \u2014 5 \u043c\u0430\u043b\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 JSON.stringify()<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/post\/501198\/\">Habr \u2014 \u041f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 (\u0432\u0441\u0435\u0445) \u00ab\u043c\u043e\u0434\u0443\u043b\u044c\u043d\u044b\u0445\u00bb \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 JavaScript<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/466537\/\">Habr \u2014 \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 JavaScript-\u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u043d\u0435: \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u0435\u043b. \u0427\u0430\u0441\u0442\u044c 1<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/post\/491840\/\">Habr \u2014 \u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u0435\u0440\u0432\u0438\u0441-\u0432\u043e\u0440\u043a\u0435\u0440\u043e\u0432<\/a><br \/>  <a href=\"https:\/\/developers.google.com\/web\/fundamentals\/primers\/service-workers\" rel=\"nofollow\">GoogleDevelopers \u2014 Service Workers: an Introduction<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/post\/500834\/\">Habr \u2014 \u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0434\u043b\u044f \u0432\u0435\u0431\u0430<\/a><br \/>  <a href=\"https:\/\/webdevblog.ru\/izuchaem-indexeddb\/\" rel=\"nofollow\">WebDevBlog \u2014 \u0418\u0437\u0443\u0447\u0430\u0435\u043c IndexedDB<\/a><br \/>  <a href=\"https:\/\/developers.google.com\/web\/ilt\/pwa\/working-with-indexeddb\" rel=\"nofollow\">GoogleDevelopers \u2014 Working with IndexedDB<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/post\/496348\/\">Habr \u2014 Web Storage API: \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/479268\/\">Habr \u2014 \u041f\u0440\u043e\u0441\u043b\u0443\u0448\u0438\u0432\u0430\u0442\u0435\u043b\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0438 \u0432\u0435\u0431-\u0432\u043e\u0440\u043a\u0435\u0440\u044b<\/a><br \/>  <a href=\"https:\/\/medium.com\/young-coder\/a-simple-introduction-to-web-workers-in-javascript-b3504f9d9d1c\" rel=\"nofollow\"> Medium \u2014 A Simple Introduction to Web Workers in JavaScript<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/post\/484466\/\">Habr \u2014 \u0420\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043f\u0440\u043e\u043c\u0438\u0441\u0430\u043c\u0438 \u0432 JavaScript, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u043e\u043b\u0436\u0435\u043d \u0437\u043d\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/post\/501702\/\">Habr \u2014 \u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u043c\u0438\u0441\u043e\u0432 \u0438 Async\/Await<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/post\/514684\/\">Habr \u2014 \u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u043e\u0431\u0449\u0435\u0433\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0438 CORS: \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e<\/a><\/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:\/\/habr.com\/ru\/post\/519004\/\"> https:\/\/habr.com\/ru\/post\/519004\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/519004\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ig\/mq\/2d\/igmq2dvqrh3pvqpohaicef0c3zi.png\"><\/p>\n<p>  \u0414\u043e\u0431\u0440\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u0443\u0442\u043e\u043a, \u0434\u0440\u0443\u0437\u044c\u044f!<\/p>\n<p>  \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437 \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u043e\u0442\u043d\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u043f\u043e \u043e\u0441\u043d\u043e\u0432\u0430\u043c JavaScript \u0438\u0437 <a href=\"https:\/\/github.com\/sudheerj\/javascript-interview-questions\" rel=\"nofollow\">\u044d\u0442\u043e\u0433\u043e \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f<\/a> \u0441 \u043a\u0440\u0430\u0442\u043a\u0438\u043c\u0438 \u043e\u0442\u0432\u0435\u0442\u0430\u043c\u0438 \u0438 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438 \u043d\u0430 \u00ab\u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0443\u0447\u0435\u0431\u043d\u0438\u043a \u043f\u043e JavaScript\u00bb \u0418\u043b\u044c\u0438 \u041a\u0430\u043d\u0442\u043e\u0440\u0430 (JSR) \u0438 MDN.<\/p>\n<p>  \u0414\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a, \u0430 \u0442\u0430\u043a\u0436\u0435 300+ \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432 <a href=\"https:\/\/jsq.netlify.app\/\" rel=\"nofollow\">\u043c\u043e\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438<\/a>.<\/p>\n<p>  \u0412 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u043e\u043f\u0440\u043e\u0441\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0432 \u043e\u0444\u0444\u043b\u0430\u0439\u043d-\u0440\u0435\u0436\u0438\u043c\u0435.<\/p>\n<p>  \u041f\u0440\u0438\u043d\u043e\u0448\u0443 \u0438\u0437\u0432\u0438\u043d\u0435\u043d\u0438\u044f \u0437\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438. \u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442\u0441\u044f \u043b\u044e\u0431\u0430\u044f \u0444\u043e\u0440\u043c\u0430 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u0438.<\/p>\n<p>  \u0420\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u043e\u0442 14.09.<\/p>\n<p>  \u041f\u0435\u0440\u0432\u044b\u0435 100 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 <a href=\"https:\/\/habr.com\/ru\/post\/517002\/\">\u0437\u0434\u0435\u0441\u044c<\/a>.  <\/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-309878","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/309878","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=309878"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/309878\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=309878"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=309878"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=309878"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}