{"id":2727,"date":"2024-10-25T20:32:07","date_gmt":"2024-10-25T13:32:07","guid":{"rendered":"https:\/\/fstack.io.vn\/?p=2727"},"modified":"2024-10-25T21:52:29","modified_gmt":"2024-10-25T14:52:29","slug":"mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao","status":"publish","type":"post","link":"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/","title":{"rendered":"M\u1ed9t s\u1ed1 c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n JavaScript t\u1eeb c\u01a1 b\u1ea3n \u0111\u1ebfn n\u00e2ng cao"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"2727\" class=\"elementor elementor-2727\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-68f48cc e-flex e-con-boxed e-con e-parent\" data-id=\"68f48cc\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7b7bf0d elementor-widget elementor-widget-heading\" data-id=\"7b7bf0d\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Danh m\u1ee5c b\u00e0i vi\u1ebft<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Phan_1_Cau_hoi_JavaScript_co_ban\" >Ph\u1ea7n 1: C\u00e2u h\u1ecfi JavaScript c\u01a1 b\u1ea3n<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#JavaScript_la_gi\" >JavaScript l\u00e0 g\u00ec?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Su_khac_nhau_giua_let_const_va_var_la_gi\" >S\u1ef1 kh\u00e1c nhau gi\u1eefa let, const, v\u00e0 var l\u00e0 g\u00ec?<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Vi_du\" >V\u00ed d\u1ee5<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Var\" >Var<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Let\" >Let<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Const\" >Const<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Khi_nao_nen_su_dung_Var_Let_Const\" >Khi n\u00e0o n\u00ean s\u1eed d\u1ee5ng Var, Let &amp; Const?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#JavaScript_la_ngon_ngu_don_luong_single-threaded_hay_da_luong_multi-threaded\" >JavaScript l\u00e0 ng\u00f4n ng\u1eef \u0111\u01a1n lu\u1ed3ng (single-threaded) hay \u0111a lu\u1ed3ng (multi-threaded)?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Closure_la_gi\" >Closure l\u00e0 g\u00ec?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Arrow_function_trong_JavaScript_la_gi\" >Arrow function trong JavaScript l\u00e0 g\u00ec?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Event_delegation_la_gi\" >Event delegation l\u00e0 g\u00ec?<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Uu_diem_event_delegation\" >\u01afu \u0111i\u1ec3m event delegation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Cach_thuc_hoat_dong_cua_event_delegation\" >C\u00e1ch th\u1ee9c ho\u1ea1t \u0111\u1ed9ng c\u1ee7a event delegation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Ung_dung_cua_event_delegation\" >\u1ee8ng d\u1ee5ng c\u1ee7a event delegation<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Phan_2_Cau_hoi_JavaScript_trung_cap\" >Ph\u1ea7n 2: C\u00e2u h\u1ecfi JavaScript trung c\u1ea5p<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Su_khac_biet_giua_va_trong_JavaScript_la_gi\" >S\u1ef1 kh\u00e1c bi\u1ec7t gi\u1eefa == v\u00e0 === trong JavaScript l\u00e0 g\u00ec?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Giai_thich_ve_hoisting_trong_JavaScript\" >Gi\u1ea3i th\u00edch v\u1ec1 hoisting trong JavaScript.<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Hoisting_voi_bien\" >Hoisting v\u1edbi bi\u1ebfn:<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Hoisting_voi_ham\" >Hoisting v\u1edbi h\u00e0m:<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Luu_y_quan_trong\" >L\u01b0u \u00fd quan tr\u1ecdng:<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Callback_la_gi\" >Callback l\u00e0 g\u00ec?<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Tai_sao_can_su_dung_callback\" >T\u1ea1i sao c\u1ea7n s\u1eed d\u1ee5ng callback?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Cac_truong_hop_su_dung_pho_bien_cua_callback\" >C\u00e1c tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng ph\u1ed5 bi\u1ebfn c\u1ee7a callback<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Tai_sao_callback_lai_quan_trong\" >T\u1ea1i sao callback l\u1ea1i quan tr\u1ecdng?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Nhuoc_diem_cua_callback\" >Nh\u01b0\u1ee3c \u0111i\u1ec3m c\u1ee7a callback?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Giai_phap_cho_callback_hell_la_gi\" >Gi\u1ea3i ph\u00e1p cho callback hell l\u00e0 g\u00ec?<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-28\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Su_khac_biet_giua_map_filter_va_reduce_la_gi\" >S\u1ef1 kh\u00e1c bi\u1ec7t gi\u1eefa map(), filter(), v\u00e0 reduce() l\u00e0 g\u00ec?<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-29\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Khi_nao_nen_su_dung_phuong_thuc_nao\" >Khi n\u00e0o n\u00ean s\u1eed d\u1ee5ng ph\u01b0\u01a1ng th\u1ee9c n\u00e0o?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-30\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Luu_y\" >L\u01b0u \u00fd<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-31\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Vi_du_ket_hop\" >V\u00ed d\u1ee5 k\u1ebft h\u1ee3p<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-32\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Prototype_trong_JavaScript_la_gi\" >Prototype trong JavaScript l\u00e0 g\u00ec?<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-33\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Tai_sao_Prototype_lai_quan_trong\" >T\u1ea1i sao Prototype l\u1ea1i quan tr\u1ecdng?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-34\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Cach_hoat_dong_cua_Prototype\" >C\u00e1ch ho\u1ea1t \u0111\u1ed9ng c\u1ee7a Prototype<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-35\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Ung_dung_cua_Prototype\" >\u1ee8ng d\u1ee5ng c\u1ee7a Prototype<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-36\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Promise_la_gi_va_dung_khi_nao\" >Promise l\u00e0 g\u00ec v\u00e0 d\u00f9ng khi n\u00e0o?<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-37\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Tai_sao_can_su_dung_Promise\" >T\u1ea1i sao c\u1ea7n s\u1eed d\u1ee5ng Promise?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-38\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Cach_hoat_dong_cua_Promise\" >C\u00e1ch ho\u1ea1t \u0111\u1ed9ng c\u1ee7a Promise<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-39\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Uu_diem_cua_Promise\" >\u01afu \u0111i\u1ec3m c\u1ee7a Promise<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-40\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Khi_nao_nen_su_dung_Promise\" >Khi n\u00e0o n\u00ean s\u1eed d\u1ee5ng Promise?<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-41\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Phan_3_Cau_hoi_JavaScript_nang_cao\" >Ph\u1ea7n 3: C\u00e2u h\u1ecfi JavaScript n\u00e2ng cao<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-42\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#AsyncAwait_la_gi_va_hoat_dong_nhu_the_nao\" >Async\/Await l\u00e0 g\u00ec v\u00e0 ho\u1ea1t \u0111\u1ed9ng nh\u01b0 th\u1ebf n\u00e0o?<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-43\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Async_Khai_bao_ham_bat_dong_bo\" >Async: Khai b\u00e1o h\u00e0m b\u1ea5t \u0111\u1ed3ng b\u1ed9<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-44\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Await_Cho_doi_mot_Promise\" >Await: Ch\u1edd \u0111\u1ee3i m\u1ed9t Promise<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-45\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Cach_hoat_dong_cua_AsyncAwait\" >C\u00e1ch ho\u1ea1t \u0111\u1ed9ng c\u1ee7a Async\/Await<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-46\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Tai_sao_nen_su_dung_AsyncAwait\" >T\u1ea1i sao n\u00ean s\u1eed d\u1ee5ng Async\/Await?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-47\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Vi_du_cu_the_ve_async_await\" >V\u00ed d\u1ee5 c\u1ee5 th\u1ec3 v\u1ec1 async &amp; await<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-48\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#So_sanh_voi_Promise\" >So s\u00e1nh v\u1edbi Promise<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-49\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Explain_Event_Loop_in_JavaScript\" >Explain Event Loop in JavaScript.<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-50\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Vong_lap_su_kien_hoat_dong_nhu_the_nao\" >V\u00f2ng l\u1eb7p s\u1ef1 ki\u1ec7n ho\u1ea1t \u0111\u1ed9ng nh\u01b0 th\u1ebf n\u00e0o?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-51\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Tai_sao_vong_lap_su_kien_lai_quan_trong\" >T\u1ea1i sao v\u00f2ng l\u1eb7p s\u1ef1 ki\u1ec7n l\u1ea1i quan tr\u1ecdng?<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-52\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#The_nao_la_Context_va_Scope_trong_JavaScript\" >Th\u1ebf n\u00e0o l\u00e0 Context v\u00e0 Scope trong JavaScript?<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-53\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Context_Ngu_canh\" >Context (Ng\u1eef c\u1ea3nh)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-54\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Scope_Pham_vi\" >Scope (Ph\u1ea1m vi)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-55\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Su_khac_biet_giua_Context_va_Scope\" >S\u1ef1 kh\u00e1c bi\u1ec7t gi\u1eefa Context v\u00e0 Scope<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-56\" href=\"https:\/\/fstack.io.vn\/blog\/mot-so-cau-hoi-phong-van-javascript-tu-co-ban-den-nang-cao\/#Su_khac_biet_giua_call_apply_va_bind_la_gi\" >S\u1ef1 kh\u00e1c bi\u1ec7t gi\u1eefa call, apply, v\u00e0 bind l\u00e0 g\u00ec?<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Phan_1_Cau_hoi_JavaScript_co_ban\"><\/span>Ph\u1ea7n 1: C\u00e2u h\u1ecfi JavaScript c\u01a1 b\u1ea3n<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ea8a21f elementor-widget elementor-widget-heading\" data-id=\"ea8a21f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"JavaScript_la_gi\"><\/span>JavaScript l\u00e0 g\u00ec?<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-35b9a35 elementor-widget elementor-widget-text-editor\" data-id=\"35b9a35\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>JavaScript l\u00e0 ng\u00f4n ng\u1eef <a href=\"https:\/\/fstack.io.vn\/blog\/lap-trinh-la-gi-mot-so-dac-diem-cua-lap-trinh-ma-ban-nen-biet\/\">l\u1eadp tr\u00ecnh<\/a> ph\u00eda client v\u00e0 server-side, th\u01b0\u1eddng \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 t\u1ea1o hi\u1ec7u \u1ee9ng \u0111\u1ed9ng tr\u00ean trang web, t\u01b0\u01a1ng t\u00e1c v\u1edbi ng\u01b0\u1eddi d\u00f9ng v\u00e0 x\u1eed l\u00fd c\u00e1c s\u1ef1 ki\u1ec7n.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dfb13d0 elementor-widget elementor-widget-heading\" data-id=\"dfb13d0\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Su_khac_nhau_giua_let_const_va_var_la_gi\"><\/span>S\u1ef1 kh\u00e1c nhau gi\u1eefa let, const, v\u00e0 var l\u00e0 g\u00ec?<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bcb67cd elementor-widget elementor-widget-text-editor\" data-id=\"bcb67cd\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li><code>var<\/code>: c\u00f3 ph\u1ea1m vi function-scoped, c\u00f3 th\u1ec3 khai b\u00e1o l\u1ea1i v\u00e0 kh\u00f4ng b\u1ecb block scope.<\/li><li><code>let<\/code>: c\u00f3 ph\u1ea1m vi block-scoped v\u00e0 kh\u00f4ng th\u1ec3 khai b\u00e1o l\u1ea1i trong c\u00f9ng m\u1ed9t block.<\/li><li><code>const<\/code>: gi\u1ed1ng <code>let<\/code> nh\u01b0ng kh\u00f4ng th\u1ec3 g\u00e1n l\u1ea1i gi\u00e1 tr\u1ecb sau khi khai b\u00e1o.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2383ba3 elementor-widget elementor-widget-heading\" data-id=\"2383ba3\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Vi_du\"><\/span>V\u00ed d\u1ee5<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-088f865 elementor-widget elementor-widget-heading\" data-id=\"088f865\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Var\"><\/span>Var<span class=\"ez-toc-section-end\"><\/span><\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2ea7967 elementor-widget elementor-widget-code-highlight\" data-id=\"2ea7967\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>function myFunction() {\n  var x = 10;\n  console.log(x); \/\/ Output: 10\n\n  if (true) {\n    var x = 20; \/\/ Khai b\u00e1o l\u1ea1i x trong block, nh\u01b0ng v\u1eabn gi\u1eef gi\u00e1 tr\u1ecb 20 \u1edf ngo\u00e0i block\n    console.log(x); \/\/ Output: 20\n  }\n\n  console.log(x); \/\/ Output: 20\n}\n\nmyFunction();<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cdbe244 elementor-widget elementor-widget-text-editor\" data-id=\"cdbe244\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul data-sourcepos=\"23:1-26:0\"><li data-sourcepos=\"23:1-23:104\"><strong>Ph\u1ea1m vi h\u00e0m:<\/strong> Bi\u1ebfn <code>x<\/code> \u0111\u01b0\u1ee3c khai b\u00e1o trong h\u00e0m <code>myFunction<\/code>, do \u0111\u00f3 n\u00f3 ch\u1ec9 c\u00f3 ph\u1ea1m vi trong h\u00e0m n\u00e0y.<\/li><li data-sourcepos=\"24:1-24:126\"><strong>Khai b\u00e1o l\u1ea1i:<\/strong> Ch\u00fang ta c\u00f3 th\u1ec3 khai b\u00e1o l\u1ea1i <code>x<\/code> nhi\u1ec1u l\u1ea7n trong c\u00f9ng m\u1ed9t h\u00e0m. Gi\u00e1 tr\u1ecb cu\u1ed1i c\u00f9ng \u0111\u01b0\u1ee3c g\u00e1n s\u1ebd \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng.<\/li><li data-sourcepos=\"25:1-26:0\"><strong>Kh\u00f4ng c\u00f3 block scope:<\/strong> Gi\u00e1 tr\u1ecb c\u1ee7a <code>x<\/code> \u0111\u01b0\u1ee3c thay \u0111\u1ed5i b\u00ean trong block <code>if<\/code> c\u0169ng \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn gi\u00e1 tr\u1ecb c\u1ee7a <code>x<\/code> b\u00ean ngo\u00e0i block.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7ad4858 elementor-widget elementor-widget-heading\" data-id=\"7ad4858\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Let\"><\/span>Let<span class=\"ez-toc-section-end\"><\/span><\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-70d5d0c elementor-widget elementor-widget-code-highlight\" data-id=\"70d5d0c\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>function myFunction() {\n  let x = 10;\n  console.log(x); \/\/ Output: 10\n\n  if (true) {\n    let x = 20; \/\/ Khai b\u00e1o l\u1ea1i x trong block, t\u1ea1o m\u1ed9t bi\u1ebfn x m\u1edbi\n    console.log(x); \/\/ Output: 20\n  }\n\n  console.log(x); \/\/ Output: 10\n}\n\nmyFunction();<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8ef2873 elementor-widget elementor-widget-text-editor\" data-id=\"8ef2873\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"45:1-45:129\"><strong>Ph\u1ea1m vi kh\u1ed1i:<\/strong> Bi\u1ebfn <code>x<\/code> \u0111\u01b0\u1ee3c khai b\u00e1o trong block <code>if<\/code> l\u00e0 m\u1ed9t bi\u1ebfn ri\u00eang bi\u1ec7t, kh\u00f4ng \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn bi\u1ebfn <code>x<\/code> b\u00ean ngo\u00e0i block.<\/li><li data-sourcepos=\"46:1-47:0\"><strong>Kh\u00f4ng th\u1ec3 khai b\u00e1o l\u1ea1i:<\/strong> Ch\u00fang ta kh\u00f4ng th\u1ec3 khai b\u00e1o l\u1ea1i <code>x<\/code> trong c\u00f9ng m\u1ed9t block.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0c2630b elementor-widget elementor-widget-heading\" data-id=\"0c2630b\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Const\"><\/span>Const<span class=\"ez-toc-section-end\"><\/span><\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d647adf elementor-widget elementor-widget-code-highlight\" data-id=\"d647adf\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>function myFunction() {\n  const x = 10;\n  console.log(x); \/\/ Output: 10\n\n  \/\/ x = 20; \/\/ L\u1ed7i: Cannot assign to constant variable.\n\n  const person = { name: \"John\" };\n  person.name = \"Doe\"; \/\/ C\u00f3 th\u1ec3 thay \u0111\u1ed5i thu\u1ed9c t\u00ednh c\u1ee7a \u0111\u1ed1i t\u01b0\u1ee3ng\n}\n\nmyFunction();<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5efcb1f elementor-widget elementor-widget-text-editor\" data-id=\"5efcb1f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"64:1-64:36\"><strong>Ph\u1ea1m vi kh\u1ed1i:<\/strong> Gi\u1ed1ng nh\u01b0 <code>let<\/code>.<\/li><li data-sourcepos=\"65:1-66:0\"><strong>Kh\u00f4ng th\u1ec3 g\u00e1n l\u1ea1i:<\/strong> Ch\u00fang ta kh\u00f4ng th\u1ec3 thay \u0111\u1ed5i gi\u00e1 tr\u1ecb c\u1ee7a <code>x<\/code> sau khi khai b\u00e1o. Tuy nhi\u00ean, n\u1ebfu <code>x<\/code> l\u00e0 m\u1ed9t \u0111\u1ed1i t\u01b0\u1ee3ng, ch\u00fang ta v\u1eabn c\u00f3 th\u1ec3 thay \u0111\u1ed5i c\u00e1c thu\u1ed9c t\u00ednh c\u1ee7a \u0111\u1ed1i t\u01b0\u1ee3ng \u0111\u00f3.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ccc7e24 elementor-widget elementor-widget-heading\" data-id=\"ccc7e24\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Khi_nao_nen_su_dung_Var_Let_Const\"><\/span>Khi n\u00e0o n\u00ean s\u1eed d\u1ee5ng Var, Let &amp; Const?<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9cd305f elementor-widget elementor-widget-text-editor\" data-id=\"9cd305f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul data-sourcepos=\"69:1-72:0\"><li data-sourcepos=\"69:1-69:138\"><strong>var:<\/strong> N\u00ean tr\u00e1nh s\u1eed d\u1ee5ng <code>var<\/code> trong c\u00e1c d\u1ef1 \u00e1n m\u1edbi v\u00ec n\u00f3 c\u00f3 th\u1ec3 d\u1eabn \u0111\u1ebfn c\u00e1c v\u1ea5n \u0111\u1ec1 v\u1ec1 ph\u1ea1m vi v\u00e0 g\u00e2y kh\u00f3 kh\u0103n trong vi\u1ec7c qu\u1ea3n l\u00fd code.<\/li><li data-sourcepos=\"70:1-70:89\"><strong>let:<\/strong> S\u1eed d\u1ee5ng <code>let<\/code> khi b\u1ea1n c\u1ea7n m\u1ed9t bi\u1ebfn c\u00f3 ph\u1ea1m vi kh\u1ed1i v\u00e0 gi\u00e1 tr\u1ecb c\u00f3 th\u1ec3 thay \u0111\u1ed5i.<\/li><li data-sourcepos=\"71:1-72:0\"><strong>const:<\/strong> S\u1eed d\u1ee5ng <code>const<\/code> khi b\u1ea1n mu\u1ed1n m\u1ed9t gi\u00e1 tr\u1ecb kh\u00f4ng \u0111\u1ed5i trong su\u1ed1t qu\u00e1 tr\u00ecnh th\u1ef1c thi.<\/li><\/ul><p data-sourcepos=\"73:1-73:10\"><strong>L\u01b0u \u00fd:<\/strong><\/p><ul data-sourcepos=\"75:1-77:0\"><li data-sourcepos=\"75:1-75:106\"><strong>Hoisting:<\/strong> C\u1ea3 <code>var<\/code>, <code>let<\/code> v\u00e0 <code>const<\/code> \u0111\u1ec1u \u0111\u01b0\u1ee3c hoisting, nh\u01b0ng c\u00e1ch ch\u00fang \u0111\u01b0\u1ee3c kh\u1edfi t\u1ea1o l\u00e0 kh\u00e1c nhau.<\/li><li data-sourcepos=\"76:1-77:0\"><strong>Temporal Dead Zone (TDZ):<\/strong> Bi\u1ebfn <code>let<\/code> v\u00e0 <code>const<\/code> s\u1ebd n\u1eb1m trong TDZ cho \u0111\u1ebfn khi ch\u00fang \u0111\u01b0\u1ee3c khai b\u00e1o. N\u1ebfu b\u1ea1n c\u1ed1 g\u1eafng truy c\u1eadp bi\u1ebfn tr\u01b0\u1edbc khi n\u00f3 \u0111\u01b0\u1ee3c khai b\u00e1o, s\u1ebd x\u1ea3y ra l\u1ed7i.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d011461 elementor-widget elementor-widget-heading\" data-id=\"d011461\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"JavaScript_la_ngon_ngu_don_luong_single-threaded_hay_da_luong_multi-threaded\"><\/span>JavaScript l\u00e0 ng\u00f4n ng\u1eef \u0111\u01a1n lu\u1ed3ng (single-threaded) hay \u0111a lu\u1ed3ng (multi-threaded)?<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-073e921 elementor-widget elementor-widget-text-editor\" data-id=\"073e921\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>JavaScript l\u00e0 ng\u00f4n ng\u1eef \u0111\u01a1n lu\u1ed3ng, s\u1eed d\u1ee5ng <strong>event loop<\/strong> v\u00e0 <strong>callback queue<\/strong> \u0111\u1ec3 qu\u1ea3n l\u00fd c\u00e1c t\u00e1c v\u1ee5 b\u1ea5t \u0111\u1ed3ng b\u1ed9.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4e70394 elementor-widget elementor-widget-code-highlight\" data-id=\"4e70394\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>console.log('Start');\n\nsetTimeout(() => {\n  console.log('Callback');\n}, 0);\n\nconsole.log('End');\n\n\/*\nK\u1ebft qu\u1ea3:\n    Start\n    End\n    Callback\n*\/<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a84a1bf elementor-widget elementor-widget-text-editor\" data-id=\"a84a1bf\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul data-sourcepos=\"31:1-36:0\"><li data-sourcepos=\"31:1-36:0\"><strong>Gi\u1ea3i th\u00edch:<\/strong><ol data-sourcepos=\"32:5-36:0\"><li data-sourcepos=\"32:5-32:75\"><code>console.log('Start');<\/code> \u0111\u01b0\u1ee3c th\u1ef1c thi ngay l\u1eadp t\u1ee9c v\u00e0 in ra &#8220;Start&#8221;.<\/li><li data-sourcepos=\"33:5-33:103\"><code>setTimeout()<\/code> t\u1ea1o ra m\u1ed9t callback v\u00e0 \u0111\u01b0a n\u00f3 v\u00e0o Callback Queue, nh\u01b0ng v\u1edbi th\u1eddi gian ch\u1edd l\u00e0 0ms.<\/li><li data-sourcepos=\"34:5-34:66\"><code>console.log('End');<\/code> \u0111\u01b0\u1ee3c th\u1ef1c thi ti\u1ebfp theo, in ra &#8220;End&#8221;.<\/li><li data-sourcepos=\"35:5-36:0\">Sau khi Call Stack r\u1ed7ng, Event Loop l\u1ea5y callback t\u1eeb Callback Queue v\u00e0 \u0111\u01b0a v\u00e0o Call Stack \u0111\u1ec3 th\u1ef1c thi, in ra &#8220;Callback&#8221;.<\/li><\/ol><\/li><\/ul><p data-sourcepos=\"37:1-37:24\"><strong>T\u1ea1i <a href=\"https:\/\/fstack.io.vn\/blog\/10-the-meta-ma-ban-nen-biet-khi-lam-seo-website\/\">sao<\/a> l\u1ea1i nh\u01b0 v\u1eady?<\/strong><\/p><ul data-sourcepos=\"38:1-40:0\"><li data-sourcepos=\"38:1-38:132\">V\u00ec <code>setTimeout<\/code> l\u00e0 m\u1ed9t h\u00e0m b\u1ea5t \u0111\u1ed3ng b\u1ed9, n\u00ean callback c\u1ee7a n\u00f3 s\u1ebd kh\u00f4ng \u0111\u01b0\u1ee3c th\u1ef1c thi ngay l\u1eadp t\u1ee9c m\u00e0 s\u1ebd \u0111\u01b0\u1ee3c \u0111\u01b0a v\u00e0o Callback Queue.<\/li><li data-sourcepos=\"39:1-40:0\">Event Loop \u01b0u ti\u00ean th\u1ef1c hi\u1ec7n c\u00e1c t\u00e1c v\u1ee5 \u0111\u1ed3ng b\u1ed9 tr\u01b0\u1edbc, sau \u0111\u00f3 m\u1edbi \u0111\u1ebfn c\u00e1c t\u00e1c v\u1ee5 b\u1ea5t \u0111\u1ed3ng b\u1ed9.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e71ee4a elementor-widget elementor-widget-heading\" data-id=\"e71ee4a\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Closure_la_gi\"><\/span>Closure l\u00e0 g\u00ec?<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9e8115b elementor-widget elementor-widget-text-editor\" data-id=\"9e8115b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Closure l\u00e0 m\u1ed9t t\u00ednh n\u0103ng trong JavaScript, cho ph\u00e9p m\u1ed9t h\u00e0m ghi nh\u1edb v\u00e0 truy c\u1eadp ph\u1ea1m vi t\u1eeb ng\u1eef c\u1ea3nh ban \u0111\u1ea7u ngay c\u1ea3 khi h\u00e0m \u0111\u00f3 \u0111\u01b0\u1ee3c th\u1ef1c thi ngo\u00e0i ph\u1ea1m vi \u0111\u00f3.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d3e2c26 elementor-widget elementor-widget-code-highlight\" data-id=\"d3e2c26\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>function createCounter() {\n  let count = 0;\n\n  return function() {\n    count++;\n    return count;\n  };\n}\n\nconst counter = createCounter();\nconsole.log(counter()); \/\/ Output: 1\nconsole.log(counter()); \/\/ Output: 2<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2c33766 elementor-widget elementor-widget-text-editor\" data-id=\"2c33766\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>Gi\u1ea3i th\u00edch:<\/strong><\/p><ul data-sourcepos=\"23:3-26:0\"><li data-sourcepos=\"23:3-23:97\">H\u00e0m <code>createCounter<\/code> t\u1ea1o ra m\u1ed9t closure. N\u00f3 tr\u1ea3 v\u1ec1 m\u1ed9t h\u00e0m con (anonymous function) b\u00ean trong.<\/li><li data-sourcepos=\"24:3-24:100\">H\u00e0m con n\u00e0y &#8220;ghi nh\u1edb&#8221; bi\u1ebfn <code>count<\/code> c\u1ee7a h\u00e0m cha, ngay c\u1ea3 khi h\u00e0m cha \u0111\u00e3 ho\u00e0n th\u00e0nh vi\u1ec7c th\u1ef1c thi.<\/li><li data-sourcepos=\"25:3-26:0\">M\u1ed7i l\u1ea7n g\u1ecdi h\u00e0m con, gi\u00e1 tr\u1ecb c\u1ee7a <code>count<\/code> s\u1ebd \u0111\u01b0\u1ee3c t\u0103ng l\u00ean v\u00e0 tr\u1ea3 v\u1ec1.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fdef5c6 elementor-widget elementor-widget-heading\" data-id=\"fdef5c6\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Arrow_function_trong_JavaScript_la_gi\"><\/span>Arrow function trong JavaScript l\u00e0 g\u00ec?<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6df3e4d elementor-widget elementor-widget-text-editor\" data-id=\"6df3e4d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Arrow function l\u00e0 m\u1ed9t c\u00fa ph\u00e1p vi\u1ebft h\u00e0m ng\u1eafn g\u1ecdn h\u01a1n, kh\u00f4ng c\u00f3 <code>this<\/code> ri\u00eang m\u00e0 k\u1ebf th\u1eeba t\u1eeb ng\u1eef c\u1ea3nh bao quanh, kh\u00f4ng c\u00f3 <code>arguments<\/code> v\u00e0 <code><a href=\"https:\/\/fstack.io.vn\/blog\/constructor-ham-tao-trong-java-la-gi-mot-so-cach-khai-bao-constructor-trong-java\/\">constructor<\/a><\/code>.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f8e6c4d elementor-widget elementor-widget-text-editor\" data-id=\"f8e6c4d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-sourcepos=\"3:1-3:84\"><strong>\u0110\u1ec3 hi\u1ec3u r\u00f5 h\u01a1n v\u1ec1 arrow function, ch\u00fang ta c\u00f9ng \u0111i s\u00e2u v\u00e0o t\u1eebng \u0111\u1eb7c \u0111i\u1ec3m c\u1ee7a n\u00f3:<\/strong><\/p>\n<ul data-sourcepos=\"5:1-11:0\">\n<li data-sourcepos=\"5:1-11:0\"><strong>C\u00fa ph\u00e1p ng\u1eafn g\u1ecdn:<\/strong><br><ul data-sourcepos=\"6:3-11:0\">\n<li data-sourcepos=\"6:3-6:108\"><strong>Kh\u00f4ng c\u1ea7n t\u1eeb kh\u00f3a <code>function<\/code>:<\/strong> C\u00fa ph\u00e1p c\u1ee7a arrow function \u0111\u01a1n gi\u1ea3n h\u01a1n nhi\u1ec1u so v\u1edbi h\u00e0m truy\u1ec1n th\u1ed1ng.<\/li>\n<li data-sourcepos=\"7:3-7:83\"><strong>S\u1eed d\u1ee5ng d\u1ea5u <code>=&gt;<\/code>:<\/strong> D\u1ea5u m\u0169i t\u00ean <code>=&gt;<\/code> ph\u00e2n t\u00e1ch danh s\u00e1ch tham s\u1ed1 v\u00e0 th\u00e2n h\u00e0m.<\/li>\n<li data-sourcepos=\"8:3-11:0\"><strong>Th\u00e2n h\u00e0m:<\/strong><br><ul data-sourcepos=\"9:5-11:0\">\n<li data-sourcepos=\"9:5-9:173\"><strong>M\u1ed9t bi\u1ec3u th\u1ee9c:<\/strong> N\u1ebfu th\u00e2n h\u00e0m ch\u1ec9 l\u00e0 m\u1ed9t bi\u1ec3u th\u1ee9c \u0111\u01a1n gi\u1ea3n, b\u1ea1n c\u00f3 th\u1ec3 b\u1ecf qua c\u1eb7p ngo\u1eb7c nh\u1ecdn <code>{}<\/code> v\u00e0 t\u1eeb kh\u00f3a <code>return<\/code>. Gi\u00e1 tr\u1ecb c\u1ee7a bi\u1ec3u th\u1ee9c s\u1ebd t\u1ef1 \u0111\u1ed9ng \u0111\u01b0\u1ee3c tr\u1ea3 v\u1ec1.<\/li>\n<li data-sourcepos=\"10:5-11:0\"><strong>Nhi\u1ec1u bi\u1ec3u th\u1ee9c:<\/strong> N\u1ebfu th\u00e2n h\u00e0m c\u00f3 nhi\u1ec1u bi\u1ec3u th\u1ee9c, b\u1ea1n c\u1ea7n s\u1eed d\u1ee5ng c\u1eb7p ngo\u1eb7c nh\u1ecdn <code>{}<\/code> v\u00e0 t\u1eeb kh\u00f3a <code>return<\/code> \u0111\u1ec3 ch\u1ec9 r\u00f5 gi\u00e1 tr\u1ecb tr\u1ea3 v\u1ec1.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p data-sourcepos=\"12:1-12:10\"><strong>V\u00ed d\u1ee5:<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4499ce0 elementor-widget elementor-widget-code-highlight\" data-id=\"4499ce0\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>\/\/ H\u00e0m truy\u1ec1n th\u1ed1ng\nfunction sum(a, b) {\n  return a + b;\n}\n\n\/\/ Arrow function\nconst sum = (a, b) => a + b;<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0d7bd39 elementor-widget elementor-widget-heading\" data-id=\"0d7bd39\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Event_delegation_la_gi\"><\/span>Event delegation l\u00e0 g\u00ec?<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-684406b elementor-widget elementor-widget-text-editor\" data-id=\"684406b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Event delegation l\u00e0 k\u1ef9 thu\u1eadt g\u00e1n m\u1ed9t listener chung cho m\u1ed9t ph\u1ea7n t\u1eed cha \u0111\u1ec3 x\u1eed l\u00fd s\u1ef1 ki\u1ec7n t\u1eeb c\u00e1c ph\u1ea7n t\u1eed con, gi\u00fap t\u1ed1i \u01b0u hi\u1ec7u su\u1ea5t v\u00e0 d\u1ec5 qu\u1ea3n l\u00fd s\u1ef1 ki\u1ec7n h\u01a1n.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-363b6df elementor-widget elementor-widget-heading\" data-id=\"363b6df\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Uu_diem_event_delegation\"><\/span>\u01afu \u0111i\u1ec3m event delegation<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5814b61 elementor-widget elementor-widget-text-editor\" data-id=\"5814b61\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"5:1-7:257\"><strong>Hi\u1ec7u su\u1ea5t:<\/strong><ul data-sourcepos=\"6:5-7:257\"><li data-sourcepos=\"6:5-6:243\"><strong>Gi\u1ea3m s\u1ed1 l\u01b0\u1ee3ng listener:<\/strong> Thay v\u00ec g\u00e1n listener cho t\u1eebng ph\u1ea7n t\u1eed con, ch\u00fang ta ch\u1ec9 c\u1ea7n g\u00e1n m\u1ed9t listener duy nh\u1ea5t cho ph\u1ea7n t\u1eed cha. \u0110i\u1ec1u n\u00e0y gi\u00fap gi\u1ea3m thi\u1ec3u vi\u1ec7c t\u1ea1o ra qu\u00e1 nhi\u1ec1u \u0111\u1ed1i t\u01b0\u1ee3ng listener, t\u1eeb \u0111\u00f3 c\u1ea3i thi\u1ec7n hi\u1ec7u su\u1ea5t c\u1ee7a \u1ee9ng d\u1ee5ng.<\/li><li data-sourcepos=\"7:5-7:257\"><strong>T\u1ed1i \u01b0u h\u00f3a vi\u1ec7c x\u1eed l\u00fd s\u1ef1 ki\u1ec7n:<\/strong> Khi m\u1ed9t s\u1ef1 ki\u1ec7n x\u1ea3y ra, tr\u00ecnh duy\u1ec7t s\u1ebd b\u1eaft \u0111\u1ea7u qu\u00e1 tr\u00ecnh bubbling (s\u1ee7i b\u1ecdt) t\u1eeb ph\u1ea7n t\u1eed con l\u00ean \u0111\u1ebfn ph\u1ea7n t\u1eed cha. Nh\u1edd \u0111\u00f3, ch\u00fang ta ch\u1ec9 c\u1ea7n l\u1eafng nghe s\u1ef1 ki\u1ec7n t\u1ea1i ph\u1ea7n t\u1eed cha m\u00e0 kh\u00f4ng c\u1ea7n ph\u1ea3i duy\u1ec7t qua t\u1eebng ph\u1ea7n t\u1eed con.<\/li><\/ul><\/li><li data-sourcepos=\"8:1-9:201\"><strong>Qu\u1ea3n l\u00fd s\u1ef1 ki\u1ec7n d\u1ec5 d\u00e0ng:<\/strong><ul data-sourcepos=\"9:5-9:201\"><li data-sourcepos=\"9:5-9:201\"><strong>Th\u00eam\/x\u00f3a ph\u1ea7n t\u1eed \u0111\u1ed9ng:<\/strong> Khi th\u00eam ho\u1eb7c x\u00f3a c\u00e1c ph\u1ea7n t\u1eed con, ch\u00fang ta kh\u00f4ng c\u1ea7n ph\u1ea3i c\u1eadp nh\u1eadt l\u1ea1i c\u00e1c listener. Listener \u0111\u00e3 \u0111\u01b0\u1ee3c g\u00e1n cho ph\u1ea7n t\u1eed cha s\u1ebd t\u1ef1 \u0111\u1ed9ng ho\u1ea1t \u0111\u1ed9ng v\u1edbi c\u00e1c ph\u1ea7n t\u1eed con m\u1edbi.<\/li><\/ul><\/li><li data-sourcepos=\"10:1-12:0\"><strong>Tr\u00e1nh r\u00f2 r\u1ec9 b\u1ed9 nh\u1edb:<\/strong><ul data-sourcepos=\"11:5-12:0\"><li data-sourcepos=\"11:5-12:0\">Vi\u1ec7c g\u00e1n qu\u00e1 nhi\u1ec1u listener c\u00f3 th\u1ec3 d\u1eabn \u0111\u1ebfn r\u00f2 r\u1ec9 b\u1ed9 nh\u1edb. Event delegation gi\u00fap gi\u1ea3m thi\u1ec3u v\u1ea5n \u0111\u1ec1 n\u00e0y.<\/li><\/ul><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-59c2a15 elementor-widget elementor-widget-heading\" data-id=\"59c2a15\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Cach_thuc_hoat_dong_cua_event_delegation\"><\/span>C\u00e1ch th\u1ee9c ho\u1ea1t \u0111\u1ed9ng c\u1ee7a event delegation<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e4d4dba elementor-widget elementor-widget-text-editor\" data-id=\"e4d4dba\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"15:1-15:117\"><strong>Ch\u1ecdn m\u1ed9t ph\u1ea7n t\u1eed cha:<\/strong> L\u1ef1a ch\u1ecdn m\u1ed9t ph\u1ea7n t\u1eed cha chung cho t\u1ea5t c\u1ea3 c\u00e1c ph\u1ea7n t\u1eed con m\u00e0 b\u1ea1n mu\u1ed1n l\u1eafng nghe s\u1ef1 ki\u1ec7n.<\/li><li data-sourcepos=\"16:1-16:100\"><strong>G\u00e1n listener cho ph\u1ea7n t\u1eed cha:<\/strong> S\u1eed d\u1ee5ng <code>addEventListener<\/code> \u0111\u1ec3 g\u00e1n m\u1ed9t listener cho ph\u1ea7n t\u1eed cha.<\/li><li data-sourcepos=\"17:1-17:127\"><strong>X\u00e1c \u0111\u1ecbnh ph\u1ea7n t\u1eed \u0111\u00edch:<\/strong> B\u00ean trong h\u00e0m x\u1eed l\u00fd s\u1ef1 ki\u1ec7n, s\u1eed d\u1ee5ng <code>event.target<\/code> \u0111\u1ec3 x\u00e1c \u0111\u1ecbnh ph\u1ea7n t\u1eed con m\u00e0 s\u1ef1 ki\u1ec7n \u0111\u00e3 x\u1ea3y ra.<\/li><li data-sourcepos=\"18:1-19:0\"><strong>X\u1eed l\u00fd s\u1ef1 ki\u1ec7n:<\/strong> Ki\u1ec3m tra xem <code>event.target<\/code> c\u00f3 kh\u1edbp v\u1edbi ph\u1ea7n t\u1eed con m\u00e0 b\u1ea1n mu\u1ed1n x\u1eed l\u00fd hay kh\u00f4ng. N\u1ebfu \u0111\u00fang, th\u1ef1c hi\u1ec7n c\u00e1c h\u00e0nh \u0111\u1ed9ng c\u1ea7n thi\u1ebft.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2120722 elementor-widget elementor-widget-code-highlight\" data-id=\"2120722\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>\/\/ Gi\u1ea3 s\u1eed ch\u00fang ta c\u00f3 m\u1ed9t danh s\u00e1ch c\u00e1c ph\u1ea7n t\u1eed v\u1edbi class l\u00e0 'item'\nconst itemList = document.querySelector('.item-list');\n\nitemList.addEventListener('click', (event) => {\n  \/\/ Ki\u1ec3m tra xem ph\u1ea7n t\u1eed b\u1ecb click c\u00f3 class l\u00e0 'item' hay kh\u00f4ng\n  if (event.target.classList.contains('item')) {\n    console.log('B\u1ea1n \u0111\u00e3 click v\u00e0o m\u1ed9t item');\n    \/\/ Th\u1ef1c hi\u1ec7n c\u00e1c h\u00e0nh \u0111\u1ed9ng kh\u00e1c khi click v\u00e0o item\n  }\n});<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-058c436 elementor-widget elementor-widget-text-editor\" data-id=\"058c436\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"15:1-15:117\"><p data-sourcepos=\"1:1-1:209\">Trong v\u00ed d\u1ee5 tr\u00ean, ch\u00fang ta \u0111\u00e3 g\u00e1n m\u1ed9t listener cho ph\u1ea7n t\u1eed <code>.item-list<\/code>. Khi ng\u01b0\u1eddi d\u00f9ng click v\u00e0o b\u1ea5t k\u1ef3 ph\u1ea7n t\u1eed n\u00e0o c\u00f3 class l\u00e0 <code>item<\/code>, s\u1ef1 ki\u1ec7n s\u1ebd \u0111\u01b0\u1ee3c bubbling l\u00ean \u0111\u1ebfn <code>.item-list<\/code> v\u00e0 h\u00e0m x\u1eed l\u00fd s\u1ef1 ki\u1ec7n s\u1ebd \u0111\u01b0\u1ee3c th\u1ef1c thi. B\u00ean trong h\u00e0m n\u00e0y, ch\u00fang ta ki\u1ec3m tra xem ph\u1ea7n t\u1eed b\u1ecb click c\u00f3 ph\u1ea3i l\u00e0 m\u1ed9t item hay kh\u00f4ng v\u00e0 th\u1ef1c hi\u1ec7n c\u00e1c h\u00e0nh \u0111\u1ed9ng t\u01b0\u01a1ng \u1ee9ng.<\/p><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a434514 elementor-widget elementor-widget-heading\" data-id=\"a434514\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Ung_dung_cua_event_delegation\"><\/span>\u1ee8ng d\u1ee5ng c\u1ee7a event delegation<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bdab989 elementor-widget elementor-widget-text-editor\" data-id=\"bdab989\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"39:1-39:179\"><strong>T\u1ea1o c\u00e1c danh s\u00e1ch \u0111\u1ed9ng:<\/strong> Khi b\u1ea1n c\u1ea7n t\u1ea1o ra m\u1ed9t danh s\u00e1ch c\u00e1c ph\u1ea7n t\u1eed c\u00f3 th\u1ec3 thay \u0111\u1ed5i, event delegation gi\u00fap b\u1ea1n d\u1ec5 d\u00e0ng x\u1eed l\u00fd c\u00e1c s\u1ef1 ki\u1ec7n tr\u00ean c\u00e1c ph\u1ea7n t\u1eed m\u1edbi \u0111\u01b0\u1ee3c th\u00eam v\u00e0o.<\/li><li data-sourcepos=\"40:1-40:174\"><strong>X\u1eed l\u00fd s\u1ef1 ki\u1ec7n tr\u00ean c\u00e1c ph\u1ea7n t\u1eed \u0111\u01b0\u1ee3c t\u1ea1o ra \u0111\u1ed9ng:<\/strong> T\u01b0\u01a1ng t\u1ef1 nh\u01b0 tr\u00ean, event delegation r\u1ea5t h\u1eefu \u00edch khi b\u1ea1n c\u1ea7n x\u1eed l\u00fd s\u1ef1 ki\u1ec7n tr\u00ean c\u00e1c ph\u1ea7n t\u1eed \u0111\u01b0\u1ee3c t\u1ea1o ra b\u1eb1ng JavaScript.<\/li><li data-sourcepos=\"41:1-42:0\"><strong>T\u1ed1i \u01b0u h\u00f3a hi\u1ec7u su\u1ea5t:<\/strong> \u0110\u1eb7c bi\u1ec7t khi l\u00e0m vi\u1ec7c v\u1edbi c\u00e1c \u1ee9ng d\u1ee5ng c\u00f3 nhi\u1ec1u ph\u1ea7n t\u1eed t\u01b0\u01a1ng t\u00e1c, event delegation gi\u00fap c\u1ea3i thi\u1ec7n hi\u1ec7u su\u1ea5t \u0111\u00e1ng k\u1ec3.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9dcfb6a elementor-widget elementor-widget-heading\" data-id=\"9dcfb6a\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Phan_2_Cau_hoi_JavaScript_trung_cap\"><\/span>Ph\u1ea7n 2: C\u00e2u h\u1ecfi JavaScript trung c\u1ea5p<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-96e002d elementor-widget elementor-widget-heading\" data-id=\"96e002d\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Su_khac_biet_giua_va_trong_JavaScript_la_gi\"><\/span>S\u1ef1 kh\u00e1c bi\u1ec7t gi\u1eefa == v\u00e0 === trong JavaScript l\u00e0 g\u00ec?<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-85fa626 elementor-widget elementor-widget-text-editor\" data-id=\"85fa626\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><code>==<\/code> l\u00e0 ph\u00e9p so s\u00e1nh gi\u00e1 tr\u1ecb c\u00f3 \u00e9p ki\u1ec3u, c\u00f2n <code>===<\/code> so s\u00e1nh gi\u00e1 tr\u1ecb v\u00e0 ki\u1ec3u d\u1eef li\u1ec7u m\u00e0 kh\u00f4ng th\u1ef1c hi\u1ec7n \u00e9p ki\u1ec3u.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6094d5e elementor-widget elementor-widget-text-editor\" data-id=\"6094d5e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"5:1-10:73\"><strong>To\u00e1n t\u1eed <code>==<\/code> (so s\u00e1nh b\u1eb1ng):<\/strong><ul data-sourcepos=\"6:3-10:73\"><li data-sourcepos=\"6:3-6:88\">Th\u1ef1c hi\u1ec7n so s\u00e1nh gi\u00e1 tr\u1ecb sau khi \u00e9p ki\u1ec3u c\u1ea3 hai to\u00e1n h\u1ea1ng v\u1ec1 c\u00f9ng m\u1ed9t ki\u1ec3u d\u1eef li\u1ec7u.<\/li><li data-sourcepos=\"7:3-7:70\">C\u00f3 th\u1ec3 d\u1eabn \u0111\u1ebfn nh\u1eefng k\u1ebft qu\u1ea3 b\u1ea5t ng\u1edd do qu\u00e1 tr\u00ecnh \u00e9p ki\u1ec3u t\u1ef1 \u0111\u1ed9ng.<\/li><li data-sourcepos=\"8:3-10:73\"><strong>V\u00ed d\u1ee5:<\/strong><ul data-sourcepos=\"9:5-10:73\"><li data-sourcepos=\"9:5-9:87\"><code>5 == \"5\"<\/code>: Tr\u1ea3 v\u1ec1 <code>true<\/code> v\u00ec chu\u1ed7i &#8220;5&#8221; \u0111\u01b0\u1ee3c \u00e9p ki\u1ec3u th\u00e0nh s\u1ed1 5 tr\u01b0\u1edbc khi so s\u00e1nh.<\/li><li data-sourcepos=\"10:5-10:73\"><code>0 == false<\/code>: Tr\u1ea3 v\u1ec1 <code>true<\/code> v\u00ec c\u1ea3 0 v\u00e0 false \u0111\u1ec1u \u0111\u01b0\u1ee3c coi l\u00e0 falsy.<\/li><\/ul><\/li><\/ul><\/li><li data-sourcepos=\"11:1-17:0\"><strong>To\u00e1n t\u1eed <code>===<\/code> (so s\u00e1nh b\u1eb1ng nghi\u00eam ng\u1eb7t):<\/strong><ul data-sourcepos=\"12:3-17:0\"><li data-sourcepos=\"12:3-12:57\">So s\u00e1nh c\u1ea3 gi\u00e1 tr\u1ecb v\u00e0 ki\u1ec3u d\u1eef li\u1ec7u c\u1ee7a hai to\u00e1n h\u1ea1ng.<\/li><li data-sourcepos=\"13:3-13:28\">Kh\u00f4ng th\u1ef1c hi\u1ec7n \u00e9p ki\u1ec3u.<\/li><\/ul><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dd04f0d elementor-widget elementor-widget-code-highlight\" data-id=\"dd04f0d\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>console.log(5 == \"5\"); \/\/ true\nconsole.log(5 === \"5\"); \/\/ false\n\nconsole.log(null == undefined); \/\/ true\nconsole.log(null === undefined); \/\/ false\n\nconsole.log(true == 1); \/\/ true\nconsole.log(true === 1); \/\/ false<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-10c3ad7 elementor-widget elementor-widget-text-editor\" data-id=\"10c3ad7\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"20:1-22:28\"><strong>S\u1eed d\u1ee5ng <code>===<\/code> trong h\u1ea7u h\u1ebft c\u00e1c tr\u01b0\u1eddng h\u1ee3p:<\/strong><ul data-sourcepos=\"21:3-22:28\"><li data-sourcepos=\"21:3-21:73\">\u0110\u1ea3m b\u1ea3o t\u00ednh ch\u00ednh x\u00e1c v\u00e0 tr\u00e1nh nh\u1eefng l\u1ed7i kh\u00f4ng mong mu\u1ed1n do \u00e9p ki\u1ec3u.<\/li><li data-sourcepos=\"22:3-22:28\">D\u1ec5 d\u00e0ng \u0111\u1ecdc v\u00e0 hi\u1ec3u h\u01a1n.<\/li><\/ul><\/li><li data-sourcepos=\"23:1-26:0\"><strong>S\u1eed d\u1ee5ng <code>==<\/code> khi:<\/strong><ul data-sourcepos=\"24:3-26:0\"><li data-sourcepos=\"24:3-24:87\">B\u1ea1n ch\u1eafc ch\u1eafn v\u1ec1 c\u00e1c ki\u1ec3u d\u1eef li\u1ec7u \u0111ang so s\u00e1nh v\u00e0 mu\u1ed1n th\u1ef1c hi\u1ec7n \u00e9p ki\u1ec3u ng\u1ea7m \u0111\u1ecbnh.<\/li><li data-sourcepos=\"25:3-26:0\">B\u1ea1n mu\u1ed1n so s\u00e1nh c\u00e1c gi\u00e1 tr\u1ecb null v\u00e0 undefined (ch\u00fang b\u1eb1ng nhau khi s\u1eed d\u1ee5ng <code>==<\/code>).<\/li><\/ul><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8827722 elementor-widget elementor-widget-heading\" data-id=\"8827722\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Giai_thich_ve_hoisting_trong_JavaScript\"><\/span>Gi\u1ea3i th\u00edch v\u1ec1 hoisting trong JavaScript.<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-31dd496 elementor-widget elementor-widget-text-editor\" data-id=\"31dd496\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>Hoisting<\/strong> l\u00e0 m\u1ed9t c\u01a1 ch\u1ebf \u0111\u1eb7c bi\u1ec7t trong JavaScript, n\u01a1i c\u00e1c khai b\u00e1o bi\u1ebfn v\u00e0 h\u00e0m \u0111\u01b0\u1ee3c &#8220;n\u00e2ng&#8221; l\u00ean \u0111\u1ea7u ph\u1ea1m vi c\u1ee7a ch\u00fang (ph\u1ea1m vi to\u00e0n c\u1ee5c ho\u1eb7c ph\u1ea1m vi h\u00e0m) tr\u01b0\u1edbc khi code \u0111\u01b0\u1ee3c th\u1ef1c thi. \u0110i\u1ec1u n\u00e0y c\u00f3 ngh\u0129a l\u00e0 b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng m\u1ed9t bi\u1ebfn ho\u1eb7c h\u00e0m tr\u01b0\u1edbc khi n\u00f3 \u0111\u01b0\u1ee3c khai b\u00e1o ch\u00ednh th\u1ee9c<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fd805d1 elementor-widget elementor-widget-heading\" data-id=\"fd805d1\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Hoisting_voi_bien\"><\/span>Hoisting v\u1edbi bi\u1ebfn:<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bd248fe elementor-widget elementor-widget-text-editor\" data-id=\"bd248fe\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"6:1-6:129\"><strong>Khai b\u00e1o b\u1eb1ng <code>var<\/code>:<\/strong> Khi b\u1ea1n khai b\u00e1o m\u1ed9t bi\u1ebfn b\u1eb1ng <code>var<\/code>, bi\u1ebfn \u0111\u00f3 s\u1ebd \u0111\u01b0\u1ee3c n\u00e2ng l\u00ean \u0111\u1ea7u ph\u1ea1m vi v\u00e0 g\u00e1n gi\u00e1 tr\u1ecb <code>undefined<\/code>.<\/li><li data-sourcepos=\"7:1-13:0\"><strong>V\u00ed d\u1ee5:<\/strong><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-84caa85 elementor-widget elementor-widget-code-highlight\" data-id=\"84caa85\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>console.log(x); \/\/ Output: undefined\nvar x = 10;<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f921e04 elementor-widget elementor-widget-text-editor\" data-id=\"f921e04\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"6:1-6:129\">Trong v\u00ed d\u1ee5 n\u00e0y, m\u1eb7c d\u00f9 <code>console.log(x)<\/code> \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n tr\u01b0\u1edbc khi khai b\u00e1o <code>x<\/code>, nh\u01b0ng do hoisting, bi\u1ebfn <code>x<\/code> \u0111\u00e3 \u0111\u01b0\u1ee3c n\u00e2ng l\u00ean \u0111\u1ea7u v\u00e0 c\u00f3 gi\u00e1 tr\u1ecb <code>undefined<\/code>.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f3a521a elementor-widget elementor-widget-heading\" data-id=\"f3a521a\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Hoisting_voi_ham\"><\/span>Hoisting v\u1edbi h\u00e0m:<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7476d1e elementor-widget elementor-widget-text-editor\" data-id=\"7476d1e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"15:1-15:142\"><strong>Khai b\u00e1o h\u00e0m:<\/strong> C\u1ea3 khai b\u00e1o h\u00e0m v\u00e0 bi\u1ec3u th\u1ee9c h\u00e0m \u0111\u1ec1u \u0111\u01b0\u1ee3c hoisting. Tuy nhi\u00ean, ch\u1ec9 c\u00f3 khai b\u00e1o h\u00e0m m\u1edbi c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c g\u1ecdi tr\u01b0\u1edbc khi khai b\u00e1o.<\/li><li data-sourcepos=\"16:1-24:0\"><strong>V\u00ed d\u1ee5:<\/strong><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9ff680a elementor-widget elementor-widget-code-highlight\" data-id=\"9ff680a\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>console.log(myFunction()); \/\/ Output: Hello\nfunction myFunction() {\n  return \"Hello\";\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c0f32b1 elementor-widget elementor-widget-text-editor\" data-id=\"c0f32b1\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>h\u00e0m <code>myFunction<\/code> \u0111\u01b0\u1ee3c g\u1ecdi tr\u01b0\u1edbc khi \u0111\u01b0\u1ee3c khai b\u00e1o, nh\u01b0ng v\u1eabn ho\u1ea1t \u0111\u1ed9ng b\u00ecnh th\u01b0\u1eddng nh\u1edd hoisting.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2182a40 elementor-widget elementor-widget-heading\" data-id=\"2182a40\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Luu_y_quan_trong\"><\/span>L\u01b0u \u00fd quan tr\u1ecdng:<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-75703bf elementor-widget elementor-widget-text-editor\" data-id=\"75703bf\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"26:1-26:103\"><strong>Ch\u1ec9 khai b\u00e1o \u0111\u01b0\u1ee3c n\u00e2ng l\u00ean:<\/strong> Hoisting ch\u1ec9 n\u00e2ng l\u00ean ph\u1ea7n khai b\u00e1o, kh\u00f4ng n\u00e2ng l\u00ean ph\u1ea7n g\u00e1n gi\u00e1 tr\u1ecb.<\/li><li data-sourcepos=\"27:1-27:146\"><strong>Bi\u1ec3u th\u1ee9c h\u00e0m:<\/strong> Bi\u1ec3u th\u1ee9c h\u00e0m (function expression) kh\u00f4ng \u0111\u01b0\u1ee3c n\u00e2ng l\u00ean ho\u00e0n to\u00e0n. B\u1ea1n kh\u00f4ng th\u1ec3 g\u1ecdi m\u1ed9t bi\u1ec3u th\u1ee9c h\u00e0m tr\u01b0\u1edbc khi n\u00f3 \u0111\u01b0\u1ee3c g\u00e1n.<\/li><li data-sourcepos=\"28:1-29:0\"><strong>let v\u00e0 const:<\/strong> V\u1edbi <code>let<\/code> v\u00e0 <code>const<\/code>, bi\u1ebfn s\u1ebd \u0111\u01b0\u1ee3c n\u00e2ng l\u00ean nh\u01b0ng s\u1ebd n\u1eb1m trong v\u00f9ng ch\u1ebft (Temporal Dead Zone) cho \u0111\u1ebfn khi \u0111\u1ebfn d\u00f2ng khai b\u00e1o. N\u1ebfu b\u1ea1n c\u1ed1 g\u1eafng truy c\u1eadp bi\u1ebfn tr\u01b0\u1edbc khi n\u00f3 \u0111\u01b0\u1ee3c khai b\u00e1o, s\u1ebd x\u1ea3y ra l\u1ed7i <code>ReferenceError<\/code>.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dca986e elementor-widget elementor-widget-heading\" data-id=\"dca986e\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Callback_la_gi\"><\/span>Callback l\u00e0 g\u00ec?<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cda41ef elementor-widget elementor-widget-text-editor\" data-id=\"cda41ef\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>Callback<\/strong> l\u00e0 m\u1ed9t h\u00e0m \u0111\u01b0\u1ee3c truy\u1ec1n v\u00e0o m\u1ed9t h\u00e0m kh\u00e1c nh\u01b0 m\u1ed9t \u0111\u1ed1i s\u1ed1 v\u00e0 \u0111\u01b0\u1ee3c g\u1ecdi l\u1ea1i khi m\u1ed9t s\u1ef1 ki\u1ec7n n\u00e0o \u0111\u00f3 x\u1ea3y ra ho\u1eb7c m\u1ed9t t\u00e1c v\u1ee5 n\u00e0o \u0111\u00f3 ho\u00e0n th\u00e0nh. N\u00f3i c\u00e1ch kh\u00e1c, callback l\u00e0 m\u1ed9t c\u00e1ch \u0111\u1ec3 th\u1ef1c thi m\u1ed9t \u0111o\u1ea1n m\u00e3 sau khi m\u1ed9t h\u00e0nh \u0111\u1ed9ng kh\u00e1c k\u1ebft th\u00fac.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7b25873 elementor-widget elementor-widget-heading\" data-id=\"7b25873\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Tai_sao_can_su_dung_callback\"><\/span>T\u1ea1i sao c\u1ea7n s\u1eed d\u1ee5ng callback?<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-794273d elementor-widget elementor-widget-text-editor\" data-id=\"794273d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"6:1-6:284\"><strong>X\u1eed l\u00fd c\u00e1c t\u00e1c v\u1ee5 b\u1ea5t \u0111\u1ed3ng b\u1ed9:<\/strong> Nhi\u1ec1u ho\u1ea1t \u0111\u1ed9ng trong JavaScript, nh\u01b0 \u0111\u1ecdc d\u1eef li\u1ec7u t\u1eeb server, thao t\u00e1c <a href=\"https:\/\/fstack.io.vn\/blog\/dom-la-gi-cach-thao-tac-voi-dom-trong-javascript\/\">DOM<\/a>, ho\u1eb7c ch\u1edd \u0111\u1ee3i m\u1ed9t s\u1ef1 ki\u1ec7n ng\u01b0\u1eddi d\u00f9ng, m\u1ea5t m\u1ed9t kho\u1ea3ng th\u1eddi gian nh\u1ea5t \u0111\u1ecbnh \u0111\u1ec3 ho\u00e0n th\u00e0nh. Callback cho ph\u00e9p ch\u00fang ta x\u00e1c \u0111\u1ecbnh m\u1ed9t h\u00e0m s\u1ebd \u0111\u01b0\u1ee3c g\u1ecdi l\u1ea1i khi ho\u1ea1t \u0111\u1ed9ng \u0111\u00f3 ho\u00e0n t\u1ea5t.<\/li><li data-sourcepos=\"7:1-8:0\"><strong>T\u1ea1o ra c\u00e1c h\u00e0m linh ho\u1ea1t:<\/strong> B\u1eb1ng c\u00e1ch truy\u1ec1n c\u00e1c h\u00e0m kh\u00e1c nhau v\u00e0o m\u1ed9t h\u00e0m, ch\u00fang ta c\u00f3 th\u1ec3 t\u1ea1o ra c\u00e1c h\u00e0m c\u00f3 h\u00e0nh vi kh\u00e1c nhau t\u00f9y thu\u1ed9c v\u00e0o callback \u0111\u01b0\u1ee3c cung c\u1ea5p.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0591af9 elementor-widget elementor-widget-code-highlight\" data-id=\"0591af9\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>function greet(name, callback) {\n  console.log('Xin ch\u00e0o, ' + name + '!');\n  callback();\n}\n\nfunction sayGoodbye() {\n  console.log('T\u1ea1m bi\u1ec7t!');\n}\n\ngreet('Alice', sayGoodbye);<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9fc0c02 elementor-widget elementor-widget-text-editor\" data-id=\"9fc0c02\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"6:1-6:284\"><p data-sourcepos=\"23:1-23:17\">Trong v\u00ed d\u1ee5 tr\u00ean:<\/p><ul data-sourcepos=\"24:1-27:0\"><li data-sourcepos=\"24:1-24:59\"><code>greet<\/code> l\u00e0 m\u1ed9t h\u00e0m nh\u1eadn hai \u0111\u1ed1i s\u1ed1: <code>name<\/code> v\u00e0 <code>callback<\/code>.<\/li><li data-sourcepos=\"25:1-25:59\"><code>sayGoodbye<\/code> l\u00e0 m\u1ed9t callback \u0111\u01b0\u1ee3c truy\u1ec1n v\u00e0o h\u00e0m <code>greet<\/code>.<\/li><li data-sourcepos=\"26:1-27:0\">Khi h\u00e0m <code>greet<\/code> \u0111\u01b0\u1ee3c g\u1ecdi, n\u00f3 in ra m\u1ed9t th\u00f4ng b\u00e1o ch\u00e0o m\u1eebng v\u00e0 sau \u0111\u00f3 g\u1ecdi h\u00e0m <code>callback<\/code> (trong tr\u01b0\u1eddng h\u1ee3p n\u00e0y l\u00e0 <code>sayGoodbye<\/code>).<\/li><\/ul><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d71f99e elementor-widget elementor-widget-heading\" data-id=\"d71f99e\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Cac_truong_hop_su_dung_pho_bien_cua_callback\"><\/span>C\u00e1c tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng ph\u1ed5 bi\u1ebfn c\u1ee7a callback<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b6aa76d elementor-widget elementor-widget-text-editor\" data-id=\"b6aa76d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"29:1-29:92\"><strong>setTimeout v\u00e0 setInterval:<\/strong> \u0110\u1ec3 th\u1ef1c thi m\u1ed9t \u0111o\u1ea1n m\u00e3 sau m\u1ed9t kho\u1ea3ng th\u1eddi gian nh\u1ea5t \u0111\u1ecbnh.<\/li><li data-sourcepos=\"30:1-30:76\"><strong>Event listeners:<\/strong> \u0110\u1ec3 x\u1eed l\u00fd c\u00e1c s\u1ef1 ki\u1ec7n ng\u01b0\u1eddi d\u00f9ng nh\u01b0 click, hover, &#8230;<\/li><li data-sourcepos=\"31:1-31:70\"><strong>AJAX:<\/strong> \u0110\u1ec3 x\u1eed l\u00fd d\u1eef li\u1ec7u tr\u1ea3 v\u1ec1 t\u1eeb server sau khi g\u1eedi m\u1ed9t y\u00eau c\u1ea7u.<\/li><li data-sourcepos=\"32:1-33:0\"><strong>Th\u01b0 vi\u1ec7n JavaScript:<\/strong> Nhi\u1ec1u th\u01b0 vi\u1ec7n JavaScript nh\u01b0 jQuery, <a href=\"https:\/\/fstack.io.vn\/blog\/react-query-la-gi-tai-sao-nen-dung-react-query\/\">React<\/a> s\u1eed d\u1ee5ng callback r\u1ed9ng r\u00e3i.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1561db5 elementor-widget elementor-widget-heading\" data-id=\"1561db5\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Tai_sao_callback_lai_quan_trong\"><\/span>T\u1ea1i sao callback l\u1ea1i quan tr\u1ecdng?<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c69e449 elementor-widget elementor-widget-text-editor\" data-id=\"c69e449\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"35:1-35:163\"><strong>Ki\u1ebfn tr\u00fac s\u1ef1 ki\u1ec7n:<\/strong> Callback l\u00e0 m\u1ed9t kh\u00e1i ni\u1ec7m c\u1ed1t l\u00f5i trong ki\u1ebfn tr\u00fac s\u1ef1 ki\u1ec7n, cho ph\u00e9p c\u00e1c ph\u1ea7n kh\u00e1c nhau c\u1ee7a \u1ee9ng d\u1ee5ng giao ti\u1ebfp v\u1edbi nhau m\u1ed9t c\u00e1ch linh ho\u1ea1t.<\/li><li data-sourcepos=\"36:1-36:123\"><strong>Kh\u00f4ng ch\u1eb7n lu\u1ed3ng th\u1ef1c thi:<\/strong> Callback gi\u00fap tr\u00e1nh t\u00ecnh tr\u1ea1ng ch\u01b0\u01a1ng tr\u00ecnh b\u1ecb treo ch\u1edd m\u1ed9t t\u00e1c v\u1ee5 b\u1ea5t \u0111\u1ed3ng b\u1ed9 ho\u00e0n th\u00e0nh.<\/li><li data-sourcepos=\"37:1-38:0\"><strong>T\u1ea1o ra c\u00e1c API linh ho\u1ea1t:<\/strong> Callback cho ph\u00e9p c\u00e1c API \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf m\u1ed9t c\u00e1ch m\u1edf r\u1ed9ng v\u00e0 t\u00f9y bi\u1ebfn.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-490fa69 elementor-widget elementor-widget-heading\" data-id=\"490fa69\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Nhuoc_diem_cua_callback\"><\/span>Nh\u01b0\u1ee3c \u0111i\u1ec3m c\u1ee7a callback?<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a453a94 elementor-widget elementor-widget-text-editor\" data-id=\"a453a94\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"40:1-40:95\"><strong>Callback hell:<\/strong> Khi l\u1ed3ng qu\u00e1 nhi\u1ec1u callback v\u00e0o nhau, code tr\u1edf n\u00ean kh\u00f3 \u0111\u1ecdc v\u00e0 kh\u00f3 b\u1ea3o tr\u00ec.<\/li><li data-sourcepos=\"41:1-42:0\"><strong>Kh\u00f3 qu\u1ea3n l\u00fd lu\u1ed3ng \u0111i\u1ec1u khi\u1ec3n:<\/strong> Vi\u1ec7c theo d\u00f5i lu\u1ed3ng \u0111i\u1ec1u khi\u1ec3n trong c\u00e1c callback l\u1ed3ng nhau c\u00f3 th\u1ec3 tr\u1edf n\u00ean ph\u1ee9c t\u1ea1p.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8c5f2ab elementor-widget elementor-widget-heading\" data-id=\"8c5f2ab\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Giai_phap_cho_callback_hell_la_gi\"><\/span>Gi\u1ea3i ph\u00e1p cho callback hell l\u00e0 g\u00ec?<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c1da92c elementor-widget elementor-widget-text-editor\" data-id=\"c1da92c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"44:1-44:118\"><strong>Promise:<\/strong> M\u1ed9t c\u00e1ch hi\u1ec7n \u0111\u1ea1i h\u01a1n \u0111\u1ec3 x\u1eed l\u00fd c\u00e1c t\u00e1c v\u1ee5 b\u1ea5t \u0111\u1ed3ng b\u1ed9, gi\u00fap code tr\u1edf n\u00ean r\u00f5 r\u00e0ng h\u01a1n v\u00e0 d\u1ec5 qu\u1ea3n l\u00fd h\u01a1n.<\/li><li data-sourcepos=\"45:1-46:0\"><strong>Async\/await:<\/strong> M\u1ed9t c\u00fa ph\u00e1p d\u1ef1a tr\u00ean Promise, gi\u00fap code b\u1ea5t \u0111\u1ed3ng b\u1ed9 tr\u00f4ng gi\u1ed1ng nh\u01b0 code \u0111\u1ed3ng b\u1ed9.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c80262f elementor-widget elementor-widget-heading\" data-id=\"c80262f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Su_khac_biet_giua_map_filter_va_reduce_la_gi\"><\/span>S\u1ef1 kh\u00e1c bi\u1ec7t gi\u1eefa map(), filter(), v\u00e0 reduce() l\u00e0 g\u00ec?<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3b7afbf elementor-widget elementor-widget-text-editor\" data-id=\"3b7afbf\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>map(), filter()<\/strong> v\u00e0 <strong>reduce()<\/strong> l\u00e0 ba ph\u01b0\u01a1ng th\u1ee9c r\u1ea5t h\u1eefu \u00edch trong JavaScript \u0111\u1ec3 thao t\u00e1c v\u1edbi c\u00e1c <a href=\"https:\/\/fstack.io.vn\/blog\/array-va-cach-lam-viec-voi-no-trong-javascript\/\">m\u1ea3ng<\/a>. M\u1eb7c d\u00f9 ch\u00fang \u0111\u1ec1u nh\u1eadn m\u1ed9t callback function l\u00e0m \u0111\u1ed1i s\u1ed1, nh\u01b0ng m\u1ed7i ph\u01b0\u01a1ng th\u1ee9c c\u00f3 m\u1ee5c \u0111\u00edch v\u00e0 c\u00e1ch ho\u1ea1t \u0111\u1ed9ng ri\u00eang bi\u1ec7t.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-89e0142 elementor-widget elementor-widget-text-editor\" data-id=\"89e0142\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<table>\n  <tbody>\n    <tr>\n      <th>Ph\u01b0\u01a1ng th\u1ee9c<\/th>\n      <th>M\u1ee5c \u0111\u00edch<\/th>\n      <th>Tr\u1ea3 v\u1ec1<\/th>\n    <\/tr>\n    <tr>\n      <td>map()<\/td>\n      <td>T\u1ea1o m\u1ea3ng m\u1edbi v\u1edbi c\u00e1c ph\u1ea7n t\u1eed \u0111\u01b0\u1ee3c bi\u1ebfn \u0111\u1ed5i<\/td>\n      <td>M\u1ea3ng m\u1edbi c\u00f3 c\u00f9ng \u0111\u1ed9 d\u00e0i v\u1edbi m\u1ea3ng ban \u0111\u1ea7u<\/td>\n    <\/tr>\n    <tr>\n      <td>filter()<\/td>\n      <td>T\u1ea1o m\u1ea3ng m\u1edbi ch\u1ee9a c\u00e1c ph\u1ea7n t\u1eed th\u1ecfa m\u00e3n \u0111i\u1ec1u ki\u1ec7n<\/td>\n      <td>M\u1ea3ng m\u1edbi c\u00f3 th\u1ec3 c\u00f3 \u0111\u1ed9 d\u00e0i nh\u1ecf h\u01a1n m\u1ea3ng ban \u0111\u1ea7u<\/td>\n    <\/tr>\n    <tr>\n      <td>reduce()<\/td>\n      <td>Gi\u1ea3m m\u1ea3ng th\u00e0nh m\u1ed9t gi\u00e1 tr\u1ecb duy nh\u1ea5t<\/td>\n      <td>M\u1ed9t gi\u00e1 tr\u1ecb duy nh\u1ea5t<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4c1f4f5 elementor-widget elementor-widget-heading\" data-id=\"4c1f4f5\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Khi_nao_nen_su_dung_phuong_thuc_nao\"><\/span>Khi n\u00e0o n\u00ean s\u1eed d\u1ee5ng ph\u01b0\u01a1ng th\u1ee9c n\u00e0o?<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1eda48f elementor-widget elementor-widget-text-editor\" data-id=\"1eda48f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"60:1-60:109\"><strong>map():<\/strong> Khi b\u1ea1n mu\u1ed1n t\u1ea1o ra m\u1ed9t m\u1ea3ng m\u1edbi d\u1ef1a tr\u00ean m\u1ea3ng hi\u1ec7n t\u1ea1i, nh\u01b0ng v\u1edbi c\u00e1c gi\u00e1 tr\u1ecb \u0111\u00e3 \u0111\u01b0\u1ee3c bi\u1ebfn \u0111\u1ed5i.<\/li><li data-sourcepos=\"61:1-61:81\"><strong>filter():<\/strong> Khi b\u1ea1n mu\u1ed1n l\u1ecdc ra c\u00e1c ph\u1ea7n t\u1eed th\u1ecfa m\u00e3n m\u1ed9t \u0111i\u1ec1u ki\u1ec7n nh\u1ea5t \u0111\u1ecbnh.<\/li><li data-sourcepos=\"62:1-63:0\"><strong>reduce():<\/strong> Khi b\u1ea1n mu\u1ed1n th\u1ef1c hi\u1ec7n m\u1ed9t ph\u00e9p t\u00ednh t\u00edch l\u0169y tr\u00ean to\u00e0n b\u1ed9 m\u1ea3ng (v\u00ed d\u1ee5: t\u00ednh t\u1ed5ng, t\u00ecm gi\u00e1 tr\u1ecb l\u1edbn nh\u1ea5t\/nh\u1ecf nh\u1ea5t).<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e43862d elementor-widget elementor-widget-heading\" data-id=\"e43862d\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Luu_y\"><\/span>L\u01b0u \u00fd<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9bc295e elementor-widget elementor-widget-text-editor\" data-id=\"9bc295e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"65:1-65:73\">C\u00e1c ph\u01b0\u01a1ng th\u1ee9c n\u00e0y \u0111\u1ec1u tr\u1ea3 v\u1ec1 m\u1ed9t m\u1ea3ng m\u1edbi v\u00e0 kh\u00f4ng thay \u0111\u1ed5i m\u1ea3ng g\u1ed1c.<\/li><li data-sourcepos=\"66:1-66:58\">Callback function c\u00f3 th\u1ec3 nh\u1eadn th\u00eam c\u00e1c tham s\u1ed1 t\u00f9y ch\u1ecdn.<\/li><li data-sourcepos=\"67:1-68:0\">B\u1ea1n c\u00f3 th\u1ec3 k\u1ebft h\u1ee3p c\u00e1c ph\u01b0\u01a1ng th\u1ee9c n\u00e0y \u0111\u1ec3 th\u1ef1c hi\u1ec7n c\u00e1c thao t\u00e1c ph\u1ee9c t\u1ea1p h\u01a1n tr\u00ean m\u1ea3ng.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-07ceaa0 elementor-widget elementor-widget-heading\" data-id=\"07ceaa0\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Vi_du_ket_hop\"><\/span>V\u00ed d\u1ee5 k\u1ebft h\u1ee3p<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-62f3352 elementor-widget elementor-widget-code-highlight\" data-id=\"62f3352\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>const numbers = [1, 2, 3, 4, 5];\nconst sumOfEvenNumbers = numbers\n  .filter(number => number % 2 === 0)\n  .reduce((accumulator, currentValue) => accumulator + currentValue, 0);\nconsole.log(sumOfEvenNumbers); \/\/ 6<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-408183d elementor-widget elementor-widget-text-editor\" data-id=\"408183d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-sourcepos=\"78:1-78:108\">Trong v\u00ed d\u1ee5 tr\u00ean, ch\u00fang ta \u0111\u00e3 k\u1ebft h\u1ee3p <code>filter()<\/code> \u0111\u1ec3 l\u1ecdc ra c\u00e1c s\u1ed1 ch\u1eb5n v\u00e0 <code>reduce()<\/code> \u0111\u1ec3 t\u00ednh t\u1ed5ng c\u1ee7a ch\u00fang.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fb645b8 elementor-widget elementor-widget-heading\" data-id=\"fb645b8\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Prototype_trong_JavaScript_la_gi\"><\/span>Prototype trong JavaScript l\u00e0 g\u00ec?<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7915a1b elementor-widget elementor-widget-text-editor\" data-id=\"7915a1b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>Prototype<\/strong> l\u00e0 m\u1ed9t kh\u00e1i ni\u1ec7m c\u1ed1t l\u00f5i trong JavaScript, n\u00f3 \u0111\u00f3ng vai tr\u00f2 nh\u01b0 m\u1ed9t khu\u00f4n m\u1eabu m\u00e0 c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng \u0111\u01b0\u1ee3c t\u1ea1o ra t\u1eeb \u0111\u00f3 k\u1ebf th\u1eeba c\u00e1c thu\u1ed9c t\u00ednh v\u00e0 ph\u01b0\u01a1ng th\u1ee9c. Ngh\u0129a l\u00e0, khi b\u1ea1n t\u1ea1o m\u1ed9t \u0111\u1ed1i t\u01b0\u1ee3ng m\u1edbi, n\u00f3 s\u1ebd c\u00f3 quy\u1ec1n truy c\u1eadp v\u00e0o c\u00e1c thu\u1ed9c t\u00ednh v\u00e0 ph\u01b0\u01a1ng th\u1ee9c \u0111\u01b0\u1ee3c \u0111\u1ecbnh ngh\u0129a trong prototype c\u1ee7a n\u00f3.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-60ed45e elementor-widget elementor-widget-heading\" data-id=\"60ed45e\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Tai_sao_Prototype_lai_quan_trong\"><\/span>T\u1ea1i sao Prototype l\u1ea1i quan tr\u1ecdng?<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-81d248e elementor-widget elementor-widget-text-editor\" data-id=\"81d248e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul data-sourcepos=\"6:1-9:0\"><li data-sourcepos=\"6:1-6:126\"><strong>K\u1ebf th\u1eeba:<\/strong> Prototype cho ph\u00e9p JavaScript th\u1ef1c hi\u1ec7n c\u01a1 ch\u1ebf k\u1ebf th\u1eeba, gi\u1ed1ng nh\u01b0 c\u00e1c ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh <a href=\"https:\/\/fstack.io.vn\/blog\/lap-trinh-huong-doi-tuong-la-gi-mot-so-dac-trung-cua-oop\/\">h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng<\/a> kh\u00e1c.<\/li><li data-sourcepos=\"7:1-7:149\"><strong>Ti\u1ebft ki\u1ec7m b\u1ed9 nh\u1edb:<\/strong> Thay v\u00ec sao ch\u00e9p c\u00e1c thu\u1ed9c t\u00ednh v\u00e0 ph\u01b0\u01a1ng th\u1ee9c cho t\u1eebng \u0111\u1ed1i t\u01b0\u1ee3ng, ch\u00fang ta ch\u1ec9 c\u1ea7n \u0111\u1ecbnh ngh\u0129a ch\u00fang m\u1ed9t l\u1ea7n trong prototype.<\/li><li data-sourcepos=\"8:1-9:0\"><strong>T\u1ea1o ra c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng c\u00f3 li\u00ean quan:<\/strong> C\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng c\u00f3 c\u00f9ng prototype s\u1ebd chia s\u1ebb c\u00e1c thu\u1ed9c t\u00ednh v\u00e0 ph\u01b0\u01a1ng th\u1ee9c chung.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d6f773f elementor-widget elementor-widget-heading\" data-id=\"d6f773f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Cach_hoat_dong_cua_Prototype\"><\/span>C\u00e1ch ho\u1ea1t \u0111\u1ed9ng c\u1ee7a Prototype<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fd5f076 elementor-widget elementor-widget-text-editor\" data-id=\"fd5f076\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul data-sourcepos=\"6:1-9:0\"><li data-sourcepos=\"11:1-11:137\"><strong>M\u1ed7i h\u00e0m l\u00e0 m\u1ed9t \u0111\u1ed1i t\u01b0\u1ee3ng:<\/strong> Trong JavaScript, m\u1ecdi h\u00e0m \u0111\u1ec1u l\u00e0 m\u1ed9t \u0111\u1ed1i t\u01b0\u1ee3ng. V\u00e0 m\u1ed7i h\u00e0m c\u00f3 m\u1ed9t thu\u1ed9c t\u00ednh \u0111\u1eb7c bi\u1ec7t g\u1ecdi l\u00e0 <code>prototype<\/code>.<\/li><li data-sourcepos=\"12:1-12:192\"><strong>Prototype l\u00e0 m\u1ed9t \u0111\u1ed1i t\u01b0\u1ee3ng:<\/strong> Thu\u1ed9c t\u00ednh <code>prototype<\/code> c\u1ee7a m\u1ed9t h\u00e0m l\u00e0 m\u1ed9t \u0111\u1ed1i t\u01b0\u1ee3ng. C\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng \u0111\u01b0\u1ee3c t\u1ea1o ra t\u1eeb h\u00e0m \u0111\u00f3 s\u1ebd k\u1ebf th\u1eeba c\u00e1c thu\u1ed9c t\u00ednh v\u00e0 ph\u01b0\u01a1ng th\u1ee9c c\u1ee7a \u0111\u1ed1i t\u01b0\u1ee3ng prototype n\u00e0y.<\/li><li data-sourcepos=\"13:1-14:0\"><strong>Chu\u1ed7i prototype:<\/strong> C\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng c\u00f3 th\u1ec3 c\u00f3 m\u1ed9t chu\u1ed7i prototype, ngh\u0129a l\u00e0 m\u1ed9t \u0111\u1ed1i t\u01b0\u1ee3ng c\u00f3 th\u1ec3 k\u1ebf th\u1eeba t\u1eeb prototype c\u1ee7a \u0111\u1ed1i t\u01b0\u1ee3ng kh\u00e1c, v\u00e0 c\u1ee9 th\u1ebf.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-20ceddb elementor-widget elementor-widget-code-highlight\" data-id=\"20ceddb\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>function Person(name, age) {\n  this.name = name;\n  this.age = age;\n}\n\n\/\/ Th\u00eam m\u1ed9t ph\u01b0\u01a1ng th\u1ee9c v\u00e0o prototype c\u1ee7a Person\nPerson.prototype.greet = function() {\n  console.log('Xin ch\u00e0o, t\u00f4i l\u00e0 ' + this.name);\n};\n\n\/\/ T\u1ea1o c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng t\u1eeb h\u00e0m Person\nconst person1 = new Person('Alice', 30);\nconst person2 = new Person('Bob', 25);\n\n\/\/ G\u1ecdi ph\u01b0\u01a1ng th\u1ee9c greet\nperson1.greet(); \/\/ Output: Xin ch\u00e0o, t\u00f4i l\u00e0 Alice\nperson2.greet(); \/\/ Output: Xin ch\u00e0o, t\u00f4i l\u00e0 Bob<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6547442 elementor-widget elementor-widget-text-editor\" data-id=\"6547442\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul data-sourcepos=\"6:1-9:0\"><li data-sourcepos=\"11:1-11:137\"><p data-sourcepos=\"36:1-36:17\">Trong v\u00ed d\u1ee5 tr\u00ean:<\/p><ul data-sourcepos=\"37:1-41:0\"><li data-sourcepos=\"37:1-37:51\"><code>Person<\/code> l\u00e0 m\u1ed9t h\u00e0m (\u0111\u1ed3ng th\u1eddi l\u00e0 m\u1ed9t \u0111\u1ed1i t\u01b0\u1ee3ng).<\/li><li data-sourcepos=\"38:1-38:132\"><code>Person.prototype<\/code> l\u00e0 m\u1ed9t \u0111\u1ed1i t\u01b0\u1ee3ng ch\u1ee9a c\u00e1c thu\u1ed9c t\u00ednh v\u00e0 ph\u01b0\u01a1ng th\u1ee9c m\u00e0 t\u1ea5t c\u1ea3 c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng \u0111\u01b0\u1ee3c t\u1ea1o ra t\u1eeb <code>Person<\/code> s\u1ebd k\u1ebf th\u1eeba.<\/li><li data-sourcepos=\"39:1-39:62\"><code>greet<\/code> l\u00e0 m\u1ed9t ph\u01b0\u01a1ng th\u1ee9c \u0111\u01b0\u1ee3c th\u00eam v\u00e0o <code>Person.prototype<\/code>.<\/li><li data-sourcepos=\"40:1-41:0\">Khi ch\u00fang ta g\u1ecdi <code>person1.greet()<\/code>, JavaScript s\u1ebd t\u00ecm ph\u01b0\u01a1ng th\u1ee9c <code>greet<\/code> trong <code>person1<\/code>. V\u00ec kh\u00f4ng t\u00ecm th\u1ea5y, n\u00f3 s\u1ebd t\u00ecm l\u00ean <code>Person.prototype<\/code> v\u00e0 t\u00ecm th\u1ea5y ph\u01b0\u01a1ng th\u1ee9c <code>greet<\/code> \u1edf \u0111\u00f3.<\/li><\/ul><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-069685e elementor-widget elementor-widget-heading\" data-id=\"069685e\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Ung_dung_cua_Prototype\"><\/span>\u1ee8ng d\u1ee5ng c\u1ee7a Prototype<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a9ee7c4 elementor-widget elementor-widget-text-editor\" data-id=\"a9ee7c4\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"43:1-43:137\"><strong>T\u1ea1o c\u00e1c l\u1edbp:<\/strong> M\u1eb7c d\u00f9 JavaScript kh\u00f4ng c\u00f3 class theo ngh\u0129a truy\u1ec1n th\u1ed1ng, nh\u01b0ng ch\u00fang ta c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng prototype \u0111\u1ec3 m\u00f4 ph\u1ecfng c\u00e1c l\u1edbp.<\/li><li data-sourcepos=\"44:1-44:78\"><strong>K\u1ebf th\u1eeba:<\/strong> Prototype l\u00e0 c\u01a1 s\u1edf cho vi\u1ec7c th\u1ef1c hi\u1ec7n k\u1ebf th\u1eeba trong JavaScript.<\/li><li data-sourcepos=\"45:1-46:0\"><strong>T\u1ea1o c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng c\u00f3 li\u00ean quan:<\/strong> C\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng c\u00f3 c\u00f9ng prototype s\u1ebd c\u00f3 h\u00e0nh vi t\u01b0\u01a1ng t\u1ef1 nhau.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d3c7356 elementor-widget elementor-widget-heading\" data-id=\"d3c7356\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Promise_la_gi_va_dung_khi_nao\"><\/span>Promise l\u00e0 g\u00ec v\u00e0 d\u00f9ng khi n\u00e0o?<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-486b359 elementor-widget elementor-widget-text-editor\" data-id=\"486b359\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>Promise<\/strong> l\u00e0 m\u1ed9t \u0111\u1ed1i t\u01b0\u1ee3ng \u0111\u1ea1i di\u1ec7n cho k\u1ebft qu\u1ea3 (th\u00e0nh c\u00f4ng ho\u1eb7c th\u1ea5t b\u1ea1i) c\u1ee7a m\u1ed9t ho\u1ea1t \u0111\u1ed9ng b\u1ea5t \u0111\u1ed3ng b\u1ed9 trong t\u01b0\u01a1ng lai. N\u00f3i c\u00e1ch kh\u00e1c, Promise l\u00e0 m\u1ed9t &#8220;l\u1eddi h\u1ee9a&#8221; r\u1eb1ng m\u1ed9t t\u00e1c v\u1ee5 n\u00e0o \u0111\u00f3 s\u1ebd \u0111\u01b0\u1ee3c ho\u00e0n th\u00e0nh t\u1ea1i m\u1ed9t th\u1eddi \u0111i\u1ec3m n\u00e0o \u0111\u00f3 trong t\u01b0\u01a1ng lai, v\u00e0 khi \u0111\u00f3 b\u1ea1n s\u1ebd nh\u1eadn \u0111\u01b0\u1ee3c k\u1ebft qu\u1ea3.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bd9db66 elementor-widget elementor-widget-heading\" data-id=\"bd9db66\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Tai_sao_can_su_dung_Promise\"><\/span>T\u1ea1i sao c\u1ea7n s\u1eed d\u1ee5ng Promise?\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-22d82c2 elementor-widget elementor-widget-text-editor\" data-id=\"22d82c2\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul data-sourcepos=\"6:1-9:0\"><li data-sourcepos=\"6:1-6:228\"><strong>X\u1eed l\u00fd c\u00e1c t\u00e1c v\u1ee5 b\u1ea5t \u0111\u1ed3ng b\u1ed9:<\/strong> C\u00e1c ho\u1ea1t \u0111\u1ed9ng nh\u01b0 fetch d\u1eef li\u1ec7u t\u1eeb server, \u0111\u1ecdc file, hay x\u1eed l\u00fd s\u1ef1 ki\u1ec7n th\u01b0\u1eddng m\u1ea5t th\u1eddi gian \u0111\u1ec3 ho\u00e0n th\u00e0nh. Promise gi\u00fap ch\u00fang ta qu\u1ea3n l\u00fd c\u00e1c t\u00e1c v\u1ee5 n\u00e0y m\u1ed9t c\u00e1ch hi\u1ec7u qu\u1ea3, tr\u00e1nh b\u1ecb blocking UI.<\/li><li data-sourcepos=\"7:1-7:154\"><strong>Tr\u00e1nh callback hell:<\/strong> Khi l\u1ed3ng qu\u00e1 nhi\u1ec1u callback v\u00e0o nhau, code s\u1ebd tr\u1edf n\u00ean kh\u00f3 \u0111\u1ecdc v\u00e0 b\u1ea3o tr\u00ec. Promise gi\u00fap ch\u00fang ta vi\u1ebft code m\u1ed9t c\u00e1ch tu\u1ea7n t\u1ef1 h\u01a1n.<\/li><li data-sourcepos=\"8:1-9:0\"><strong>S\u1eed d\u1ee5ng async\/await:<\/strong> Promise l\u00e0 n\u1ec1n t\u1ea3ng cho c\u00fa ph\u00e1p async\/await, gi\u00fap code b\u1ea5t \u0111\u1ed3ng b\u1ed9 tr\u1edf n\u00ean d\u1ec5 \u0111\u1ecdc v\u00e0 g\u1ea7n gi\u1ed1ng v\u1edbi code \u0111\u1ed3ng b\u1ed9.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9dd9d52 elementor-widget elementor-widget-heading\" data-id=\"9dd9d52\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Cach_hoat_dong_cua_Promise\"><\/span>C\u00e1ch ho\u1ea1t \u0111\u1ed9ng c\u1ee7a Promise<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-61ce3ae elementor-widget elementor-widget-text-editor\" data-id=\"61ce3ae\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul data-sourcepos=\"6:1-9:0\"><li data-sourcepos=\"6:1-6:228\"><p data-sourcepos=\"11:1-11:45\">M\u1ed9t Promise c\u00f3 th\u1ec3 \u1edf m\u1ed9t trong ba tr\u1ea1ng th\u00e1i:<\/p><ul data-sourcepos=\"12:1-15:0\"><li data-sourcepos=\"12:1-12:42\"><strong>pending:<\/strong> T\u00e1c v\u1ee5 \u0111ang \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n.<\/li><li data-sourcepos=\"13:1-13:49\"><strong>fulfilled:<\/strong> T\u00e1c v\u1ee5 \u0111\u00e3 ho\u00e0n th\u00e0nh th\u00e0nh c\u00f4ng.<\/li><li data-sourcepos=\"14:1-15:0\"><strong>rejected:<\/strong> T\u00e1c v\u1ee5 \u0111\u00e3 th\u1ea5t b\u1ea1i.<\/li><\/ul><p data-sourcepos=\"16:1-16:117\">Khi t\u1ea1o m\u1ed9t Promise, b\u1ea1n cung c\u1ea5p cho n\u00f3 m\u1ed9t function executor. Function n\u00e0y nh\u1eadn hai tham s\u1ed1: <code>resolve<\/code> v\u00e0 <code>reject<\/code>.<\/p><ul data-sourcepos=\"17:1-19:0\"><li data-sourcepos=\"17:1-17:70\"><strong>resolve:<\/strong> G\u1ecdi khi t\u00e1c v\u1ee5 ho\u00e0n th\u00e0nh th\u00e0nh c\u00f4ng, k\u00e8m theo k\u1ebft qu\u1ea3.<\/li><li data-sourcepos=\"18:1-19:0\"><strong>reject:<\/strong> G\u1ecdi khi t\u00e1c v\u1ee5 th\u1ea5t b\u1ea1i, k\u00e8m theo l\u00fd do.<\/li><\/ul><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-46b288b elementor-widget elementor-widget-code-highlight\" data-id=\"46b288b\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>function fetchData(url) {\n  return new Promise((resolve, reject) => {\n    \/\/ Code \u0111\u1ec3 fetch d\u1eef li\u1ec7u t\u1eeb server\n    fetch(url)\n      .then(response => response.json())\n      .then(data => resolve(data))\n      .catch(error => reject(error));\n  });\n}\n\nfetchData('https:\/\/api.example.com\/data')\n  .then(data => {\n    console.log(data); \/\/ X\u1eed l\u00fd d\u1eef li\u1ec7u th\u00e0nh c\u00f4ng\n  })\n  .catch(error => {\n    console.error(error); \/\/ X\u1eed l\u00fd l\u1ed7i\n  });<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-381259a elementor-widget elementor-widget-text-editor\" data-id=\"381259a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-sourcepos=\"41:1-41:17\">Trong v\u00ed d\u1ee5 tr\u00ean:<\/p><ul data-sourcepos=\"42:1-46:0\"><li data-sourcepos=\"42:1-42:44\"><code>fetchData<\/code> l\u00e0 m\u1ed9t h\u00e0m tr\u1ea3 v\u1ec1 m\u1ed9t Promise.<\/li><li data-sourcepos=\"43:1-43:75\">B\u00ean trong <code>fetchData<\/code>, ch\u00fang ta s\u1eed d\u1ee5ng <code>fetch<\/code> \u0111\u1ec3 l\u1ea5y d\u1eef li\u1ec7u t\u1eeb server.<\/li><li data-sourcepos=\"44:1-44:59\">N\u1ebfu fetch th\u00e0nh c\u00f4ng, ch\u00fang ta g\u1ecdi <code>resolve<\/code> v\u1edbi d\u1eef li\u1ec7u.<\/li><li data-sourcepos=\"45:1-46:0\">N\u1ebfu fetch th\u1ea5t b\u1ea1i, ch\u00fang ta g\u1ecdi <code>reject<\/code> v\u1edbi l\u1ed7i.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a4e0fcf elementor-widget elementor-widget-heading\" data-id=\"a4e0fcf\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Uu_diem_cua_Promise\"><\/span>\u01afu \u0111i\u1ec3m c\u1ee7a Promise<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bc67576 elementor-widget elementor-widget-text-editor\" data-id=\"bc67576\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"48:1-48:81\"><strong>D\u1ec5 \u0111\u1ecdc v\u00e0 b\u1ea3o tr\u00ec h\u01a1n:<\/strong> So v\u1edbi callback hell, Promise gi\u00fap code r\u00f5 r\u00e0ng h\u01a1n.<\/li><li data-sourcepos=\"49:1-49:95\"><strong>H\u1ed7 tr\u1ee3 chaining:<\/strong> C\u00f3 th\u1ec3 li\u00ean k\u1ebft nhi\u1ec1u Promise l\u1ea1i v\u1edbi nhau b\u1eb1ng <code>.then()<\/code> v\u00e0 <code>.catch()<\/code>.<\/li><li data-sourcepos=\"50:1-51:0\"><strong>S\u1eed d\u1ee5ng async\/await:<\/strong> C\u00fa ph\u00e1p async\/await gi\u00fap code b\u1ea5t \u0111\u1ed3ng b\u1ed9 tr\u00f4ng gi\u1ed1ng nh\u01b0 code \u0111\u1ed3ng b\u1ed9.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3d75f60 elementor-widget elementor-widget-heading\" data-id=\"3d75f60\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Khi_nao_nen_su_dung_Promise\"><\/span>Khi n\u00e0o n\u00ean s\u1eed d\u1ee5ng Promise?<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4b1e240 elementor-widget elementor-widget-text-editor\" data-id=\"4b1e240\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"53:1-53:134\"><strong>X\u1eed l\u00fd c\u00e1c t\u00e1c v\u1ee5 b\u1ea5t \u0111\u1ed3ng b\u1ed9:<\/strong> B\u1ea5t c\u1ee9 khi n\u00e0o b\u1ea1n c\u1ea7n th\u1ef1c hi\u1ec7n m\u1ed9t t\u00e1c v\u1ee5 m\u1ea5t th\u1eddi gian v\u00e0 kh\u00f4ng mu\u1ed1n ch\u1eb7n lu\u1ed3ng th\u1ef1c thi ch\u00ednh.<\/li><li data-sourcepos=\"54:1-54:80\"><strong>Qu\u1ea3n l\u00fd l\u1ed7i:<\/strong> Promise cho ph\u00e9p b\u1ea1n x\u1eed l\u00fd l\u1ed7i m\u1ed9t c\u00e1ch r\u00f5 r\u00e0ng v\u00e0 t\u1eadp trung.<\/li><li data-sourcepos=\"55:1-56:0\"><strong>T\u1ea1o ra c\u00e1c API b\u1ea5t \u0111\u1ed3ng b\u1ed9:<\/strong> B\u1ea1n c\u00f3 th\u1ec3 t\u1ea1o ra c\u00e1c API c\u1ee7a ri\u00eang m\u00ecnh d\u1ef1a tr\u00ean Promise \u0111\u1ec3 cung c\u1ea5p cho c\u00e1c th\u00e0nh ph\u1ea7n kh\u00e1c trong \u1ee9ng d\u1ee5ng.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3b1a4bc elementor-widget elementor-widget-heading\" data-id=\"3b1a4bc\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Phan_3_Cau_hoi_JavaScript_nang_cao\"><\/span>Ph\u1ea7n 3: C\u00e2u h\u1ecfi JavaScript n\u00e2ng cao<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-01862ba elementor-widget elementor-widget-heading\" data-id=\"01862ba\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"AsyncAwait_la_gi_va_hoat_dong_nhu_the_nao\"><\/span>Async\/Await l\u00e0 g\u00ec v\u00e0 ho\u1ea1t \u0111\u1ed9ng nh\u01b0 th\u1ebf n\u00e0o?<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d584945 elementor-widget elementor-widget-text-editor\" data-id=\"d584945\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>Async\/await<\/strong> l\u00e0 m\u1ed9t c\u1eb7p t\u1eeb kh\u00f3a trong JavaScript \u0111\u01b0\u1ee3c gi\u1edbi thi\u1ec7u \u0111\u1ec3 gi\u00fap ch\u00fang ta l\u00e0m vi\u1ec7c v\u1edbi c\u00e1c ho\u1ea1t \u0111\u1ed9ng b\u1ea5t \u0111\u1ed3ng b\u1ed9 m\u1ed9t c\u00e1ch d\u1ec5 d\u00e0ng h\u01a1n v\u00e0 tr\u1ef1c quan h\u01a1n. N\u00f3 gi\u00fap code b\u1ea5t \u0111\u1ed3ng b\u1ed9 tr\u00f4ng gi\u1ed1ng nh\u01b0 code \u0111\u1ed3ng b\u1ed9, l\u00e0m cho vi\u1ec7c \u0111\u1ecdc v\u00e0 vi\u1ebft code tr\u1edf n\u00ean \u0111\u01a1n gi\u1ea3n h\u01a1n.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0f9f1f2 elementor-widget elementor-widget-heading\" data-id=\"0f9f1f2\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Async_Khai_bao_ham_bat_dong_bo\"><\/span>Async: Khai b\u00e1o h\u00e0m b\u1ea5t \u0111\u1ed3ng b\u1ed9<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-46bcc9b elementor-widget elementor-widget-text-editor\" data-id=\"46bcc9b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"6:1-6:76\"><strong>Async<\/strong> \u0111\u01b0\u1ee3c \u0111\u1eb7t tr\u01b0\u1edbc m\u1ed9t h\u00e0m \u0111\u1ec3 bi\u1ebfn h\u00e0m \u0111\u00f3 th\u00e0nh m\u1ed9t h\u00e0m b\u1ea5t \u0111\u1ed3ng b\u1ed9.<\/li><li data-sourcepos=\"7:1-8:0\">H\u00e0m async lu\u00f4n tr\u1ea3 v\u1ec1 m\u1ed9t Promise.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e758da4 elementor-widget elementor-widget-code-highlight\" data-id=\"e758da4\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>async function fetchData() {\n  \/\/ Code b\u1ea5t \u0111\u1ed3ng b\u1ed9 \u1edf \u0111\u00e2y\n  const response = await fetch('https:\/\/api.example.com\/data');\n  const data = await response.json();\n  return data;\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8e8f91d elementor-widget elementor-widget-heading\" data-id=\"8e8f91d\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Await_Cho_doi_mot_Promise\"><\/span>Await: Ch\u1edd \u0111\u1ee3i m\u1ed9t Promise<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f69c0a3 elementor-widget elementor-widget-text-editor\" data-id=\"f69c0a3\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"19:1-19:60\"><strong>Await<\/strong> ch\u1ec9 c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng b\u00ean trong m\u1ed9t h\u00e0m async.<\/li><li data-sourcepos=\"20:1-20:150\">Khi g\u1eb7p <code>await<\/code> tr\u01b0\u1edbc m\u1ed9t Promise, JavaScript s\u1ebd t\u1ea1m d\u1eebng vi\u1ec7c th\u1ef1c thi h\u00e0m async cho \u0111\u1ebfn khi Promise \u0111\u00f3 \u0111\u01b0\u1ee3c gi\u1ea3i quy\u1ebft (fulfilled) ho\u1eb7c b\u1ecb reject.<\/li><li data-sourcepos=\"21:1-22:0\">K\u1ebft qu\u1ea3 c\u1ee7a Promise s\u1ebd \u0111\u01b0\u1ee3c g\u00e1n cho bi\u1ebfn \u1edf b\u00ean tr\u00e1i <code>await<\/code>.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-db615a0 elementor-widget elementor-widget-code-highlight\" data-id=\"db615a0\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>async function fetchDataAndLog() {\n  const data = await fetchData();\n  console.log(data);\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b062a6b elementor-widget elementor-widget-heading\" data-id=\"b062a6b\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Cach_hoat_dong_cua_AsyncAwait\"><\/span>C\u00e1ch ho\u1ea1t \u0111\u1ed9ng c\u1ee7a Async\/Await<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9e931eb elementor-widget elementor-widget-text-editor\" data-id=\"9e931eb\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"31:1-31:50\">Khi g\u1ecdi m\u1ed9t h\u00e0m async, m\u1ed9t Promise \u0111\u01b0\u1ee3c t\u1ea1o ra.<\/li><li data-sourcepos=\"32:1-32:81\">Khi g\u1eb7p <code>await<\/code> trong h\u00e0m async, JavaScript s\u1ebd ch\u1edd Promise \u0111\u00f3 \u0111\u01b0\u1ee3c gi\u1ea3i quy\u1ebft.<\/li><li data-sourcepos=\"33:1-33:68\">Trong khi ch\u1edd \u0111\u1ee3i, lu\u1ed3ng th\u1ef1c thi s\u1ebd chuy\u1ec3n sang c\u00e1c t\u00e1c v\u1ee5 kh\u00e1c.<\/li><li data-sourcepos=\"34:1-35:0\">Khi Promise \u0111\u01b0\u1ee3c gi\u1ea3i quy\u1ebft, gi\u00e1 tr\u1ecb tr\u1ea3 v\u1ec1 c\u1ee7a Promise s\u1ebd \u0111\u01b0\u1ee3c g\u00e1n cho bi\u1ebfn \u1edf b\u00ean tr\u00e1i <code>await<\/code> v\u00e0 vi\u1ec7c th\u1ef1c thi h\u00e0m async s\u1ebd ti\u1ebfp t\u1ee5c.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a499ca1 elementor-widget elementor-widget-heading\" data-id=\"a499ca1\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Tai_sao_nen_su_dung_AsyncAwait\"><\/span>T\u1ea1i sao n\u00ean s\u1eed d\u1ee5ng Async\/Await?<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-292c45d elementor-widget elementor-widget-text-editor\" data-id=\"292c45d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"37:1-37:111\"><strong>Code d\u1ec5 \u0111\u1ecdc h\u01a1n:<\/strong> Code async\/await tr\u00f4ng gi\u1ed1ng nh\u01b0 code \u0111\u1ed3ng b\u1ed9, gi\u00fap b\u1ea1n d\u1ec5 d\u00e0ng theo d\u00f5i lu\u1ed3ng th\u1ef1c thi.<\/li><li data-sourcepos=\"38:1-38:110\"><strong>Tr\u00e1nh callback hell:<\/strong> Async\/await gi\u00fap b\u1ea1n vi\u1ebft code m\u1ed9t c\u00e1ch tu\u1ea7n t\u1ef1 h\u01a1n, tr\u00e1nh l\u1ed3ng qu\u00e1 nhi\u1ec1u callback.<\/li><li data-sourcepos=\"39:1-40:0\"><strong>S\u1eed d\u1ee5ng v\u1edbi Promise:<\/strong> Async\/await \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng tr\u00ean n\u1ec1n t\u1ea3ng c\u1ee7a Promise, gi\u00fap b\u1ea1n t\u1eadn d\u1ee5ng \u0111\u01b0\u1ee3c t\u1ea5t c\u1ea3 c\u00e1c t\u00ednh n\u0103ng c\u1ee7a Promise.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-684f241 elementor-widget elementor-widget-heading\" data-id=\"684f241\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Vi_du_cu_the_ve_async_await\"><\/span>V\u00ed d\u1ee5 c\u1ee5 th\u1ec3 v\u1ec1 async &amp; await <span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0f726b7 elementor-widget elementor-widget-code-highlight\" data-id=\"0f726b7\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>async function getUser(id) {\n  const response = await fetch(`https:\/\/api.example.com\/users\/${id}`);\n  const user = await response.json();\n  return user;\n}\n\nasync function main() {\n  try {\n    const user = await getUser(123);\n    console.log(user.name);\n  } catch (error) {\n    console.error('Error:', error);\n  }\n}\n\nmain();<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fe059a1 elementor-widget elementor-widget-text-editor\" data-id=\"fe059a1\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-sourcepos=\"61:1-61:17\">Trong v\u00ed d\u1ee5 tr\u00ean:<\/p><ul data-sourcepos=\"62:1-65:0\"><li data-sourcepos=\"62:1-62:63\"><code>getUser<\/code> l\u00e0 m\u1ed9t h\u00e0m async, l\u1ea5y d\u1eef li\u1ec7u ng\u01b0\u1eddi d\u00f9ng t\u1eeb server.<\/li><li data-sourcepos=\"63:1-63:67\"><code>main<\/code> l\u00e0 m\u1ed9t h\u00e0m async, g\u1ecdi <code>getUser<\/code> v\u00e0 x\u1eed l\u00fd k\u1ebft qu\u1ea3 ho\u1eb7c l\u1ed7i.<\/li><li data-sourcepos=\"64:1-65:0\">Ch\u00fang ta s\u1eed d\u1ee5ng <code>try...catch<\/code> \u0111\u1ec3 b\u1eaft l\u1ed7i trong tr\u01b0\u1eddng h\u1ee3p fetch d\u1eef li\u1ec7u th\u1ea5t b\u1ea1i.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4d96c53 elementor-widget elementor-widget-heading\" data-id=\"4d96c53\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"So_sanh_voi_Promise\"><\/span>So s\u00e1nh v\u1edbi Promise<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-751a10b elementor-widget elementor-widget-text-editor\" data-id=\"751a10b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"67:1-67:75\"><strong>Promise:<\/strong> Cung c\u1ea5p m\u1ed9t c\u00e1ch c\u01a1 b\u1ea3n \u0111\u1ec3 x\u1eed l\u00fd c\u00e1c ho\u1ea1t \u0111\u1ed9ng b\u1ea5t \u0111\u1ed3ng b\u1ed9.<\/li><li data-sourcepos=\"68:1-69:0\"><strong>Async\/await:<\/strong> L\u00e0 m\u1ed9t c\u00fa ph\u00e1p x\u00e2y d\u1ef1ng tr\u00ean Promise, gi\u00fap code b\u1ea5t \u0111\u1ed3ng b\u1ed9 d\u1ec5 \u0111\u1ecdc v\u00e0 vi\u1ebft h\u01a1n.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-171a4d9 elementor-widget elementor-widget-heading\" data-id=\"171a4d9\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Explain_Event_Loop_in_JavaScript\"><\/span>Explain Event Loop in JavaScript.<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c9a5c57 elementor-widget elementor-widget-text-editor\" data-id=\"c9a5c57\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>V\u00f2ng l\u1eb7p s\u1ef1 ki\u1ec7n<\/strong> l\u00e0 m\u1ed9t c\u01a1 ch\u1ebf c\u1ed1t l\u00f5i trong JavaScript, cho ph\u00e9p ng\u00f4n ng\u1eef n\u00e0y x\u1eed l\u00fd c\u00e1c t\u00e1c v\u1ee5 b\u1ea5t \u0111\u1ed3ng b\u1ed9 m\u1ed9t c\u00e1ch hi\u1ec7u qu\u1ea3. N\u00f3 l\u00e0 l\u00fd do t\u1ea1i sao JavaScript c\u00f3 th\u1ec3 th\u1ef1c hi\u1ec7n nhi\u1ec1u vi\u1ec7c c\u00f9ng m\u1ed9t l\u00fac m\u1eb7c d\u00f9 n\u00f3 ch\u1ec9 c\u00f3 m\u1ed9t lu\u1ed3ng duy nh\u1ea5t.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5bca48a elementor-widget elementor-widget-image\" data-id=\"5bca48a\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"450\" src=\"https:\/\/fstack.io.vn\/blog\/wp-content\/uploads\/2024\/10\/Javascript-event-loop-1024x576.png\" class=\"attachment-large size-large wp-image-2757\" alt=\"Explain Event Loop in JavaScript.\" srcset=\"https:\/\/fstack.io.vn\/blog\/wp-content\/uploads\/2024\/10\/Javascript-event-loop-1024x576.png 1024w, https:\/\/fstack.io.vn\/blog\/wp-content\/uploads\/2024\/10\/Javascript-event-loop-300x169.png 300w, https:\/\/fstack.io.vn\/blog\/wp-content\/uploads\/2024\/10\/Javascript-event-loop-768x432.png 768w, https:\/\/fstack.io.vn\/blog\/wp-content\/uploads\/2024\/10\/Javascript-event-loop-1536x864.png 1536w, https:\/\/fstack.io.vn\/blog\/wp-content\/uploads\/2024\/10\/Javascript-event-loop.png 1920w\" sizes=\"(max-width: 800px) 100vw, 800px\" title=\"\">\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Explain Event Loop in JavaScript.<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f62edb5 elementor-widget elementor-widget-heading\" data-id=\"f62edb5\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Vong_lap_su_kien_hoat_dong_nhu_the_nao\"><\/span>V\u00f2ng l\u1eb7p s\u1ef1 ki\u1ec7n ho\u1ea1t \u0111\u1ed9ng nh\u01b0 th\u1ebf n\u00e0o?<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4353af4 elementor-widget elementor-widget-text-editor\" data-id=\"4353af4\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-sourcepos=\"7:1-7:147\">H\u00e3y t\u01b0\u1edfng t\u01b0\u1ee3ng v\u00f2ng l\u1eb7p s\u1ef1 ki\u1ec7n nh\u01b0 m\u1ed9t ng\u01b0\u1eddi qu\u1ea3n l\u00fd b\u1eadn r\u1ed9n, li\u00ean t\u1ee5c ki\u1ec3m tra danh s\u00e1ch c\u00f4ng vi\u1ec7c v\u00e0 th\u1ef1c hi\u1ec7n ch\u00fang theo m\u1ed9t th\u1ee9 t\u1ef1 nh\u1ea5t \u0111\u1ecbnh.<\/p><ol data-sourcepos=\"9:1-15:0\"><li data-sourcepos=\"9:1-9:172\"><strong>Stack (Ng\u0103n x\u1ebfp):<\/strong> \u0110\u00e2y l\u00e0 n\u01a1i c\u00e1c h\u00e0m \u0111\u01b0\u1ee3c g\u1ecdi v\u00e0 th\u1ef1c thi m\u1ed9t c\u00e1ch tu\u1ea7n t\u1ef1. Khi m\u1ed9t h\u00e0m \u0111\u01b0\u1ee3c g\u1ecdi, n\u00f3 \u0111\u01b0\u1ee3c \u0111\u1ea9y v\u00e0o stack. Khi h\u00e0m k\u1ebft th\u00fac, n\u00f3 \u0111\u01b0\u1ee3c pop ra kh\u1ecfi stack.<\/li><li data-sourcepos=\"10:1-10:134\"><strong>Queue (H\u00e0ng \u0111\u1ee3i):<\/strong> \u0110\u00e2y l\u00e0 n\u01a1i c\u00e1c t\u00e1c v\u1ee5 b\u1ea5t \u0111\u1ed3ng b\u1ed9 (nh\u01b0 setTimeout, fetch, click events) \u0111\u01b0\u1ee3c \u0111\u01b0a v\u00e0o khi ch\u00fang \u0111\u01b0\u1ee3c kh\u1edfi t\u1ea1o.<\/li><li data-sourcepos=\"11:1-15:0\"><strong>V\u00f2ng l\u1eb7p s\u1ef1 ki\u1ec7n:<\/strong><ul data-sourcepos=\"12:4-15:0\"><li data-sourcepos=\"12:4-12:51\">Li\u00ean t\u1ee5c ki\u1ec3m tra xem stack c\u00f3 r\u1ed7ng hay kh\u00f4ng.<\/li><li data-sourcepos=\"13:4-13:95\">N\u1ebfu stack r\u1ed7ng, v\u00f2ng l\u1eb7p s\u1ebd l\u1ea5y m\u1ed9t t\u00e1c v\u1ee5 \u0111\u1ea7u ti\u00ean t\u1eeb queue v\u00e0 \u0111\u1ea9y v\u00e0o stack \u0111\u1ec3 th\u1ef1c thi.<\/li><li data-sourcepos=\"14:4-15:0\">Qu\u00e1 tr\u00ecnh n\u00e0y l\u1eb7p \u0111i l\u1eb7p l\u1ea1i cho \u0111\u1ebfn khi kh\u00f4ng c\u00f2n t\u00e1c v\u1ee5 n\u00e0o trong queue.<\/li><\/ul><\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c4d1101 elementor-widget elementor-widget-code-highlight\" data-id=\"c4d1101\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>console.log('Start');\n\nsetTimeout(() => {\n  console.log('Callback');\n}, 0);\n\nconsole.log('End');<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-66c4308 elementor-widget elementor-widget-text-editor\" data-id=\"66c4308\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"28:1-28:62\"><strong>Start<\/strong> \u0111\u01b0\u1ee3c in ra ngay l\u1eadp t\u1ee9c v\u00ec n\u00f3 l\u00e0 m\u1ed9t l\u1ec7nh \u0111\u1ed3ng b\u1ed9.<\/li><li data-sourcepos=\"29:1-29:67\"><strong>setTimeout<\/strong> l\u00e0 m\u1ed9t h\u00e0m b\u1ea5t \u0111\u1ed3ng b\u1ed9, n\u00ean n\u00f3 \u0111\u01b0\u1ee3c \u0111\u01b0a v\u00e0o queue.<\/li><li data-sourcepos=\"30:1-30:54\"><strong>End<\/strong> \u0111\u01b0\u1ee3c in ra ti\u1ebfp theo v\u00ec stack v\u1eabn c\u00f2n tr\u1ed1ng.<\/li><li data-sourcepos=\"31:1-31:105\">Sau khi stack r\u1ed7ng, v\u00f2ng l\u1eb7p s\u1ef1 ki\u1ec7n l\u1ea5y callback c\u1ee7a setTimeout t\u1eeb queue v\u00e0 \u0111\u1ea9y v\u00e0o stack \u0111\u1ec3 th\u1ef1c thi.<\/li><li data-sourcepos=\"32:1-33:0\"><strong>Callback<\/strong> \u0111\u01b0\u1ee3c in ra cu\u1ed1i c\u00f9ng.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-54afb57 elementor-widget elementor-widget-heading\" data-id=\"54afb57\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Tai_sao_vong_lap_su_kien_lai_quan_trong\"><\/span>T\u1ea1i sao v\u00f2ng l\u1eb7p s\u1ef1 ki\u1ec7n l\u1ea1i quan tr\u1ecdng?<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c2a1fe6 elementor-widget elementor-widget-text-editor\" data-id=\"c2a1fe6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"35:1-35:143\"><strong>X\u1eed l\u00fd c\u00e1c t\u00e1c v\u1ee5 b\u1ea5t \u0111\u1ed3ng b\u1ed9:<\/strong> Cho ph\u00e9p JavaScript th\u1ef1c hi\u1ec7n c\u00e1c t\u00e1c v\u1ee5 kh\u00f4ng ch\u1eb7n lu\u1ed3ng ch\u00ednh, \u0111\u1ea3m b\u1ea3o <a href=\"https:\/\/fstack.io.vn\/blog\/du-an\/\">giao di\u1ec7n<\/a> ng\u01b0\u1eddi d\u00f9ng lu\u00f4n \u0111\u00e1p \u1ee9ng.<\/li><li data-sourcepos=\"36:1-36:140\"><strong>T\u1ea1o ra c\u00e1c \u1ee9ng d\u1ee5ng web \u0111\u1ed9ng:<\/strong> Nh\u1edd v\u00f2ng l\u1eb7p s\u1ef1 ki\u1ec7n, ch\u00fang ta c\u00f3 th\u1ec3 x\u00e2y d\u1ef1ng c\u00e1c \u1ee9ng d\u1ee5ng web ph\u1ee9c t\u1ea1p v\u1edbi nhi\u1ec1u t\u01b0\u01a1ng t\u00e1c ng\u01b0\u1eddi d\u00f9ng.<\/li><li data-sourcepos=\"37:1-38:0\"><strong>Hi\u1ec7u su\u1ea5t:<\/strong> Gi\u00fap tr\u00e1nh t\u00ecnh tr\u1ea1ng \u1ee9ng d\u1ee5ng b\u1ecb treo khi th\u1ef1c hi\u1ec7n c\u00e1c t\u00e1c v\u1ee5 n\u1eb7ng.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-80ef324 elementor-widget elementor-widget-heading\" data-id=\"80ef324\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"The_nao_la_Context_va_Scope_trong_JavaScript\"><\/span>Th\u1ebf n\u00e0o l\u00e0 Context v\u00e0 Scope trong JavaScript?<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-feceaf9 elementor-widget elementor-widget-text-editor\" data-id=\"feceaf9\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>Context (Ng\u1eef c\u1ea3nh)<\/strong> v\u00e0 <strong>Scope (Ph\u1ea1m vi)<\/strong> l\u00e0 hai kh\u00e1i ni\u1ec7m quan tr\u1ecdng trong JavaScript, \u0111\u1eb7c bi\u1ec7t khi l\u00e0m vi\u1ec7c v\u1edbi c\u00e1c h\u00e0m v\u00e0 \u0111\u1ed1i t\u01b0\u1ee3ng. Ch\u00fang x\u00e1c \u0111\u1ecbnh c\u00e1ch c\u00e1c bi\u1ebfn v\u00e0 \u0111\u1ed1i t\u01b0\u1ee3ng \u0111\u01b0\u1ee3c truy c\u1eadp v\u00e0 s\u1eed d\u1ee5ng trong m\u00e3 c\u1ee7a b\u1ea1n.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c901771 elementor-widget elementor-widget-heading\" data-id=\"c901771\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Context_Ngu_canh\"><\/span>Context (Ng\u1eef c\u1ea3nh)<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-96c2dde elementor-widget elementor-widget-text-editor\" data-id=\"96c2dde\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"6:1-6:132\"><strong>\u0110\u1ecbnh ngh\u0129a:<\/strong> Ng\u1eef c\u1ea3nh x\u00e1c \u0111\u1ecbnh gi\u00e1 tr\u1ecb c\u1ee7a t\u1eeb kh\u00f3a <code>this<\/code> b\u00ean trong m\u1ed9t h\u00e0m. N\u00f3 ch\u1ec9 ra \u0111\u1ed1i t\u01b0\u1ee3ng m\u00e0 <code>this<\/code> \u0111ang tham chi\u1ebfu \u0111\u1ebfn.<\/li><li data-sourcepos=\"7:1-10:127\"><strong>C\u00e1ch x\u00e1c \u0111\u1ecbnh:<\/strong><ul data-sourcepos=\"8:3-10:127\"><li data-sourcepos=\"8:3-8:110\"><strong>Global context:<\/strong> Khi m\u1ed9t h\u00e0m \u0111\u01b0\u1ee3c g\u1ecdi \u1edf c\u1ea5p \u0111\u1ed9 to\u00e0n c\u1ee5c, <code>this<\/code> th\u01b0\u1eddng tham chi\u1ebfu \u0111\u1ebfn \u0111\u1ed1i t\u01b0\u1ee3ng window.<\/li><li data-sourcepos=\"9:3-9:119\"><strong>Object context:<\/strong> Khi m\u1ed9t h\u00e0m \u0111\u01b0\u1ee3c g\u1ecdi nh\u01b0 m\u1ed9t ph\u01b0\u01a1ng th\u1ee9c c\u1ee7a m\u1ed9t \u0111\u1ed1i t\u01b0\u1ee3ng, <code>this<\/code> tham chi\u1ebfu \u0111\u1ebfn \u0111\u1ed1i t\u01b0\u1ee3ng \u0111\u00f3.<\/li><li data-sourcepos=\"10:3-10:127\"><strong>Explicit binding:<\/strong> B\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng c\u00e1c ph\u01b0\u01a1ng th\u1ee9c nh\u01b0 <code>call<\/code>, <code>apply<\/code> ho\u1eb7c <code>bind<\/code> \u0111\u1ec3 thi\u1ebft l\u1eadp ng\u1eef c\u1ea3nh cho m\u1ed9t h\u00e0m.<\/li><\/ul><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2e73f55 elementor-widget elementor-widget-code-highlight\" data-id=\"2e73f55\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>const person = {\n    name: 'Alice',\n    greet: function() {\n        console.log('Hello, my name is ' + this.name);\n    }\n};\n\nperson.greet(); \/\/ Output: Hello, my name is Alice<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-14b0682 elementor-widget elementor-widget-text-editor\" data-id=\"14b0682\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tTrong v\u00ed d\u1ee5 tr\u00ean, khi g\u1ecdi person.greet(), this b\u00ean trong h\u00e0m greet s\u1ebd tham chi\u1ebfu \u0111\u1ebfn \u0111\u1ed1i t\u01b0\u1ee3ng person.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ecaba27 elementor-widget elementor-widget-heading\" data-id=\"ecaba27\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Scope_Pham_vi\"><\/span>Scope (Ph\u1ea1m vi)<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2abd715 elementor-widget elementor-widget-text-editor\" data-id=\"2abd715\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li data-sourcepos=\"25:1-25:162\"><strong>\u0110\u1ecbnh ngh\u0129a:<\/strong> Ph\u1ea1m vi x\u00e1c \u0111\u1ecbnh kh\u1ea3 n\u0103ng truy c\u1eadp \u0111\u1ebfn c\u00e1c bi\u1ebfn v\u00e0 h\u00e0m trong m\u1ed9t ph\u1ea7n c\u1ee7a m\u00e3. N\u00f3 quy\u1ebft \u0111\u1ecbnh bi\u1ebfn n\u00e0o c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c truy c\u1eadp t\u1ea1i m\u1ed9t v\u1ecb tr\u00ed c\u1ee5 th\u1ec3.<\/li><li data-sourcepos=\"26:1-29:162\"><strong>Lo\u1ea1i scope:<\/strong><ul data-sourcepos=\"27:3-29:162\"><li data-sourcepos=\"27:3-27:85\"><strong>Global scope:<\/strong> C\u00e1c bi\u1ebfn \u0111\u01b0\u1ee3c khai b\u00e1o \u1edf c\u1ea5p \u0111\u1ed9 ngo\u00e0i c\u00f9ng c\u00f3 ph\u1ea1m vi to\u00e0n c\u1ee5c.<\/li><li data-sourcepos=\"28:3-28:107\"><strong>Function scope:<\/strong> C\u00e1c bi\u1ebfn \u0111\u01b0\u1ee3c khai b\u00e1o b\u00ean trong m\u1ed9t h\u00e0m ch\u1ec9 c\u00f3 th\u1ec3 truy c\u1eadp \u0111\u01b0\u1ee3c b\u00ean trong h\u00e0m \u0111\u00f3.<\/li><li data-sourcepos=\"29:3-29:162\"><strong>Block scope:<\/strong> T\u1eeb ES6, c\u00e1c bi\u1ebfn khai b\u00e1o b\u1eb1ng <code>let<\/code> v\u00e0 <code>const<\/code> c\u00f3 ph\u1ea1m vi kh\u1ed1i, t\u1ee9c l\u00e0 ch\u1ec9 c\u00f3 th\u1ec3 truy c\u1eadp \u0111\u01b0\u1ee3c b\u00ean trong kh\u1ed1i l\u1ec7nh n\u01a1i ch\u00fang \u0111\u01b0\u1ee3c khai b\u00e1o.<\/li><\/ul><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-17b3e9b elementor-widget elementor-widget-code-highlight\" data-id=\"17b3e9b\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>let x = 10; \/\/ Global scope\n\nfunction myFunction() {\n    let y = 5; \/\/ Function scope\n    console.log(x); \/\/ C\u00f3 th\u1ec3 truy c\u1eadp x\n    console.log(y); \/\/ C\u00f3 th\u1ec3 truy c\u1eadp y\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d53b5b9 elementor-widget elementor-widget-heading\" data-id=\"d53b5b9\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Su_khac_biet_giua_Context_va_Scope\"><\/span>S\u1ef1 kh\u00e1c bi\u1ec7t gi\u1eefa Context v\u00e0 Scope<span class=\"ez-toc-section-end\"><\/span><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-95bb036 elementor-widget elementor-widget-text-editor\" data-id=\"95bb036\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<table>\n  <tbody>\n    <tr>\n      <th>Kh\u00e1i ni\u1ec7m<\/th>\n      <th>\u0110\u1ecbnh ngh\u0129a<\/th>\n      <th>V\u00ed d\u1ee5<\/th>\n    <\/tr>\n    <tr>\n      <td><strong>Context<\/strong><\/td>\n      <td>X\u00e1c \u0111\u1ecbnh gi\u00e1 tr\u1ecb c\u1ee7a <code>this<\/code><\/td>\n      <td><code>this<\/code> trong m\u1ed9t ph\u01b0\u01a1ng th\u1ee9c<\/td>\n    <\/tr>\n    <tr>\n      <td><strong>Scope<\/strong><\/td>\n      <td>X\u00e1c \u0111\u1ecbnh kh\u1ea3 n\u0103ng truy c\u1eadp \u0111\u1ebfn bi\u1ebfn<\/td>\n      <td>Bi\u1ebfn c\u1ee5c b\u1ed9, bi\u1ebfn to\u00e0n c\u1ee5c<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-da2f838 elementor-widget elementor-widget-heading\" data-id=\"da2f838\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Su_khac_biet_giua_call_apply_va_bind_la_gi\"><\/span>S\u1ef1 kh\u00e1c bi\u1ec7t gi\u1eefa call, apply, v\u00e0 bind l\u00e0 g\u00ec?<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-500d1bd elementor-widget elementor-widget-text-editor\" data-id=\"500d1bd\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><code>call<\/code> v\u00e0 <code>apply<\/code> \u0111\u1ec1u g\u1ecdi h\u00e0m v\u1edbi m\u1ed9t gi\u00e1 tr\u1ecb <code>this<\/code> c\u1ee5 th\u1ec3, nh\u01b0ng <code>call<\/code> nh\u1eadn c\u00e1c \u0111\u1ed1i s\u1ed1 ri\u00eang l\u1ebb, c\u00f2n <code>apply<\/code> nh\u1eadn m\u1ed9t m\u1ea3ng. <code>bind<\/code> tr\u1ea3 v\u1ec1 m\u1ed9t h\u00e0m m\u1edbi v\u1edbi <code>this<\/code> c\u1ed1 \u0111\u1ecbnh m\u00e0 kh\u00f4ng th\u1ef1c thi ngay.<\/p><p>\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Ph\u1ea7n 1: C\u00e2u h\u1ecfi JavaScript c\u01a1 b\u1ea3n JavaScript l\u00e0 g\u00ec? JavaScript l\u00e0 ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh ph\u00eda client v\u00e0 server-side, th\u01b0\u1eddng \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 t\u1ea1o hi\u1ec7u \u1ee9ng \u0111\u1ed9ng tr\u00ean trang web, t\u01b0\u01a1ng t\u00e1c v\u1edbi ng\u01b0\u1eddi d\u00f9ng v\u00e0 x\u1eed l\u00fd c\u00e1c s\u1ef1 ki\u1ec7n. S\u1ef1 kh\u00e1c nhau gi\u1eefa let, const, v\u00e0 var l\u00e0 g\u00ec? var: c\u00f3 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2728,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[48,1],"tags":[63,62],"class_list":["post-2727","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-lap-trinh","category-cong-nghe","tag-interview","tag-phong-van"],"acf":[],"jetpack_featured_media_url":"https:\/\/fstack.io.vn\/blog\/wp-content\/uploads\/2024\/10\/460abf_cae92f05928a44fa9775e1c544aa3577mv2.webp","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fstack.io.vn\/blog\/wp-json\/wp\/v2\/posts\/2727","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fstack.io.vn\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fstack.io.vn\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fstack.io.vn\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fstack.io.vn\/blog\/wp-json\/wp\/v2\/comments?post=2727"}],"version-history":[{"count":28,"href":"https:\/\/fstack.io.vn\/blog\/wp-json\/wp\/v2\/posts\/2727\/revisions"}],"predecessor-version":[{"id":2766,"href":"https:\/\/fstack.io.vn\/blog\/wp-json\/wp\/v2\/posts\/2727\/revisions\/2766"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fstack.io.vn\/blog\/wp-json\/wp\/v2\/media\/2728"}],"wp:attachment":[{"href":"https:\/\/fstack.io.vn\/blog\/wp-json\/wp\/v2\/media?parent=2727"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fstack.io.vn\/blog\/wp-json\/wp\/v2\/categories?post=2727"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fstack.io.vn\/blog\/wp-json\/wp\/v2\/tags?post=2727"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}