{"id":31481,"date":"2026-10-27T08:00:00","date_gmt":"2026-10-27T01:00:00","guid":{"rendered":"https:\/\/www.careerlink.vn\/cam-nang-viec-lam\/?p=31481"},"modified":"2026-10-27T16:53:13","modified_gmt":"2026-10-27T09:53:13","slug":"cau-hoi-phong-van-javascript","status":"publish","type":"post","link":"https:\/\/www.careerlink.vn\/cam-nang-viec-lam\/phong-van-viec-lam\/cau-hoi-phong-van-javascript","title":{"rendered":"C\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n JavaScript: \u00e9p ki\u1ec3u, this, b\u1ea5t \u0111\u1ed3ng b\u1ed9 v\u00e0 \u0111o\u00e1n output"},"content":{"rendered":"<p>Nhi\u1ec1u L\u1eadp tr\u00ecnh vi\u00ean JavaScript (JavaScript Developer) d\u00f9ng React hay Vue h\u1eb1ng ng\u00e0y nh\u01b0ng v\u1eabn l\u00fang t\u00fang khi b\u1ecb h\u1ecfi v\u1ec1 ch\u00ednh ng\u00f4n ng\u1eef. B\u00e0i vi\u1ebft gom c\u00e1c <strong>c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n JavaScript<\/strong> thu\u1ea7n, kh\u00f4ng framework, theo nh\u00f3m ki\u1ebfn th\u1ee9c: \u00e9p ki\u1ec3u, ph\u1ea1m vi bi\u1ebfn, <code>this<\/code>, prototype v\u00e0 b\u1ea5t \u0111\u1ed3ng b\u1ed9. M\u1ed7i c\u00e2u k\u00e8m \u0111i\u1ec1u ng\u01b0\u1eddi h\u1ecfi mu\u1ed1n ki\u1ec3m tra v\u00e0 \u00fd tr\u1ea3 l\u1eddi ch\u00ednh.<\/p>\n<p style=\"text-align:center\"><img decoding=\"async\" src=\"https:\/\/cl-wpml.careerlink.vn\/cam-nang-viec-lam\/wp-content\/uploads\/2026\/10\/20153657\/a-cau-hoi-phong-van-javascript-1.png\" alt=\"c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n JavaScript\" style=\"max-width:100%;height:auto;\" \/><\/p>\n<div style=\"background:#e3f2fd;border-left:4px solid #1565c0;padding:15px 20px;margin:20px 0;border-radius:4px\">\n<p><strong>T\u1ed5ng quan nhanh<\/strong><\/p>\n<p>\u2013 C\u00e2u h\u1ecfi \u0111\u01b0\u1ee3c chia theo n\u0103m nh\u00f3m ki\u1ebfn th\u1ee9c c\u1ed1t l\u00f5i c\u1ee7a ng\u00f4n ng\u1eef.<\/p>\n<p>\u2013 \u00c9p ki\u1ec3u v\u00e0 t\u1eeb kh\u00f3a this l\u00e0 hai ch\u1ed7 ng\u01b0\u1eddi quen d\u00f9ng framework hay h\u1ee5t.<\/p>\n<p>\u2013 C\u00e2u \u0111o\u00e1n output \u0111\u01b0\u1ee3c ch\u1ea5m \u1edf c\u00e1ch suy lu\u1eadn nhi\u1ec1u h\u01a1n \u1edf \u0111\u00e1p \u00e1n cu\u1ed1i.<\/p>\n<p>\u2013 B\u1ea3ng \u1edf ph\u1ea7n 6 g\u1ed3m b\u1ed1n \u0111o\u1ea1n code \u0111\u00e3 ch\u1ea1y th\u1eed, k\u00e8m kh\u00e1i ni\u1ec7m b\u1ecb ki\u1ec3m tra.<\/p>\n<p>B\u1ed1n \u00fd tr\u00ean \u0111\u01b0\u1ee3c tri\u1ec3n khai theo th\u1ee9 t\u1ef1, b\u1eaft \u0111\u1ea7u t\u1eeb m\u1ee5c \u0111\u00edch c\u1ee7a v\u00f2ng h\u1ecfi n\u00e0y.<\/p>\n<\/div>\n<h2>1. V\u00ec sao v\u00f2ng h\u1ecfi JavaScript thu\u1ea7n v\u1eabn quan tr\u1ecdng<\/h2>\n<p>Framework \u0111\u1ed5i theo v\u00e0i n\u0103m, c\u00f2n c\u01a1 ch\u1ebf ng\u00f4n ng\u1eef \u00edt \u0111\u1ed5i h\u01a1n. B\u1ed9 c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n JavaScript thu\u1ea7n gi\u00fap ng\u01b0\u1eddi tuy\u1ec3n bi\u1ebft b\u1ea1n hi\u1ec3u \u0111i\u1ec1u g\u00ec di\u1ec5n ra b\u00ean d\u01b0\u1edbi th\u01b0 vi\u1ec7n. N\u1ebfu c\u1ea7n \u00f4n n\u1ec1n t\u1ea3ng tr\u01b0\u1edbc, b\u00e0i <a href=\"https:\/\/www.careerlink.vn\/cam-nang-viec-lam\/tu-van-nghe-nghiep\/ngon-ngu-lap-trinh-javascript-la-gi\" style=\"color:#1565c0;font-weight:600;text-decoration:underline\">Ng\u00f4n Ng\u1eef L\u1eadp Tr\u00ecnh JavaScript L\u00e0 G\u00ec? \u0110\u1eb7c \u0110i\u1ec3m, \u1ee8ng D\u1ee5ng &#038; L\u1ed9 Tr\u00ecnh H\u1ecdc<\/a> t\u00f3m t\u1eaft \u0111\u1eb7c \u0111i\u1ec3m c\u1ee7a ng\u00f4n ng\u1eef, c\u00f2n b\u00e0i n\u00e0y ch\u1ec9 xo\u00e1y v\u00e0o ph\u1ea7n l\u00f5i.<\/p>\n<h2>2. C\u00e2u h\u1ecfi v\u1ec1 ki\u1ec3u d\u1eef li\u1ec7u v\u00e0 \u00e9p ki\u1ec3u<\/h2>\n<p>\u0110\u00e2y l\u00e0 nh\u00f3m m\u1edf m\u00e0n d\u1ec5 l\u1ed9 vi\u1ec7c h\u1ecdc v\u1eb9t. B\u1ed1n c\u00e2u d\u01b0\u1edbi \u0111\u00e2y \u0111i t\u1eeb ki\u1ec3u d\u1eef li\u1ec7u \u0111\u1ebfn c\u00e1ch so s\u00e1nh. Khi \u0111\u1ecdc m\u00f4 t\u1ea3 c\u00f4ng vi\u1ec7c trong m\u1ee5c <a href=\"https:\/\/www.careerlink.vn\/viec-lam\/cntt-phan-mem\/19\" style=\"color:#1565c0;font-weight:600;text-decoration:underline\">vi\u1ec7c l\u00e0m CNTT &#8211; ph\u1ea7n m\u1ec1m<\/a>, b\u1ea1n s\u1ebd th\u1ea5y y\u00eau c\u1ea7u &#8220;n\u1eafm v\u1eefng JavaScript core&#8221; th\u01b0\u1eddng xu\u1ea5t hi\u1ec7n.<\/p>\n<h3>C\u00e1c ki\u1ec3u d\u1eef li\u1ec7u trong JavaScript<\/h3>\n<p>C\u00e2u h\u1ecfi: &#8220;JavaScript c\u00f3 nh\u1eefng ki\u1ec3u d\u1eef li\u1ec7u n\u00e0o?&#8221;. Ng\u01b0\u1eddi h\u1ecfi mu\u1ed1n ki\u1ec3m tra b\u1ea1n ph\u00e2n bi\u1ec7t \u0111\u01b0\u1ee3c ki\u1ec3u nguy\u00ean th\u1ee7y v\u1edbi object. \u00dd tr\u1ea3 l\u1eddi: b\u1ea3y ki\u1ec3u nguy\u00ean th\u1ee7y g\u1ed3m <code>string<\/code>, <code>number<\/code>, <code>bigint<\/code>, <code>boolean<\/code>, <code>undefined<\/code>, <code>symbol<\/code>, <code>null<\/code>, c\u00f9ng ki\u1ec3u <code>object<\/code> bao g\u1ed3m c\u1ea3 m\u1ea3ng v\u00e0 h\u00e0m. Gi\u00e1 tr\u1ecb nguy\u00ean th\u1ee7y so s\u00e1nh theo gi\u00e1 tr\u1ecb, object so s\u00e1nh theo tham chi\u1ebfu.<\/p>\n<h3>Ph\u00e2n bi\u1ec7t null v\u00e0 undefined<\/h3>\n<p>C\u00e2u h\u1ecfi: &#8220;null v\u00e0 undefined kh\u00e1c nhau th\u1ebf n\u00e0o?&#8221;. Ng\u01b0\u1eddi h\u1ecfi mu\u1ed1n th\u1ea5y b\u1ea1n hi\u1ec3u ngu\u1ed3n g\u1ed1c t\u1eebng gi\u00e1 tr\u1ecb: <code>undefined<\/code> xu\u1ea5t hi\u1ec7n khi bi\u1ebfn \u0111\u00e3 khai b\u00e1o nh\u01b0ng ch\u01b0a g\u00e1n ho\u1eb7c thu\u1ed9c t\u00ednh kh\u00f4ng t\u1ed3n t\u1ea1i, c\u00f2n <code>null<\/code> do l\u1eadp tr\u00ecnh vi\u00ean ch\u1ee7 \u0111\u1ed9ng g\u00e1n \u0111\u1ec3 b\u00e1o &#8220;kh\u00f4ng c\u00f3 gi\u00e1 tr\u1ecb&#8221;. \u0110i\u1ec3m c\u1ed9ng l\u00e0 n\u00eau <code>null == undefined<\/code> cho <code>true<\/code> nh\u01b0ng <code>===<\/code> cho <code>false<\/code>.<\/p>\n<h3>So s\u00e1nh == v\u00e0 ===<\/h3>\n<p>C\u00e2u h\u1ecfi: &#8220;Kh\u00e1c nhau gi\u1eefa <code>==<\/code> v\u00e0 <code>===<\/code> l\u00e0 g\u00ec?&#8221;. Ng\u01b0\u1eddi h\u1ecfi mu\u1ed1n bi\u1ebft b\u1ea1n hi\u1ec3u <code>==<\/code> \u00e9p ki\u1ec3u tr\u01b0\u1edbc khi so s\u00e1nh, c\u00f2n <code>===<\/code> so c\u1ea3 ki\u1ec3u l\u1eabn gi\u00e1 tr\u1ecb.<\/p>\n<h3>Truthy, falsy v\u00e0 typeof<\/h3>\n<p>B\u1ea1n n\u00ean k\u1ec3 \u0111\u1ee7 c\u00e1c gi\u00e1 tr\u1ecb falsy: <code>false<\/code>, <code>0<\/code>, <code>-0<\/code>, <code>0n<\/code>, chu\u1ed7i r\u1ed7ng, <code>null<\/code>, <code>undefined<\/code> v\u00e0 <code>NaN<\/code>. C\u00e2u b\u1eaby hay g\u1eb7p l\u00e0 <code>typeof null<\/code> tr\u1ea3 v\u1ec1 <code>\"object\"<\/code>, m\u1ed9t l\u1ed7i l\u1ecbch s\u1eed \u0111\u01b0\u1ee3c gi\u1eef l\u1ea1i v\u00ec t\u01b0\u01a1ng th\u00edch ng\u01b0\u1ee3c.<\/p>\n<h2>3. C\u00e2u h\u1ecfi v\u1ec1 ph\u1ea1m vi bi\u1ebfn, hoisting v\u00e0 TDZ<\/h2>\n<p>Nh\u00f3m n\u00e0y ki\u1ec3m tra b\u1ea1n hi\u1ec3u v\u00f2ng \u0111\u1eddi c\u1ee7a bi\u1ebfn ch\u1ee9 kh\u00f4ng ch\u1ec9 c\u00e1ch khai b\u00e1o. C\u00e2u m\u1edf \u0111\u1ea7u hay l\u00e0 &#8220;So s\u00e1nh <code>var<\/code>, <code>let<\/code> v\u00e0 <code>const<\/code>&#8220;, v\u00e0 c\u00e2u tr\u1ea3 l\u1eddi t\u1ed1t n\u00eau \u0111\u1ee7 ba tr\u1ee5c: ph\u1ea1m vi h\u00e0m hay kh\u1ed1i, c\u00f3 g\u00e1n l\u1ea1i \u0111\u01b0\u1ee3c kh\u00f4ng, v\u00e0 h\u00e0nh vi khi truy c\u1eadp tr\u01b0\u1edbc d\u00f2ng khai b\u00e1o.<\/p>\n<p>V\u1ec1 hoisting, khai b\u00e1o <code>var<\/code> \u0111\u01b0\u1ee3c k\u00e9o l\u00ean \u0111\u1ea7u ph\u1ea1m vi v\u00e0 kh\u1edfi t\u1ea1o b\u1eb1ng <code>undefined<\/code>, n\u00ean <code>console.log(y); var y = 1;<\/code> in ra <code>undefined<\/code>. V\u1edbi <code>let<\/code> v\u00e0 <code>const<\/code>, bi\u1ebfn n\u1eb1m trong v\u00f9ng ch\u1ebft t\u1ea1m th\u1eddi (Temporal Dead Zone) t\u1edbi d\u00f2ng khai b\u00e1o, truy c\u1eadp s\u1edbm s\u1ebd n\u00e9m <code>ReferenceError<\/code>.<\/p>\n<h2>4. C\u00e2u h\u1ecfi v\u1ec1 this, call\/apply\/bind v\u00e0 prototype<\/h2>\n<p>\u0110\u00e2y l\u00e0 nh\u00f3m m\u00e0 \u1ee9ng vi\u00ean d\u00f9ng framework l\u00e2u ng\u00e0y hay h\u1ee5t. Quy t\u1eafc c\u1ea7n nh\u1edb: <code>this<\/code> \u0111\u01b0\u1ee3c x\u00e1c \u0111\u1ecbnh l\u00fac g\u1ecdi h\u00e0m, tr\u1eeb arrow function l\u1ea5y <code>this<\/code> t\u1eeb ph\u1ea1m vi bao quanh.<\/p>\n<p>C\u00e2u \u0111i\u1ec3n h\u00ecnh: &#8220;G\u00e1n <code>const f = obj.say<\/code> r\u1ed3i g\u1ecdi <code>f()<\/code>, \u0111i\u1ec1u g\u00ec x\u1ea3y ra?&#8221;. Ng\u01b0\u1eddi h\u1ecfi mu\u1ed1n th\u1ea5y b\u1ea1n nh\u1eadn ra ph\u01b0\u01a1ng th\u1ee9c \u0111\u00e3 m\u1ea5t ng\u1eef c\u1ea3nh; \u1edf strict mode, <code>this<\/code> l\u00e0 <code>undefined<\/code> n\u00ean truy c\u1eadp thu\u1ed9c t\u00ednh s\u1ebd l\u1ed7i. T\u1eeb \u0111\u00f3 d\u1eabn sang <code>call<\/code> v\u00e0 <code>apply<\/code> g\u1ecdi h\u00e0m ngay v\u1edbi <code>this<\/code> ch\u1ec9 \u0111\u1ecbnh, c\u00f2n <code>bind<\/code> tr\u1ea3 v\u1ec1 h\u00e0m m\u1edbi \u0111\u00e3 g\u1eafn ng\u1eef c\u1ea3nh.<\/p>\n<p>C\u00e2u prototype hay g\u1eb7p l\u00e0 &#8220;T\u1eeb kh\u00f3a <code>class<\/code> trong ES6 (ECMAScript 2015) kh\u00e1c g\u00ec h\u00e0m kh\u1edfi t\u1ea1o?&#8221;. \u00dd tr\u1ea3 l\u1eddi: <code>class<\/code> ch\u1ee7 y\u1ebfu l\u00e0 c\u00fa ph\u00e1p g\u1ecdn tr\u00ean n\u1ec1n prototype, v\u00e0 <code>extends<\/code> n\u1ed1i chu\u1ed7i prototype gi\u1eefa hai l\u1edbp.<\/p>\n<div style=\"background:#e8f5e9;border-left:4px solid #4caf50;padding:15px 20px;margin:20px 0;border-radius:4px\">\n<p><strong>L\u1eddi khuy\u00ean cho ng\u01b0\u1eddi quen d\u00f9ng framework<\/strong><\/p>\n<p>\u2013 B\u1ea1n h\u00e3y vi\u1ebft l\u1ea1i m\u1ed9t component nh\u1ecf b\u1eb1ng JavaScript thu\u1ea7n, kh\u00f4ng d\u00f9ng th\u01b0 vi\u1ec7n.<\/p>\n<p>\u2013 B\u1ea1n n\u00ean t\u1ef1 g\u00f5 l\u1ea1i h\u00e0m bind v\u00e0 h\u00e0m debounce \u0111\u01a1n gi\u1ea3n m\u00e0 kh\u00f4ng tra t\u00e0i li\u1ec7u.<\/p>\n<p>\u2013 B\u1ea1n h\u00e3y ch\u1ea1y th\u1eed t\u1eebng v\u00ed d\u1ee5 \u00e9p ki\u1ec3u trong console thay v\u00ec ch\u1ec9 \u0111\u1ecdc b\u1ea3ng quy t\u1eafc.<\/p>\n<p>Ba b\u00e0i t\u1eadp n\u00e0y m\u1ea5t \u00edt th\u1eddi gian nh\u01b0ng l\u1ea5p \u0111\u00fang nh\u1eefng l\u1ed7 h\u1ed5ng hay b\u1ecb h\u1ecfi.<\/p>\n<\/div>\n<p>N\u1eafm ch\u1eafc ng\u1eef c\u1ea3nh v\u00e0 prototype, ph\u1ea7n b\u1ea5t \u0111\u1ed3ng b\u1ed9 s\u1ebd d\u1ec5 h\u01a1n.<\/p>\n<h2>5. C\u00e2u h\u1ecfi v\u1ec1 b\u1ea5t \u0111\u1ed3ng b\u1ed9 v\u00e0 Node.js<\/h2>\n<p>Nh\u00f3m n\u00e0y \u0111i theo d\u00f2ng ti\u1ebfn h\u00f3a callback, Promise r\u1ed3i <code>async\/await<\/code>. Ng\u01b0\u1eddi h\u1ecfi mu\u1ed1n bi\u1ebft b\u1ea1n hi\u1ec3u v\u00ec sao c\u1ea7n m\u1ed7i b\u01b0\u1edbc: callback l\u1ed3ng nhau kh\u00f3 b\u1eaft l\u1ed7i, Promise cho ph\u00e9p n\u1ed1i chu\u1ed7i, c\u00f2n <code>async\/await<\/code> gi\u00fap code \u0111\u1ecdc gi\u1ed1ng tu\u1ea7n t\u1ef1. C\u00e2u \u0111\u00e0o s\u00e2u th\u01b0\u1eddng g\u1eb7p:<\/p>\n<p>\u2013 B\u1ea1n b\u1eaft l\u1ed7i c\u1ee7a h\u00e0m async b\u1eb1ng try\/catch th\u1ebf n\u00e0o, v\u00e0 khi n\u00e0o l\u1ed7i v\u1eabn l\u1ecdt ra ngo\u00e0i?<\/p>\n<p>\u2013 Promise.all v\u00e0 Promise.allSettled kh\u00e1c nhau ra sao khi m\u1ed9t y\u00eau c\u1ea7u b\u1ecb t\u1eeb ch\u1ed1i?<\/p>\n<p>\u2013 V\u00f2ng l\u1eb7p s\u1ef1 ki\u1ec7n (event loop) ph\u00e2n bi\u1ec7t h\u00e0ng \u0111\u1ee3i microtask v\u00e0 macrotask th\u1ebf n\u00e0o?<\/p>\n<p>Ba c\u00e2u tr\u00ean ki\u1ec3m tra kh\u1ea3 n\u0103ng d\u1ef1 \u0111o\u00e1n th\u1ee9 t\u1ef1 ch\u1ea1y. V\u1edbi Node.js, c\u00e2u hay h\u1ecfi l\u00e0 JavaScript ph\u00eda server kh\u00e1c tr\u00ecnh duy\u1ec7t \u1edf \u0111\u00e2u: kh\u00f4ng c\u00f3 DOM v\u00e0 <code>window<\/code>, c\u00f3 module nh\u01b0 <code>fs<\/code> v\u00e0 <code>http<\/code>.<\/p>\n<p style=\"text-align:center\"><img decoding=\"async\" src=\"https:\/\/cl-wpml.careerlink.vn\/cam-nang-viec-lam\/wp-content\/uploads\/2026\/10\/20153703\/a-cau-hoi-phong-van-javascript-2.png\" alt=\"c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n JavaScript\" style=\"max-width:100%;height:auto;\" \/><\/p>\n<h2>6. C\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n JavaScript d\u1ea1ng \u0111o\u00e1n output<\/h2>\n<p>Nh\u00e0 tuy\u1ec3n d\u1ee5ng hay \u0111\u01b0a \u0111o\u1ea1n code 5\u201310 d\u00f2ng r\u1ed3i h\u1ecfi k\u1ebft qu\u1ea3 in ra. \u0110i\u1ec1u \u0111\u01b0\u1ee3c ch\u1ea5m l\u00e0 qu\u00e1 tr\u00ecnh \u0111i \u0111\u1ebfn \u0111\u00e1p \u00e1n, v\u00ec \u0111o\u00e1n \u0111\u00fang m\u00e0 kh\u00f4ng gi\u1ea3i th\u00edch \u0111\u01b0\u1ee3c c\u0169ng ch\u1ec9 ngang \u0111o\u00e1n may. C\u00e1ch l\u00e0m hi\u1ec7u qu\u1ea3 l\u00e0 &#8220;\u0111\u1ecdc to&#8221; t\u1eebng d\u00f2ng: bi\u1ebfn \u0111ang mang gi\u00e1 tr\u1ecb g\u00ec, quy t\u1eafc n\u00e0o \u00e1p d\u1ee5ng, r\u1ed3i m\u1edbi ch\u1ed1t k\u1ebft qu\u1ea3.<\/p>\n<table class=\"table table-bordered table-striped\">\n<tr style=\"background:#1565c0;color:#fff\">\n<th>\u0110o\u1ea1n code<\/th>\n<th>Output<\/th>\n<th>Kh\u00e1i ni\u1ec7m b\u1ecb ki\u1ec3m tra<\/th>\n<\/tr>\n<tr>\n<td><code>console.log([] == false)<\/code><\/td>\n<td><code>true<\/code><\/td>\n<td>\u00c9p ki\u1ec3u v\u1edbi ==: m\u1ea3ng r\u1ed7ng th\u00e0nh chu\u1ed7i r\u1ed7ng r\u1ed3i th\u00e0nh 0, false c\u0169ng th\u00e0nh 0.<\/td>\n<\/tr>\n<tr style=\"background:#f0f7ff\">\n<td><code>console.log(1 + \"2\" - 1)<\/code><\/td>\n<td><code>11<\/code><\/td>\n<td>D\u1ea5u + n\u1ed1i chu\u1ed7i th\u00e0nh &#8220;12&#8221;, d\u1ea5u &#8211; \u00e9p v\u1ec1 s\u1ed1.<\/td>\n<\/tr>\n<tr>\n<td><code>for (var i = 0; i &lt; 3; i++) setTimeout(() =&gt; console.log(i), 0)<\/code><\/td>\n<td><code>3 3 3<\/code><\/td>\n<td>Ph\u1ea1m vi h\u00e0m c\u1ee7a var v\u00e0 closure; \u0111\u1ed5i sang let s\u1ebd in 0 1 2.<\/td>\n<\/tr>\n<tr style=\"background:#f0f7ff\">\n<td><code>setTimeout(() =&gt; console.log(\"A\"), 0); Promise.resolve().then(() =&gt; console.log(\"B\")); console.log(\"C\")<\/code><\/td>\n<td><code>C B A<\/code><\/td>\n<td>Code \u0111\u1ed3ng b\u1ed9 ch\u1ea1y tr\u01b0\u1edbc, microtask c\u1ee7a Promise ch\u1ea1y tr\u01b0\u1edbc setTimeout.<\/td>\n<\/tr>\n<\/table>\n<blockquote>\n<p><em>M\u1ed9t c\u00e2u tr\u1ea3 l\u1eddi sai nh\u01b0ng c\u00f3 l\u1eadp lu\u1eadn r\u00f5 r\u00e0ng th\u01b0\u1eddng \u0111\u01b0\u1ee3c \u0111\u00e1nh gi\u00e1 cao h\u01a1n m\u1ed9t \u0111\u00e1p \u00e1n \u0111\u00fang kh\u00f4ng k\u00e8m l\u1eddi gi\u1ea3i th\u00edch.<\/em><\/p>\n<\/blockquote>\n<div style=\"background:#fff3e0;border-left:4px solid #ff9800;padding:15px 20px;margin:20px 0;border-radius:4px\">\n<p><strong>L\u01b0u \u00fd khi l\u00e0m c\u00e2u \u0111o\u00e1n output<\/strong><\/p>\n<p>\u2013 B\u1ea1n \u0111\u1eebng tr\u1ea3 l\u1eddi khi ch\u01b0a \u0111\u1ecdc h\u1ebft \u0111o\u1ea1n code, v\u00ec d\u00f2ng cu\u1ed1i th\u01b0\u1eddng ch\u1ee9a b\u1eaby.<\/p>\n<p>\u2013 B\u1ea1n n\u00ean h\u1ecfi l\u1ea1i \u0111o\u1ea1n code ch\u1ea1y \u1edf strict mode hay kh\u00f4ng khi c\u00e2u h\u1ecfi c\u00f3 this.<\/p>\n<p>\u2013 B\u1ea1n h\u00e3y vi\u1ebft th\u1ee9 t\u1ef1 ch\u1ea1y ra gi\u1ea5y khi \u0111o\u1ea1n code tr\u1ed9n setTimeout v\u1edbi Promise.<\/p>\n<p>Ba th\u00f3i quen n\u00e0y gi\u00fap ng\u01b0\u1eddi ph\u1ecfng v\u1ea5n theo k\u1ecbp m\u1ea1ch suy ngh\u0129 c\u1ee7a b\u1ea1n.<\/p>\n<\/div>\n<p>N\u1ebfu c\u00f2n th\u1eddi gian, h\u00e3y \u0111\u1ec1 xu\u1ea5t c\u00e1ch vi\u1ebft l\u1ea1i \u0111o\u1ea1n code cho d\u1ec5 \u0111\u1ecdc.<\/p>\n<h2>7. C\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p<\/h2>\n<p><strong><em>1. Ph\u1ecfng v\u1ea5n JavaScript c\u00f3 c\u1ea7n bi\u1ebft TypeScript kh\u00f4ng?<\/em><\/strong> T\u00f9y v\u1ecb tr\u00ed; TypeScript th\u01b0\u1eddng l\u00e0 \u0111i\u1ec3m c\u1ed9ng, c\u00f2n ph\u1ea7n l\u00f5i JavaScript v\u1eabn \u0111\u01b0\u1ee3c h\u1ecfi tr\u01b0\u1edbc.<\/p>\n<p><strong><em>2. Th\u1eddi gian g\u1ea5p th\u00ec n\u00ean \u00f4n nh\u00f3m n\u00e0o tr\u01b0\u1edbc?<\/em><\/strong> \u01afu ti\u00ean \u00e9p ki\u1ec3u, this v\u00e0 th\u1ee9 t\u1ef1 ch\u1ea1y c\u1ee7a Promise.<\/p>\n<p><strong><em>3. C\u00f3 \u0111\u01b0\u1ee3c th\u1eed code trong console khi ph\u1ecfng v\u1ea5n kh\u00f4ng?<\/em><\/strong> T\u00f9y quy \u0111\u1ecbnh t\u1eebng bu\u1ed5i; h\u00e3y h\u1ecfi tr\u01b0\u1edbc, n\u1ebfu kh\u00f4ng \u0111\u01b0\u1ee3c th\u00ec suy lu\u1eadn th\u00e0nh ti\u1ebfng.<\/p>\n<p>V\u00f2ng h\u1ecfi ng\u00f4n ng\u1eef cho th\u1ea5y b\u1ea1n hi\u1ec3u JavaScript \u0111\u1ebfn \u0111\u00e2u khi b\u1ecf framework sang m\u1ed9t b\u00ean. Khi luy\u1ec7n <strong>c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n JavaScript<\/strong>, h\u00e3y \u0111i l\u1ea7n l\u01b0\u1ee3t qua \u00e9p ki\u1ec3u, ph\u1ea1m vi bi\u1ebfn, this, prototype v\u00e0 b\u1ea5t \u0111\u1ed3ng b\u1ed9, r\u1ed3i t\u1ef1 gi\u1ea3i c\u00e1c \u0111o\u1ea1n code ng\u1eafn b\u1eb1ng c\u00e1ch n\u00f3i th\u00e0nh ti\u1ebfng t\u1eebng b\u01b0\u1edbc. H\u00e3y m\u1edf console ngay h\u00f4m nay, ch\u1ea1y l\u1ea1i b\u1ed1n \u0111o\u1ea1n code trong b\u1ea3ng v\u00e0 t\u1ef1 gi\u1ea3i th\u00edch k\u1ebft qu\u1ea3 tr\u01b0\u1edbc khi \u0111\u1ed1i chi\u1ebfu.<\/p>\n<p><em>B\u00e0i vi\u1ebft mang t\u00ednh tham kh\u1ea3o; n\u1ed9i dung v\u00e0 h\u00ecnh th\u1ee9c ph\u1ecfng v\u1ea5n th\u1ef1c t\u1ebf t\u00f9y t\u1eebng doanh nghi\u1ec7p, v\u1ecb tr\u00ed v\u00e0 c\u1ea5p \u0111\u1ed9 kinh nghi\u1ec7m.<\/em><\/p>\n<p><em>Minh An<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nhi\u1ec1u L\u1eadp tr\u00ecnh vi\u00ean JavaScript (JavaScript Developer) d\u00f9ng React hay Vue h\u1eb1ng ng\u00e0y nh\u01b0ng v\u1eabn l\u00fang t\u00fang khi b\u1ecb h\u1ecfi v\u1ec1 ch\u00ednh ng\u00f4n ng\u1eef. B\u00e0i &#8230;<\/p>\n","protected":false},"author":58,"featured_media":31459,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[45],"tags":[],"class_list":["post-31481","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-phong-van-viec-lam"],"_links":{"self":[{"href":"https:\/\/www.careerlink.vn\/cam-nang-viec-lam\/wp-json\/wp\/v2\/posts\/31481","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.careerlink.vn\/cam-nang-viec-lam\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.careerlink.vn\/cam-nang-viec-lam\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.careerlink.vn\/cam-nang-viec-lam\/wp-json\/wp\/v2\/users\/58"}],"replies":[{"embeddable":true,"href":"https:\/\/www.careerlink.vn\/cam-nang-viec-lam\/wp-json\/wp\/v2\/comments?post=31481"}],"version-history":[{"count":1,"href":"https:\/\/www.careerlink.vn\/cam-nang-viec-lam\/wp-json\/wp\/v2\/posts\/31481\/revisions"}],"predecessor-version":[{"id":31482,"href":"https:\/\/www.careerlink.vn\/cam-nang-viec-lam\/wp-json\/wp\/v2\/posts\/31481\/revisions\/31482"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.careerlink.vn\/cam-nang-viec-lam\/wp-json\/wp\/v2\/media\/31459"}],"wp:attachment":[{"href":"https:\/\/www.careerlink.vn\/cam-nang-viec-lam\/wp-json\/wp\/v2\/media?parent=31481"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.careerlink.vn\/cam-nang-viec-lam\/wp-json\/wp\/v2\/categories?post=31481"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.careerlink.vn\/cam-nang-viec-lam\/wp-json\/wp\/v2\/tags?post=31481"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}