{"id":30651,"date":"2019-09-13T22:37:40","date_gmt":"2019-09-13T19:37:40","guid":{"rendered":"http:\/\/kamil-abzalov.com\/tutorials\/new-javascript-features-overview-part-two\/"},"modified":"2020-04-11T22:05:02","modified_gmt":"2020-04-11T19:05:02","slug":"new-javascript-features-overview-part-two","status":"publish","type":"post","link":"https:\/\/kamil-abzalov.com\/en\/tutorials\/javascript\/new-javascript-features-overview-part-two\/","title":{"rendered":"New javascript features overview. Part two"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; fullwidth=&#8221;on&#8221; _builder_version=&#8221;3.22&#8243;][et_pb_fullwidth_header title=&#8221;New javascript features overview. Part two&#8221; content_max_width=&#8221;none&#8221; _builder_version=&#8221;3.27.4&#8243; max_width_tablet=&#8221;50px&#8221; z_index_tablet=&#8221;500&#8243; title_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; title_text_shadow_vertical_length_tablet=&#8221;0px&#8221; title_text_shadow_blur_strength_tablet=&#8221;1px&#8221; content_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; content_text_shadow_vertical_length_tablet=&#8221;0px&#8221; content_text_shadow_blur_strength_tablet=&#8221;1px&#8221; subhead_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; subhead_text_shadow_vertical_length_tablet=&#8221;0px&#8221; subhead_text_shadow_blur_strength_tablet=&#8221;1px&#8221; content_link_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; content_link_text_shadow_vertical_length_tablet=&#8221;0px&#8221; content_link_text_shadow_blur_strength_tablet=&#8221;1px&#8221; content_ul_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; content_ul_text_shadow_vertical_length_tablet=&#8221;0px&#8221; content_ul_text_shadow_blur_strength_tablet=&#8221;1px&#8221; content_ol_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; content_ol_text_shadow_vertical_length_tablet=&#8221;0px&#8221; content_ol_text_shadow_blur_strength_tablet=&#8221;1px&#8221; content_quote_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; content_quote_text_shadow_vertical_length_tablet=&#8221;0px&#8221; content_quote_text_shadow_blur_strength_tablet=&#8221;1px&#8221; button_one_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; button_one_text_shadow_vertical_length_tablet=&#8221;0px&#8221; button_one_text_shadow_blur_strength_tablet=&#8221;1px&#8221; button_two_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; button_two_text_shadow_vertical_length_tablet=&#8221;0px&#8221; button_two_text_shadow_blur_strength_tablet=&#8221;1px&#8221; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; box_shadow_horizontal_image_tablet=&#8221;0px&#8221; box_shadow_vertical_image_tablet=&#8221;0px&#8221; box_shadow_blur_image_tablet=&#8221;40px&#8221; box_shadow_spread_image_tablet=&#8221;0px&#8221; box_shadow_horizontal_button_one_tablet=&#8221;0px&#8221; box_shadow_vertical_button_one_tablet=&#8221;0px&#8221; box_shadow_blur_button_one_tablet=&#8221;40px&#8221; box_shadow_spread_button_one_tablet=&#8221;0px&#8221; box_shadow_horizontal_button_two_tablet=&#8221;0px&#8221; box_shadow_vertical_button_two_tablet=&#8221;0px&#8221; box_shadow_blur_button_two_tablet=&#8221;40px&#8221; box_shadow_spread_button_two_tablet=&#8221;0px&#8221; text_shadow_horizontal_length_tablet=&#8221;0px&#8221; text_shadow_vertical_length_tablet=&#8221;0px&#8221; text_shadow_blur_strength_tablet=&#8221;1px&#8221; button_one_text_size__hover_enabled=&#8221;off&#8221; button_one_text_size__hover=&#8221;null&#8221; button_two_text_size__hover_enabled=&#8221;off&#8221; button_two_text_size__hover=&#8221;null&#8221; button_one_text_color__hover_enabled=&#8221;off&#8221; button_one_text_color__hover=&#8221;null&#8221; button_two_text_color__hover_enabled=&#8221;off&#8221; button_two_text_color__hover=&#8221;null&#8221; button_one_border_width__hover_enabled=&#8221;off&#8221; button_one_border_width__hover=&#8221;null&#8221; button_two_border_width__hover_enabled=&#8221;off&#8221; button_two_border_width__hover=&#8221;null&#8221; button_one_border_color__hover_enabled=&#8221;off&#8221; button_one_border_color__hover=&#8221;null&#8221; button_two_border_color__hover_enabled=&#8221;off&#8221; button_two_border_color__hover=&#8221;null&#8221; button_one_border_radius__hover_enabled=&#8221;off&#8221; button_one_border_radius__hover=&#8221;null&#8221; button_two_border_radius__hover_enabled=&#8221;off&#8221; button_two_border_radius__hover=&#8221;null&#8221; button_one_letter_spacing__hover_enabled=&#8221;on&#8221; button_one_letter_spacing__hover=&#8221;0&#8243; button_two_letter_spacing__hover_enabled=&#8221;on&#8221; button_two_letter_spacing__hover=&#8221;0&#8243; button_one_bg_color__hover_enabled=&#8221;off&#8221; button_one_bg_color__hover=&#8221;null&#8221; button_two_bg_color__hover_enabled=&#8221;off&#8221; button_two_bg_color__hover=&#8221;null&#8221;][\/et_pb_fullwidth_header][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;section&#8221; _builder_version=&#8221;3.22&#8243;][et_pb_row admin_label=&#8221;row&#8221; _builder_version=&#8221;3.25&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_padding=&#8221;0px|||&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.0.47&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_dcsbcm_divi_breadcrumbs_module homebreadcrumbtext=&#8221;Home&#8221; hide_currentbreadcrumb=&#8221;off&#8221; _builder_version=&#8221;3.27.4&#8243; fontsbreadcrumbs_font_size_tablet=&#8221;51&#8243; fontsbreadcrumbs_line_height_tablet=&#8221;2&#8243; fontsseperator_font_size_tablet=&#8221;51&#8243; fontsseperator_line_height_tablet=&#8221;2&#8243; fontsbreadcrumblinks_font_size_tablet=&#8221;51&#8243; fontsbreadcrumblinks_line_height_tablet=&#8221;2&#8243; z_index_tablet=&#8221;500&#8243; fontsbreadcrumbs_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; fontsbreadcrumbs_text_shadow_vertical_length_tablet=&#8221;0px&#8221; fontsbreadcrumbs_text_shadow_blur_strength_tablet=&#8221;1px&#8221; fontsseperator_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; fontsseperator_text_shadow_vertical_length_tablet=&#8221;0px&#8221; fontsseperator_text_shadow_blur_strength_tablet=&#8221;1px&#8221; fontsbreadcrumblinks_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; fontsbreadcrumblinks_text_shadow_vertical_length_tablet=&#8221;0px&#8221; fontsbreadcrumblinks_text_shadow_blur_strength_tablet=&#8221;1px&#8221; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221;][\/et_pb_dcsbcm_divi_breadcrumbs_module][et_pb_text _builder_version=&#8221;3.27.4&#8243; z_index_tablet=&#8221;500&#8243; text_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; text_text_shadow_vertical_length_tablet=&#8221;0px&#8221; text_text_shadow_blur_strength_tablet=&#8221;1px&#8221; link_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; link_text_shadow_vertical_length_tablet=&#8221;0px&#8221; link_text_shadow_blur_strength_tablet=&#8221;1px&#8221; ul_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; ul_text_shadow_vertical_length_tablet=&#8221;0px&#8221; ul_text_shadow_blur_strength_tablet=&#8221;1px&#8221; ol_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; ol_text_shadow_vertical_length_tablet=&#8221;0px&#8221; ol_text_shadow_blur_strength_tablet=&#8221;1px&#8221; quote_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; quote_text_shadow_vertical_length_tablet=&#8221;0px&#8221; quote_text_shadow_blur_strength_tablet=&#8221;1px&#8221; header_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; header_text_shadow_vertical_length_tablet=&#8221;0px&#8221; header_text_shadow_blur_strength_tablet=&#8221;1px&#8221; header_2_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; header_2_text_shadow_vertical_length_tablet=&#8221;0px&#8221; header_2_text_shadow_blur_strength_tablet=&#8221;1px&#8221; header_3_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; header_3_text_shadow_vertical_length_tablet=&#8221;0px&#8221; header_3_text_shadow_blur_strength_tablet=&#8221;1px&#8221; header_4_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; header_4_text_shadow_vertical_length_tablet=&#8221;0px&#8221; header_4_text_shadow_blur_strength_tablet=&#8221;1px&#8221; header_5_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; header_5_text_shadow_vertical_length_tablet=&#8221;0px&#8221; header_5_text_shadow_blur_strength_tablet=&#8221;1px&#8221; header_6_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; header_6_text_shadow_vertical_length_tablet=&#8221;0px&#8221; header_6_text_shadow_blur_strength_tablet=&#8221;1px&#8221; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221;]<a href=\"https:\/\/kamil-abzalov.com\/en\/tutorials\/javascript-tuts\/new-javascript-features-overview-part-one\/\">In last lesson<\/a> we began considering new modern javascript features.Today we&#8217;ll consider another of it.<br \/>\n[\/et_pb_text][et_pb_video src=&#8221;https:\/\/www.youtube.com\/watch?v=Lcm-jEM8Cmw&#8221; _builder_version=&#8221;3.27.4&#8243; z_index_tablet=&#8221;500&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221;][\/et_pb_video][et_pb_text _builder_version=&#8221;3.27.4&#8243; z_index_tablet=&#8221;500&#8243; text_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; text_text_shadow_vertical_length_tablet=&#8221;0px&#8221; text_text_shadow_blur_strength_tablet=&#8221;1px&#8221; link_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; link_text_shadow_vertical_length_tablet=&#8221;0px&#8221; link_text_shadow_blur_strength_tablet=&#8221;1px&#8221; ul_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; ul_text_shadow_vertical_length_tablet=&#8221;0px&#8221; ul_text_shadow_blur_strength_tablet=&#8221;1px&#8221; ol_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; ol_text_shadow_vertical_length_tablet=&#8221;0px&#8221; ol_text_shadow_blur_strength_tablet=&#8221;1px&#8221; quote_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; quote_text_shadow_vertical_length_tablet=&#8221;0px&#8221; quote_text_shadow_blur_strength_tablet=&#8221;1px&#8221; header_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; header_text_shadow_vertical_length_tablet=&#8221;0px&#8221; header_text_shadow_blur_strength_tablet=&#8221;1px&#8221; header_2_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; header_2_text_shadow_vertical_length_tablet=&#8221;0px&#8221; header_2_text_shadow_blur_strength_tablet=&#8221;1px&#8221; header_3_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; header_3_text_shadow_vertical_length_tablet=&#8221;0px&#8221; header_3_text_shadow_blur_strength_tablet=&#8221;1px&#8221; header_4_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; header_4_text_shadow_vertical_length_tablet=&#8221;0px&#8221; header_4_text_shadow_blur_strength_tablet=&#8221;1px&#8221; header_5_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; header_5_text_shadow_vertical_length_tablet=&#8221;0px&#8221; header_5_text_shadow_blur_strength_tablet=&#8221;1px&#8221; header_6_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; header_6_text_shadow_vertical_length_tablet=&#8221;0px&#8221; header_6_text_shadow_blur_strength_tablet=&#8221;1px&#8221; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221;]Today we will talk about async\/await &#8211; the new way to work with promises; new javascript data structure &#8211; Map and Set and also &#8220;syntax sugar&#8221; &#8211; classes.<br \/>\n[\/et_pb_text][et_pb_dmb_code_snippet title=&#8221;Code lesson&#8221; code=&#8221;PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9ImllPWVkZ2UiPgogICAgPHRpdGxlPkRvY3VtZW50PC90aXRsZT4KPC9oZWFkPgo8Ym9keT4KICAgIAogICAgPHNjcmlwdD4KICAgICAgICAndXNlIHN0cmljdCc7CiAgICAgICAgLy8gKDEpIHZhciwgbGV0LCBjb25zdAogICAgICAgIHZhciBhID0gNTsKICAgICAgICBjb25zdCBiID0gMzsKICAgICAgICAvLyBiID0gYiArIDM7CiAgICAgICAgY29uc29sZS5sb2coYik7CgogICAgICAgIGZ1bmN0aW9uIGFkZE51bSh4KSB7CiAgICAgICAgICAgIGxldCBiID0gYTsKICAgICAgICAgICAgY29uc29sZS5sb2codGhpcyk7IC8vINC90LUg0LIg0YHRgtGA0L7Qs9C+0Lwg0YDQtdC20LjQvNC1IC0g0LrQvtC90YLQtdC60YIg0LLRi9C30L7QstCwCiAgICAgICAgICAgIHJldHVybiBiID0gYiArIHg7CiAgICAgICAgfQoKICAgICAgICBjb25zb2xlLmxvZyhhZGROdW0oNSkpOwogICAgICAgIGNvbnNvbGUubG9nKGEpOwoKICAgICAgICAvLyAoMikgLSDRgdGC0YDQtdC70L7Rh9C90YvQtSDRhNGD0L3QutGG0LjQuAoKICAgICAgICBmdW5jdGlvbiBzdW1tYShhLGIpIHsKICAgICAgICAgICAgY29uc29sZS5sb2codGhpcyk7CiAgICAgICAgICAgIHJldHVybiBhK2I7CiAgICAgICAgfQoKICAgICAgICBsZXQgc3VtID0gKGEsYikgPT4gewogICAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzKTsKICAgICAgICAgICAgcmV0dXJuIGErYgogICAgICAgIH07CgogICAgICAgIGNvbnNvbGUubG9nKHN1bSg1LDExKSk7CiAgICAgICAgY29uc29sZS5sb2coc3VtbWEoNSwxMSkpOwoKICAgICAgICB2YXIgbWFuID0gewogICAgICAgICAgICBuYW1lOiAn0JrQsNC80LjQu9GMJywKICAgICAgICAgICAgc2F5SGVsbG86IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhpcyk7CiAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhpcyk7CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhpcy5uYW1lICsgJyDQv9GA0LjQstC10YInKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICBzYXlCeWU6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhpcyk7CiAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4gewogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMpOwogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMubmFtZSArICcg0L\/QvtC60LAnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gdmFyIGhpS2FtID0gbWFuLnNheUhlbGxvKCk7CiAgICAgICAgLy8gaGlLYW0oKTsKCiAgICAgICAgdmFyIGJ5ZUthbSA9IG1hbi5zYXlCeWUoKTsKICAgICAgICBieWVLYW0oKTsKCiAgICAgICAgLy8gKDMpIC0g0YjQsNCx0LvQvtC90L3Ri9C1INC70LjRgtC10YDQsNC70YsKICAgICAgICBsZXQgbmFtZSA9ICfQmtCw0LzQuNC70YwnOwogICAgICAgIGxldCBzdXJuYW1lID0gJ9CQ0LHQt9Cw0LvQvtCyJzsKICAgICAgICBjb25zb2xlLmxvZyhuYW1lICsgIiAiICsgc3VybmFtZSk7CiAgICAgICAgY29uc29sZS5sb2coYCR7bmFtZX0gJHtzdXJuYW1lfWApOwoKCiAgICAgICAgLy8gKDQpINC00LXRgdGC0YDRg9C60YLRg9C70LjQt9Cw0YbQuNGPCiAgICAgICAgY29uc3QgYXJyID0gWzEsMiwzLDQsNV07CiAgICAgICAgY29uc3QgWyAsc2Vjb25kLCAsICxmaWZ0aF0gPSBhcnI7CiAgICAgICAgY29uc29sZS5sb2coc2Vjb25kLCBmaWZ0aCk7CgogICAgICAgIGxldCBhZ2UgPSAyOTsKICAgICAgICBsZXQgbmV4dEFnZSA9IDMwOwoKICAgICAgICBbYWdlLCBuZXh0QWdlXSA9IFtuZXh0QWdlLCBhZ2VdOwoKICAgICAgICBjb25zb2xlLmxvZyhhZ2UpOwogICAgICAgIGNvbnNvbGUubG9nKG5leHRBZ2UpOwoKICAgICAgICAvLyAoNCkgLSBmb3IuLi5vZgoKICAgICAgICBjb25zdCBzZWNvbmRBcnIgPSBbMSwyLDMsNCw1XTsKCiAgICAgICAgZm9yKGNvbnN0IG51bSBvZiBzZWNvbmRBcnIpIHsKICAgICAgICAgICAgY29uc29sZS5sb2cobnVtKTsgICAgICAgCiAgICAgICAgfQoKICAgICAgICAvLyAoNSkgLSDQv9Cw0YDQsNC80LXRgtGA0Ysg0L\/QviDRg9C80L7Qu9GH0LDQvdC40Y4KICAgICAgICBjb25zdCBwcmludE5hbWUgPSAobmFtZSA9ICfQmtCw0LzQuNC70YwnKSA9PiBjb25zb2xlLmxvZyhuYW1lKTsKCiAgICAgICAgcHJpbnROYW1lKCk7CiAgICAgICAgcHJpbnROYW1lKCfQmNCy0LDQvScpOwoKICAgICAgICAvLyAoNikgLSByZXN0CiAgICAgICAgY29uc3QgcHJpbnREYXRhID0gKG5hbWUsIC4uLmRhdGEpID0+IHsgCiAgICAgICAgICAgIGNvbnNvbGUubG9nKG5hbWUpOwogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTsKICAgICAgICB9CgogICAgICAgIHByaW50RGF0YSgn0JrQsNC80LjQu9GMJywgMjksICfQnNC+0YHQutCy0LAnKTsKCiAgICAgICAgY29uc29sZS5sb2coYXJyLmNvbmNhdChzZWNvbmRBcnIpKTsKICAgICAgICBjb25zb2xlLmxvZyhbLi4uYXJyLCAuLi5zZWNvbmRBcnJdKTsKCgogICAgICAgIC8vICg3KSAtINC\/0YDQvtC80LjRgdGLCiAgICAgICAgbGV0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVzb2x2ZSgpLCAzMDAwKTsKICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QoKSwgMjAwMCk7CiAgICAgICAgfSk7CiAgICAgICAgY29uc29sZS5sb2cocHJvbWlzZSk7CgogICAgICAgIHByb21pc2UudGhlbigKICAgICAgICAgICAgcmVzb2x2ZSA9PiBjb25zb2xlLmxvZygxKSwKICAgICAgICAgICAgcmVqZWN0ID0+IGNvbnNvbGUubG9nKDIpCiAgICAgICAgKTsKCiAgICAgICAgLy8gcHJvbWlzZS5jYXRjaCgKICAgICAgICAvLyAgICAgKCkgPT4gY29uc29sZS5sb2coJ2Vycm9yJykKICAgICAgICAvLyApOwoKICAgICAgICAvLyBwcm9taXNlLmZpbmFsbHkoCiAgICAgICAgLy8gICAgICgpID0+IGNvbnNvbGUubG9nKCdmaW5hbGx5JykKICAgICAgICAvLyApCgogICAgICAgIGxldCByZW1vdGVEYXRlID0gZmV0Y2goJ2h0dHA6Ly9qc29ucGxhY2Vob2xkZXIudHlwaWNvZGUuY29tL3VzZXJzJykKICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge3JldHVybiByZXNwb25zZS5qc29uKCl9KQogICAgICAgICAgICAgICAgICAgICAgICAudGhlbih0ZXh0ID0+IGNvbnNvbGUubG9nKHRleHQpKQogICAgCiAgICAgICAgLy8gKDgpIC0gYXN5bmMvYXdhaXQKCiAgICAgICAgYXN5bmMgZnVuY3Rpb24ga2FtaWwoKSB7CiAgICAgICAgICAgIGxldCBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVzb2x2ZSgi0LPQvtGC0L7QstC+ISIpLCAzMDAwKQogICAgICAgICAgICB9KQogICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgcHJvbWlzZTsKICAgICAgICAgICAgLy8gY29uc29sZS5sb2cocmVzdWx0KTsKICAgICAgICAgICAgcmV0dXJuICfQmtCw0LzQuNC70Ywg0JDQsdC30LDQu9C+0LInOwogICAgICAgIH0KCiAgICAgICAga2FtaWwoKS50aGVuKChyZXMpID0+IGNvbnNvbGUubG9nKHJlcykpOwoKICAgICAgICBsZXQgc2V0dGVyID0gbmV3IFNldCgpOwogICAgICAgIGNvbnNvbGUubG9nKHNldHRlcik7CgogICAgICAgIHNldHRlci5hZGQoJ9C6Jyk7CiAgICAgICAgc2V0dGVyLmFkZCgn0LonKTsKICAgICAgICBzZXR0ZXIuYWRkKCfQsCcpOwogICAgICAgIGNvbnNvbGUubG9nKHNldHRlcik7CgogICAgICAgIGxldCBtYXBwZXIgPSBuZXcgTWFwKCk7CiAgICAgICAgbWFwcGVyLnNldCgxLCAn0JrQsNC80LjQu9GMJyk7CiAgICAgICAgY29uc29sZS5sb2cobWFwcGVyKTsKCiAgICAgICAgbWFwcGVyLnNldCgxLCAn0JjQstCw0L0nKTsKICAgICAgICBjb25zb2xlLmxvZyhtYXBwZXIpOwogICAgICAgIG1hcHBlci5zZXQoMiwgJ9Cf0LXRgtGAJyk7CiAgICAgICAgY29uc29sZS5sb2cobWFwcGVyKTsKCiAgICAgICAgY29uc29sZS5sb2cobWFwcGVyLmdldCgxKSk7CgogICAgPC9zY3JpcHQ+Cgo8L2JvZHk+CjwvaHRtbD4=&#8221; admin_label=&#8221;\u041a\u043e\u0434 \u0443\u0440\u043e\u043a\u0430&#8221; style=&#8221;docco&#8221; linenums=&#8221;on&#8221; usetabwidth=&#8221;on&#8221; tabwidth=&#8221;4&#8243; _builder_version=&#8221;3.27.4&#8243; body_font_size_tablet=&#8221;51&#8243; body_line_height_tablet=&#8221;2&#8243; header_font_size_tablet=&#8221;51&#8243; header_line_height_tablet=&#8221;2&#8243; z_index_tablet=&#8221;500&#8243; body_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; body_text_shadow_vertical_length_tablet=&#8221;0px&#8221; body_text_shadow_blur_strength_tablet=&#8221;1px&#8221; header_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; header_text_shadow_vertical_length_tablet=&#8221;0px&#8221; header_text_shadow_blur_strength_tablet=&#8221;1px&#8221; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; text_shadow_horizontal_length_tablet=&#8221;0px&#8221; text_shadow_vertical_length_tablet=&#8221;0px&#8221; text_shadow_blur_strength_tablet=&#8221;1px&#8221;]PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9ImllPWVkZ2UiPgogICAgPHRpdGxlPkRvY3VtZW50PC90aXRsZT4KPC9oZWFkPgo8Ym9keT4KICAgIAogICAgPHNjcmlwdD4KICAgICAgICAndXNlIHN0cmljdCc7CiAgICAgICAgLy8gKDEpIHZhciwgbGV0LCBjb25zdAogICAgICAgIHZhciBhID0gNTsKICAgICAgICBjb25zdCBiID0gMzsKICAgICAgICAvLyBiID0gYiArIDM7CiAgICAgICAgY29uc29sZS5sb2coYik7CgogICAgICAgIGZ1bmN0aW9uIGFkZE51bSh4KSB7CiAgICAgICAgICAgIGxldCBiID0gYTsKICAgICAgICAgICAgY29uc29sZS5sb2codGhpcyk7IC8vINC90LUg0LIg0YHRgtGA0L7Qs9C+0Lwg0YDQtdC20LjQvNC1IC0g0LrQvtC90YLQtdC60YIg0LLRi9C30L7QstCwCiAgICAgICAgICAgIHJldHVybiBiID0gYiArIHg7CiAgICAgICAgfQoKICAgICAgICBjb25zb2xlLmxvZyhhZGROdW0oNSkpOwogICAgICAgIGNvbnNvbGUubG9nKGEpOwoKICAgICAgICAvLyAoMikgLSDRgdGC0YDQtdC70L7Rh9C90YvQtSDRhNGD0L3QutGG0LjQuAoKICAgICAgICBmdW5jdGlvbiBzdW1tYShhLGIpIHsKICAgICAgICAgICAgY29uc29sZS5sb2codGhpcyk7CiAgICAgICAgICAgIHJldHVybiBhK2I7CiAgICAgICAgfQoKICAgICAgICBsZXQgc3VtID0gKGEsYikgPT4gewogICAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzKTsKICAgICAgICAgICAgcmV0dXJuIGErYgogICAgICAgIH07CgogICAgICAgIGNvbnNvbGUubG9nKHN1bSg1LDExKSk7CiAgICAgICAgY29uc29sZS5sb2coc3VtbWEoNSwxMSkpOwoKICAgICAgICB2YXIgbWFuID0gewogICAgICAgICAgICBuYW1lOiAn0JrQsNC80LjQu9GMJywKICAgICAgICAgICAgc2F5SGVsbG86IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhpcyk7CiAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhpcyk7CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhpcy5uYW1lICsgJyDQv9GA0LjQstC10YInKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICBzYXlCeWU6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhpcyk7CiAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4gewogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMpOwogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMubmFtZSArICcg0L\/QvtC60LAnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gdmFyIGhpS2FtID0gbWFuLnNheUhlbGxvKCk7CiAgICAgICAgLy8gaGlLYW0oKTsKCiAgICAgICAgdmFyIGJ5ZUthbSA9IG1hbi5zYXlCeWUoKTsKICAgICAgICBieWVLYW0oKTsKCiAgICAgICAgLy8gKDMpIC0g0YjQsNCx0LvQvtC90L3Ri9C1INC70LjRgtC10YDQsNC70YsKICAgICAgICBsZXQgbmFtZSA9ICfQmtCw0LzQuNC70YwnOwogICAgICAgIGxldCBzdXJuYW1lID0gJ9CQ0LHQt9Cw0LvQvtCyJzsKICAgICAgICBjb25zb2xlLmxvZyhuYW1lICsgIiAiICsgc3VybmFtZSk7CiAgICAgICAgY29uc29sZS5sb2coYCR7bmFtZX0gJHtzdXJuYW1lfWApOwoKCiAgICAgICAgLy8gKDQpINC00LXRgdGC0YDRg9C60YLRg9C70LjQt9Cw0YbQuNGPCiAgICAgICAgY29uc3QgYXJyID0gWzEsMiwzLDQsNV07CiAgICAgICAgY29uc3QgWyAsc2Vjb25kLCAsICxmaWZ0aF0gPSBhcnI7CiAgICAgICAgY29uc29sZS5sb2coc2Vjb25kLCBmaWZ0aCk7CgogICAgICAgIGxldCBhZ2UgPSAyOTsKICAgICAgICBsZXQgbmV4dEFnZSA9IDMwOwoKICAgICAgICBbYWdlLCBuZXh0QWdlXSA9IFtuZXh0QWdlLCBhZ2VdOwoKICAgICAgICBjb25zb2xlLmxvZyhhZ2UpOwogICAgICAgIGNvbnNvbGUubG9nKG5leHRBZ2UpOwoKICAgICAgICAvLyAoNCkgLSBmb3IuLi5vZgoKICAgICAgICBjb25zdCBzZWNvbmRBcnIgPSBbMSwyLDMsNCw1XTsKCiAgICAgICAgZm9yKGNvbnN0IG51bSBvZiBzZWNvbmRBcnIpIHsKICAgICAgICAgICAgY29uc29sZS5sb2cobnVtKTsgICAgICAgCiAgICAgICAgfQoKICAgICAgICAvLyAoNSkgLSDQv9Cw0YDQsNC80LXRgtGA0Ysg0L\/QviDRg9C80L7Qu9GH0LDQvdC40Y4KICAgICAgICBjb25zdCBwcmludE5hbWUgPSAobmFtZSA9ICfQmtCw0LzQuNC70YwnKSA9PiBjb25zb2xlLmxvZyhuYW1lKTsKCiAgICAgICAgcHJpbnROYW1lKCk7CiAgICAgICAgcHJpbnROYW1lKCfQmNCy0LDQvScpOwoKICAgICAgICAvLyAoNikgLSByZXN0CiAgICAgICAgY29uc3QgcHJpbnREYXRhID0gKG5hbWUsIC4uLmRhdGEpID0+IHsgCiAgICAgICAgICAgIGNvbnNvbGUubG9nKG5hbWUpOwogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTsKICAgICAgICB9CgogICAgICAgIHByaW50RGF0YSgn0JrQsNC80LjQu9GMJywgMjksICfQnNC+0YHQutCy0LAnKTsKCiAgICAgICAgY29uc29sZS5sb2coYXJyLmNvbmNhdChzZWNvbmRBcnIpKTsKICAgICAgICBjb25zb2xlLmxvZyhbLi4uYXJyLCAuLi5zZWNvbmRBcnJdKTsKCgogICAgICAgIC8vICg3KSAtINC\/0YDQvtC80LjRgdGLCiAgICAgICAgbGV0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVzb2x2ZSgpLCAzMDAwKTsKICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QoKSwgMjAwMCk7CiAgICAgICAgfSk7CiAgICAgICAgY29uc29sZS5sb2cocHJvbWlzZSk7CgogICAgICAgIHByb21pc2UudGhlbigKICAgICAgICAgICAgcmVzb2x2ZSA9PiBjb25zb2xlLmxvZygxKSwKICAgICAgICAgICAgcmVqZWN0ID0+IGNvbnNvbGUubG9nKDIpCiAgICAgICAgKTsKCiAgICAgICAgLy8gcHJvbWlzZS5jYXRjaCgKICAgICAgICAvLyAgICAgKCkgPT4gY29uc29sZS5sb2coJ2Vycm9yJykKICAgICAgICAvLyApOwoKICAgICAgICAvLyBwcm9taXNlLmZpbmFsbHkoCiAgICAgICAgLy8gICAgICgpID0+IGNvbnNvbGUubG9nKCdmaW5hbGx5JykKICAgICAgICAvLyApCgogICAgICAgIGxldCByZW1vdGVEYXRlID0gZmV0Y2goJ2h0dHA6Ly9qc29ucGxhY2Vob2xkZXIudHlwaWNvZGUuY29tL3VzZXJzJykKICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge3JldHVybiByZXNwb25zZS5qc29uKCl9KQogICAgICAgICAgICAgICAgICAgICAgICAudGhlbih0ZXh0ID0+IGNvbnNvbGUubG9nKHRleHQpKQogICAgCiAgICAgICAgLy8gKDgpIC0gYXN5bmMvYXdhaXQKCiAgICAgICAgYXN5bmMgZnVuY3Rpb24ga2FtaWwoKSB7CiAgICAgICAgICAgIGxldCBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVzb2x2ZSgi0LPQvtGC0L7QstC+ISIpLCAzMDAwKQogICAgICAgICAgICB9KQogICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgcHJvbWlzZTsKICAgICAgICAgICAgLy8gY29uc29sZS5sb2cocmVzdWx0KTsKICAgICAgICAgICAgcmV0dXJuICfQmtCw0LzQuNC70Ywg0JDQsdC30LDQu9C+0LInOwogICAgICAgIH0KCiAgICAgICAga2FtaWwoKS50aGVuKChyZXMpID0+IGNvbnNvbGUubG9nKHJlcykpOwoKICAgICAgICBsZXQgc2V0dGVyID0gbmV3IFNldCgpOwogICAgICAgIGNvbnNvbGUubG9nKHNldHRlcik7CgogICAgICAgIHNldHRlci5hZGQoJ9C6Jyk7CiAgICAgICAgc2V0dGVyLmFkZCgn0LonKTsKICAgICAgICBzZXR0ZXIuYWRkKCfQsCcpOwogICAgICAgIGNvbnNvbGUubG9nKHNldHRlcik7CgogICAgICAgIGxldCBtYXBwZXIgPSBuZXcgTWFwKCk7CiAgICAgICAgbWFwcGVyLnNldCgxLCAn0JrQsNC80LjQu9GMJyk7CiAgICAgICAgY29uc29sZS5sb2cobWFwcGVyKTsKCiAgICAgICAgbWFwcGVyLnNldCgxLCAn0JjQstCw0L0nKTsKICAgICAgICBjb25zb2xlLmxvZyhtYXBwZXIpOwogICAgICAgIG1hcHBlci5zZXQoMiwgJ9Cf0LXRgtGAJyk7CiAgICAgICAgY29uc29sZS5sb2cobWFwcGVyKTsKCiAgICAgICAgY29uc29sZS5sb2cobWFwcGVyLmdldCgxKSk7CgogICAgPC9zY3JpcHQ+Cgo8L2JvZHk+CjwvaHRtbD4=[\/et_pb_dmb_code_snippet][et_pb_dmb_code_snippet title=&#8221;Code lesson&#8221; code=&#8221;PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9ImllPWVkZ2UiPgogICAgPHRpdGxlPkRvY3VtZW50PC90aXRsZT4KPC9oZWFkPgo8Ym9keT4KICAgIAogICAgPHNjcmlwdD4KICAgICAgICAndXNlIHN0cmljdCcKCiAgICAgICAgY2xhc3MgUHJvZ3JhbW1lciB7CiAgICAgICAgICAgIG5hbWUgPSAn0JrQsNC80LjQu9GMJzsKICAgICAgICAgICAgbGFuZyA9ICdqYXZhc2NyaXB0JzsKCiAgICAgICAgICAgIGNvbnN0cnVjdG9yKGFnZSkgewogICAgICAgICAgICAgICAgdGhpcy5hZ2UgPSBhZ2U7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHNheUhpKCkgewogICAgICAgICAgICAgICAgY29uc29sZS5sb2coYCR7dGhpcy5uYW1lfSwg0L\/RgNC40LLQtdGCYCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGxldCBrYW0gPSBuZXcgUHJvZ3JhbW1lcigyOSk7CiAgICAgICAgY29uc29sZS5sb2coa2FtLm5hbWUpOwogICAgICAgIGthbS5zYXlIaSgpOwogICAgICAgIGNvbnNvbGUubG9nKGthbS5hZ2UpOwoKICAgICAgICBjbGFzcyBLYW1pbCBleHRlbmRzIFByb2dyYW1tZXIgewoKICAgICAgICAgICAgY29uc3RydWN0b3IobmFtZSkgewogICAgICAgICAgICAgICAgc3VwZXIoKTsgLy8g0L7QsdGP0LfQsNGC0LXQu9GM0L3QviDQtNC70Y8g0L\/QvtGC0L7QvNC60L7QsgogICAgICAgICAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgc2F5SGkoKSB7CiAgICAgICAgICAgICAgICBzdXBlci5zYXlIaSgpOwogICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ9Cd0YMg0L\/RgNC40LLQtdGCJyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGxldCBrYW1pbCA9IG5ldyBLYW1pbCgn0JrQsNC8Jyk7CiAgICAgICAga2FtaWwuc2F5SGkoKTsKICAgICAgICBjb25zb2xlLmxvZyhrYW1pbC5uYW1lKTsKICAgIDwvc2NyaXB0PgoKPC9ib2R5Pgo8L2h0bWw+&#8221; admin_label=&#8221;\u041a\u043e\u0434 \u0443\u0440\u043e\u043a\u0430 &#8221; style=&#8221;docco&#8221; linenums=&#8221;on&#8221; usetabwidth=&#8221;on&#8221; tabwidth=&#8221;4&#8243; _builder_version=&#8221;3.27.4&#8243; body_font_size_tablet=&#8221;51&#8243; body_line_height_tablet=&#8221;2&#8243; header_font_size_tablet=&#8221;51&#8243; header_line_height_tablet=&#8221;2&#8243; z_index_tablet=&#8221;500&#8243; body_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; body_text_shadow_vertical_length_tablet=&#8221;0px&#8221; body_text_shadow_blur_strength_tablet=&#8221;1px&#8221; header_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; header_text_shadow_vertical_length_tablet=&#8221;0px&#8221; header_text_shadow_blur_strength_tablet=&#8221;1px&#8221; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; text_shadow_horizontal_length_tablet=&#8221;0px&#8221; text_shadow_vertical_length_tablet=&#8221;0px&#8221; text_shadow_blur_strength_tablet=&#8221;1px&#8221;]PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9ImllPWVkZ2UiPgogICAgPHRpdGxlPkRvY3VtZW50PC90aXRsZT4KPC9oZWFkPgo8Ym9keT4KICAgIAogICAgPHNjcmlwdD4KICAgICAgICAndXNlIHN0cmljdCcKCiAgICAgICAgY2xhc3MgUHJvZ3JhbW1lciB7CiAgICAgICAgICAgIG5hbWUgPSAn0JrQsNC80LjQu9GMJzsKICAgICAgICAgICAgbGFuZyA9ICdqYXZhc2NyaXB0JzsKCiAgICAgICAgICAgIGNvbnN0cnVjdG9yKGFnZSkgewogICAgICAgICAgICAgICAgdGhpcy5hZ2UgPSBhZ2U7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHNheUhpKCkgewogICAgICAgICAgICAgICAgY29uc29sZS5sb2coYCR7dGhpcy5uYW1lfSwg0L\/RgNC40LLQtdGCYCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGxldCBrYW0gPSBuZXcgUHJvZ3JhbW1lcigyOSk7CiAgICAgICAgY29uc29sZS5sb2coa2FtLm5hbWUpOwogICAgICAgIGthbS5zYXlIaSgpOwogICAgICAgIGNvbnNvbGUubG9nKGthbS5hZ2UpOwoKICAgICAgICBjbGFzcyBLYW1pbCBleHRlbmRzIFByb2dyYW1tZXIgewoKICAgICAgICAgICAgY29uc3RydWN0b3IobmFtZSkgewogICAgICAgICAgICAgICAgc3VwZXIoKTsgLy8g0L7QsdGP0LfQsNGC0LXQu9GM0L3QviDQtNC70Y8g0L\/QvtGC0L7QvNC60L7QsgogICAgICAgICAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgc2F5SGkoKSB7CiAgICAgICAgICAgICAgICBzdXBlci5zYXlIaSgpOwogICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ9Cd0YMg0L\/RgNC40LLQtdGCJyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGxldCBrYW1pbCA9IG5ldyBLYW1pbCgn0JrQsNC8Jyk7CiAgICAgICAga2FtaWwuc2F5SGkoKTsKICAgICAgICBjb25zb2xlLmxvZyhrYW1pbC5uYW1lKTsKICAgIDwvc2NyaXB0PgoKPC9ib2R5Pgo8L2h0bWw+[\/et_pb_dmb_code_snippet][et_pb_comments _builder_version=&#8221;4.4.3&#8243; custom_margin=&#8221;30px||||false|false&#8221; hover_enabled=&#8221;0&#8243;][\/et_pb_comments][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In last lesson we began considering new modern javascript features.Today we&#8217;ll consider another of it. Today we will talk about async\/await &#8211; the new way to work with promises; new javascript data structure &#8211; Map and Set and also &#8220;syntax sugar&#8221; &#8211; classes. PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9ImllPWVkZ2UiPgogICAgPHRpdGxlPkRvY3VtZW50PC90aXRsZT4KPC9oZWFkPgo8Ym9keT4KICAgIAogICAgPHNjcmlwdD4KICAgICAgICAndXNlIHN0cmljdCc7CiAgICAgICAgLy8gKDEpIHZhciwgbGV0LCBjb25zdAogICAgICAgIHZhciBhID0gNTsKICAgICAgICBjb25zdCBiID0gMzsKICAgICAgICAvLyBiID0gYiArIDM7CiAgICAgICAgY29uc29sZS5sb2coYik7CgogICAgICAgIGZ1bmN0aW9uIGFkZE51bSh4KSB7CiAgICAgICAgICAgIGxldCBiID0gYTsKICAgICAgICAgICAgY29uc29sZS5sb2codGhpcyk7IC8vINC90LUg0LIg0YHRgtGA0L7Qs9C+0Lwg0YDQtdC20LjQvNC1IC0g0LrQvtC90YLQtdC60YIg0LLRi9C30L7QstCwCiAgICAgICAgICAgIHJldHVybiBiID0gYiArIHg7CiAgICAgICAgfQoKICAgICAgICBjb25zb2xlLmxvZyhhZGROdW0oNSkpOwogICAgICAgIGNvbnNvbGUubG9nKGEpOwoKICAgICAgICAvLyAoMikgLSDRgdGC0YDQtdC70L7Rh9C90YvQtSDRhNGD0L3QutGG0LjQuAoKICAgICAgICBmdW5jdGlvbiBzdW1tYShhLGIpIHsKICAgICAgICAgICAgY29uc29sZS5sb2codGhpcyk7CiAgICAgICAgICAgIHJldHVybiBhK2I7CiAgICAgICAgfQoKICAgICAgICBsZXQgc3VtID0gKGEsYikgPT4gewogICAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzKTsKICAgICAgICAgICAgcmV0dXJuIGErYgogICAgICAgIH07CgogICAgICAgIGNvbnNvbGUubG9nKHN1bSg1LDExKSk7CiAgICAgICAgY29uc29sZS5sb2coc3VtbWEoNSwxMSkpOwoKICAgICAgICB2YXIgbWFuID0gewogICAgICAgICAgICBuYW1lOiAn0JrQsNC80LjQu9GMJywKICAgICAgICAgICAgc2F5SGVsbG86IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhpcyk7CiAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhpcyk7CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhpcy5uYW1lICsgJyDQv9GA0LjQstC10YInKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICBzYXlCeWU6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhpcyk7CiAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4gewogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMpOwogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMubmFtZSArICcg0L\/QvtC60LAnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gdmFyIGhpS2FtID0gbWFuLnNheUhlbGxvKCk7CiAgICAgICAgLy8gaGlLYW0oKTsKCiAgICAgICAgdmFyIGJ5ZUthbSA9IG1hbi5zYXlCeWUoKTsKICAgICAgICBieWVLYW0oKTsKCiAgICAgICAgLy8gKDMpIC0g0YjQsNCx0LvQvtC90L3Ri9C1INC70LjRgtC10YDQsNC70YsKICAgICAgICBsZXQgbmFtZSA9ICfQmtCw0LzQuNC70YwnOwogICAgICAgIGxldCBzdXJuYW1lID0gJ9CQ0LHQt9Cw0LvQvtCyJzsKICAgICAgICBjb25zb2xlLmxvZyhuYW1lICsgIiAiICsgc3VybmFtZSk7CiAgICAgICAgY29uc29sZS5sb2coYCR7bmFtZX0gJHtzdXJuYW1lfWApOwoKCiAgICAgICAgLy8gKDQpINC00LXRgdGC0YDRg9C60YLRg9C70LjQt9Cw0YbQuNGPCiAgICAgICAgY29uc3QgYXJyID0gWzEsMiwzLDQsNV07CiAgICAgICAgY29uc3QgWyAsc2Vjb25kLCAsICxmaWZ0aF0gPSBhcnI7CiAgICAgICAgY29uc29sZS5sb2coc2Vjb25kLCBmaWZ0aCk7CgogICAgICAgIGxldCBhZ2UgPSAyOTsKICAgICAgICBsZXQgbmV4dEFnZSA9IDMwOwoKICAgICAgICBbYWdlLCBuZXh0QWdlXSA9IFtuZXh0QWdlLCBhZ2VdOwoKICAgICAgICBjb25zb2xlLmxvZyhhZ2UpOwogICAgICAgIGNvbnNvbGUubG9nKG5leHRBZ2UpOwoKICAgICAgICAvLyAoNCkgLSBmb3IuLi5vZgoKICAgICAgICBjb25zdCBzZWNvbmRBcnIgPSBbMSwyLDMsNCw1XTsKCiAgICAgICAgZm9yKGNvbnN0IG51bSBvZiBzZWNvbmRBcnIpIHsKICAgICAgICAgICAgY29uc29sZS5sb2cobnVtKTsgICAgICAgCiAgICAgICAgfQoKICAgICAgICAvLyAoNSkgLSDQv9Cw0YDQsNC80LXRgtGA0Ysg0L\/QviDRg9C80L7Qu9GH0LDQvdC40Y4KICAgICAgICBjb25zdCBwcmludE5hbWUgPSAobmFtZSA9ICfQmtCw0LzQuNC70YwnKSA9PiBjb25zb2xlLmxvZyhuYW1lKTsKCiAgICAgICAgcHJpbnROYW1lKCk7CiAgICAgICAgcHJpbnROYW1lKCfQmNCy0LDQvScpOwoKICAgICAgICAvLyAoNikgLSByZXN0CiAgICAgICAgY29uc3QgcHJpbnREYXRhID0gKG5hbWUsIC4uLmRhdGEpID0+IHsgCiAgICAgICAgICAgIGNvbnNvbGUubG9nKG5hbWUpOwogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTsKICAgICAgICB9CgogICAgICAgIHByaW50RGF0YSgn0JrQsNC80LjQu9GMJywgMjksICfQnNC+0YHQutCy0LAnKTsKCiAgICAgICAgY29uc29sZS5sb2coYXJyLmNvbmNhdChzZWNvbmRBcnIpKTsKICAgICAgICBjb25zb2xlLmxvZyhbLi4uYXJyLCAuLi5zZWNvbmRBcnJdKTsKCgogICAgICAgIC8vICg3KSAtINC\/0YDQvtC80LjRgdGLCiAgICAgICAgbGV0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVzb2x2ZSgpLCAzMDAwKTsKICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QoKSwgMjAwMCk7CiAgICAgICAgfSk7CiAgICAgICAgY29uc29sZS5sb2cocHJvbWlzZSk7CgogICAgICAgIHByb21pc2UudGhlbigKICAgICAgICAgICAgcmVzb2x2ZSA9PiBjb25zb2xlLmxvZygxKSwKICAgICAgICAgICAgcmVqZWN0ID0+IGNvbnNvbGUubG9nKDIpCiAgICAgICAgKTsKCiAgICAgICAgLy8gcHJvbWlzZS5jYXRjaCgKICAgICAgICAvLyAgICAgKCkgPT4gY29uc29sZS5sb2coJ2Vycm9yJykKICAgICAgICAvLyApOwoKICAgICAgICAvLyBwcm9taXNlLmZpbmFsbHkoCiAgICAgICAgLy8gICAgICgpID0+IGNvbnNvbGUubG9nKCdmaW5hbGx5JykKICAgICAgICAvLyApCgogICAgICAgIGxldCByZW1vdGVEYXRlID0gZmV0Y2goJ2h0dHA6Ly9qc29ucGxhY2Vob2xkZXIudHlwaWNvZGUuY29tL3VzZXJzJykKICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge3JldHVybiByZXNwb25zZS5qc29uKCl9KQogICAgICAgICAgICAgICAgICAgICAgICAudGhlbih0ZXh0ID0+IGNvbnNvbGUubG9nKHRleHQpKQogICAgCiAgICAgICAgLy8gKDgpIC0gYXN5bmMvYXdhaXQKCiAgICAgICAgYXN5bmMgZnVuY3Rpb24ga2FtaWwoKSB7CiAgICAgICAgICAgIGxldCBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVzb2x2ZSgi0LPQvtGC0L7QstC+ISIpLCAzMDAwKQogICAgICAgICAgICB9KQogICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgcHJvbWlzZTsKICAgICAgICAgICAgLy8gY29uc29sZS5sb2cocmVzdWx0KTsKICAgICAgICAgICAgcmV0dXJuICfQmtCw0LzQuNC70Ywg0JDQsdC30LDQu9C+0LInOwogICAgICAgIH0KCiAgICAgICAga2FtaWwoKS50aGVuKChyZXMpID0+IGNvbnNvbGUubG9nKHJlcykpOwoKICAgICAgICBsZXQgc2V0dGVyID0gbmV3IFNldCgpOwogICAgICAgIGNvbnNvbGUubG9nKHNldHRlcik7CgogICAgICAgIHNldHRlci5hZGQoJ9C6Jyk7CiAgICAgICAgc2V0dGVyLmFkZCgn0LonKTsKICAgICAgICBzZXR0ZXIuYWRkKCfQsCcpOwogICAgICAgIGNvbnNvbGUubG9nKHNldHRlcik7CgogICAgICAgIGxldCBtYXBwZXIgPSBuZXcgTWFwKCk7CiAgICAgICAgbWFwcGVyLnNldCgxLCAn0JrQsNC80LjQu9GMJyk7CiAgICAgICAgY29uc29sZS5sb2cobWFwcGVyKTsKCiAgICAgICAgbWFwcGVyLnNldCgxLCAn0JjQstCw0L0nKTsKICAgICAgICBjb25zb2xlLmxvZyhtYXBwZXIpOwogICAgICAgIG1hcHBlci5zZXQoMiwgJ9Cf0LXRgtGAJyk7CiAgICAgICAgY29uc29sZS5sb2cobWFwcGVyKTsKCiAgICAgICAgY29uc29sZS5sb2cobWFwcGVyLmdldCgxKSk7CgogICAgPC9zY3JpcHQ+Cgo8L2JvZHk+CjwvaHRtbD4=PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9ImllPWVkZ2UiPgogICAgPHRpdGxlPkRvY3VtZW50PC90aXRsZT4KPC9oZWFkPgo8Ym9keT4KICAgIAogICAgPHNjcmlwdD4KICAgICAgICAndXNlIHN0cmljdCcKCiAgICAgICAgY2xhc3MgUHJvZ3JhbW1lciB7CiAgICAgICAgICAgIG5hbWUgPSAn0JrQsNC80LjQu9GMJzsKICAgICAgICAgICAgbGFuZyA9ICdqYXZhc2NyaXB0JzsKCiAgICAgICAgICAgIGNvbnN0cnVjdG9yKGFnZSkgewogICAgICAgICAgICAgICAgdGhpcy5hZ2UgPSBhZ2U7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHNheUhpKCkgewogICAgICAgICAgICAgICAgY29uc29sZS5sb2coYCR7dGhpcy5uYW1lfSwg0L\/RgNC40LLQtdGCYCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGxldCBrYW0gPSBuZXcgUHJvZ3JhbW1lcigyOSk7CiAgICAgICAgY29uc29sZS5sb2coa2FtLm5hbWUpOwogICAgICAgIGthbS5zYXlIaSgpOwogICAgICAgIGNvbnNvbGUubG9nKGthbS5hZ2UpOwoKICAgICAgICBjbGFzcyBLYW1pbCBleHRlbmRzIFByb2dyYW1tZXIgewoKICAgICAgICAgICAgY29uc3RydWN0b3IobmFtZSkgewogICAgICAgICAgICAgICAgc3VwZXIoKTsgLy8g0L7QsdGP0LfQsNGC0LXQu9GM0L3QviDQtNC70Y8g0L\/QvtGC0L7QvNC60L7QsgogICAgICAgICAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgc2F5SGkoKSB7CiAgICAgICAgICAgICAgICBzdXBlci5zYXlIaSgpOwogICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ9Cd0YMg0L\/RgNC40LLQtdGCJyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGxldCBrYW1pbCA9IG5ldyBLYW1pbCgn0JrQsNC8Jyk7CiAgICAgICAga2FtaWwuc2F5SGkoKTsKICAgICAgICBjb25zb2xlLmxvZyhrYW1pbC5uYW1lKTsKICAgIDwvc2NyaXB0PgoKPC9ib2R5Pgo8L2h0bWw+<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"[et_pb_section bb_built=\"1\"][et_pb_row][\/et_pb_row][\/et_pb_section]","_et_gb_content_width":"","footnotes":""},"categories":[256,219],"tags":[],"class_list":["post-30651","post","type-post","status-publish","format-standard","hentry","category-javascript","category-tutorials"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>New javascript features overview. Part two - \u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430<\/title>\n<meta name=\"description\" content=\"In the second part of overview new javascript features we will consider async\/await, new javascript data structure - Map and Set and also classes\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/javascript-new-features-overview-part-two\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"New javascript features overview.\" \/>\n<meta property=\"og:description\" content=\"In the second part of overview new javascript features we will consider async\/await, new javascript data structure - Map and Set and also classes\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/javascript-new-features-overview-part-two\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/kamabzalov\" \/>\n<meta property=\"article:published_time\" content=\"2019-09-13T19:37:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-04-11T19:05:02+00:00\" \/>\n<meta name=\"author\" content=\"Kamil&#039; Abzalov\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"New javascript features overview.\" \/>\n<meta name=\"twitter:description\" content=\"In the second part of overview new javascript features we will consider async\/await, new javascript data structure - Map and Set and also classes\" \/>\n<meta name=\"twitter:creator\" content=\"@kamabzalov\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kamil&#039; Abzalov\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/javascript\\\/javascript-new-features-overview-part-two\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/javascript\\\/javascript-new-features-overview-part-two\\\/\"},\"author\":{\"name\":\"Kamil' Abzalov\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#\\\/schema\\\/person\\\/9c53360f21b83306ba40c2231573c600\"},\"headline\":\"New javascript features overview. Part two\",\"datePublished\":\"2019-09-13T19:37:40+00:00\",\"dateModified\":\"2020-04-11T19:05:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/javascript\\\/javascript-new-features-overview-part-two\\\/\"},\"wordCount\":2916,\"commentCount\":0,\"articleSection\":[\"JavaScript\",\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/javascript\\\/javascript-new-features-overview-part-two\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/javascript\\\/javascript-new-features-overview-part-two\\\/\",\"url\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/javascript\\\/javascript-new-features-overview-part-two\\\/\",\"name\":\"New javascript features overview. Part two - \u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#website\"},\"datePublished\":\"2019-09-13T19:37:40+00:00\",\"dateModified\":\"2020-04-11T19:05:02+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#\\\/schema\\\/person\\\/9c53360f21b83306ba40c2231573c600\"},\"description\":\"In the second part of overview new javascript features we will consider async\\\/await, new javascript data structure - Map and Set and also classes\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/javascript\\\/javascript-new-features-overview-part-two\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/javascript\\\/javascript-new-features-overview-part-two\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/javascript\\\/javascript-new-features-overview-part-two\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\",\"item\":\"https:\\\/\\\/kamil-abzalov.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"New javascript features overview. Part two\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#website\",\"url\":\"https:\\\/\\\/kamil-abzalov.com\\\/\",\"name\":\"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/kamil-abzalov.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#\\\/schema\\\/person\\\/9c53360f21b83306ba40c2231573c600\",\"name\":\"Kamil' Abzalov\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g\",\"caption\":\"Kamil' Abzalov\"},\"sameAs\":[\"https:\\\/\\\/kamil-abzalov.com\\\/\",\"https:\\\/\\\/www.facebook.com\\\/kamabzalov\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/kamabzalov\",\"https:\\\/\\\/x.com\\\/kamabzalov\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/kamabzalov\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"New javascript features overview. Part two - \u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430","description":"In the second part of overview new javascript features we will consider async\/await, new javascript data structure - Map and Set and also classes","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/javascript-new-features-overview-part-two\/","og_locale":"en_US","og_type":"article","og_title":"New javascript features overview.","og_description":"In the second part of overview new javascript features we will consider async\/await, new javascript data structure - Map and Set and also classes","og_url":"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/javascript-new-features-overview-part-two\/","og_site_name":"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430","article_author":"https:\/\/www.facebook.com\/kamabzalov","article_published_time":"2019-09-13T19:37:40+00:00","article_modified_time":"2020-04-11T19:05:02+00:00","author":"Kamil' Abzalov","twitter_card":"summary_large_image","twitter_title":"New javascript features overview.","twitter_description":"In the second part of overview new javascript features we will consider async\/await, new javascript data structure - Map and Set and also classes","twitter_creator":"@kamabzalov","twitter_misc":{"Written by":"Kamil' Abzalov","Est. reading time":"15 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/javascript-new-features-overview-part-two\/#article","isPartOf":{"@id":"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/javascript-new-features-overview-part-two\/"},"author":{"name":"Kamil' Abzalov","@id":"https:\/\/kamil-abzalov.com\/#\/schema\/person\/9c53360f21b83306ba40c2231573c600"},"headline":"New javascript features overview. Part two","datePublished":"2019-09-13T19:37:40+00:00","dateModified":"2020-04-11T19:05:02+00:00","mainEntityOfPage":{"@id":"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/javascript-new-features-overview-part-two\/"},"wordCount":2916,"commentCount":0,"articleSection":["JavaScript","Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kamil-abzalov.com\/videouroki\/javascript\/javascript-new-features-overview-part-two\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/javascript-new-features-overview-part-two\/","url":"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/javascript-new-features-overview-part-two\/","name":"New javascript features overview. Part two - \u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430","isPartOf":{"@id":"https:\/\/kamil-abzalov.com\/#website"},"datePublished":"2019-09-13T19:37:40+00:00","dateModified":"2020-04-11T19:05:02+00:00","author":{"@id":"https:\/\/kamil-abzalov.com\/#\/schema\/person\/9c53360f21b83306ba40c2231573c600"},"description":"In the second part of overview new javascript features we will consider async\/await, new javascript data structure - Map and Set and also classes","breadcrumb":{"@id":"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/javascript-new-features-overview-part-two\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kamil-abzalov.com\/videouroki\/javascript\/javascript-new-features-overview-part-two\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/kamil-abzalov.com\/videouroki\/javascript\/javascript-new-features-overview-part-two\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/kamil-abzalov.com\/en\/"},{"@type":"ListItem","position":2,"name":"New javascript features overview. Part two"}]},{"@type":"WebSite","@id":"https:\/\/kamil-abzalov.com\/#website","url":"https:\/\/kamil-abzalov.com\/","name":"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kamil-abzalov.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/kamil-abzalov.com\/#\/schema\/person\/9c53360f21b83306ba40c2231573c600","name":"Kamil' Abzalov","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g","caption":"Kamil' Abzalov"},"sameAs":["https:\/\/kamil-abzalov.com\/","https:\/\/www.facebook.com\/kamabzalov","https:\/\/www.linkedin.com\/in\/kamabzalov","https:\/\/x.com\/kamabzalov","https:\/\/www.youtube.com\/user\/kamabzalov"]}]}},"_links":{"self":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts\/30651","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/comments?post=30651"}],"version-history":[{"count":3,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts\/30651\/revisions"}],"predecessor-version":[{"id":32132,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts\/30651\/revisions\/32132"}],"wp:attachment":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/media?parent=30651"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/categories?post=30651"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/tags?post=30651"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}