⊗jsPmCdScpN 135 of 505 menu

Sắc thái về phạm vi biến trong cấu trúc if-else trong JavaScript

Phạm vi biến có một sắc thái nhất định. Hãy cùng xem xét nó qua một ví dụ. Hãy khai báo bên ngoài điều kiện của chúng ta một biến res với một giá trị, và bên trong điều kiện thay đổi giá trị đó thành giá trị khác:

let res = 1; if (true) { res = 2; } console.log(res); // sẽ hiển thị 2

Như bạn thấy, biến res đã thay đổi bên trong điều kiện. Tuy nhiên, mọi thứ sẽ thay đổi, nếu bên trong điều kiện cũng khai báo biến res thông qua let:

let res = 1; if (true) { let res = 2; // khai báo biến thông qua let } console.log(res); // sẽ hiển thị 1, chứ không phải 2!

Ở đây vấn đề là ở chỗ, việc khai báo biến thông qua let bên trong điều kiện đã tạo ra một biến cục bộ res.

Tức là bên trong điều kiện tồn tại một biến res, còn bên ngoài điều kiện - một biến khác. Có thể kiểm chứng điều này bằng cách in giá trị của biến ra console bên trong điều kiện:

let res = 1; if (true) { let res = 2; console.log(res); // sẽ hiển thị 2 } console.log(res); // sẽ hiển thị 1

Tác giả của đoạn mã dưới đây muốn thực hiện kiểm tra tuổi đạt 18 tuổi. Tuy nhiên, mã này với bất kỳ giá trị tuổi nào cũng hiển thị trong console giá trị undefined. Hãy sửa lỗi của tác giả mã. Đây là mã có vấn đề:

let age = 17; let adult; if (age >= 18) { let adult = true; } else { let adult = false; } console.log(adult);

Tác giả của đoạn mã dưới đây muốn thực hiện kiểm tra tuổi đạt 18 tuổi. Sau khi kiểm tra mã, hóa ra là nếu tuổi bằng hoặc lớn hơn 18 tuổi, thì vào biến adult sẽ được ghi là true, đúng như mong đợi, tuy nhiên, nếu tuổi nhỏ hơn 18, thì biến adult có giá trị undefined. Hãy sửa lỗi của tác giả mã.

Đây là mã có vấn đề:

let age = 17; let adult; if (age >= 18) { adult = true; } else { let adult = false; } console.log(adult);

Tác giả của đoạn mã dưới đây muốn thực hiện kiểm tra tuổi. Tuy nhiên, mã này với bất kỳ giá trị tuổi nào cũng hiển thị trong console giá trị undefined. Hãy sửa lỗi của tác giả mã.

Đây là mã có vấn đề:

let age = 17; let res; if (age >= 18) { if (age <= 23) { let res = 'từ 18 đến 23'; } else { let res = 'lớn hơn 23'; } } else { let res = 'nhỏ hơn 18'; } console.log(res);

Tác giả của đoạn mã dưới đây muốn thực hiện kiểm tra tuổi. Tuy nhiên, mã này với giá trị tuổi lớn hơn 18 tuổi lại hiển thị trong console giá trị undefined. Hãy sửa lỗi của tác giả mã.

Đây là mã có vấn đề:

let age = 19; let res; if (age >= 18) { let res; if (age <= 23) { res = 'từ 18 đến 23'; } else { res = 'lớn hơn 23'; } } else { res = 'nhỏ hơn 18'; } console.log(res);
Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối