⊗jsPmCdScpN 135 of 505 menu

ความแตกต่างของขอบเขตตัวแปรในโครงสร้าง if-else ใน JavaScript

ขอบเขตของตัวแปรมีข้อแตกต่างบางประการ ลองพิจารณามันจากตัวอย่าง ลองประกาศตัวแปร res ด้วยค่าหนึ่งนอกเงื่อนไขของเรา และภายในเงื่อนไขเปลี่ยนค่านั้นเป็นค่าอื่น:

let res = 1; if (true) { res = 2; } console.log(res); // จะแสดง 2

อย่างที่คุณเห็น ตัวแปร res เปลี่ยนค่า ภายในเงื่อนไข อย่างไรก็ตาม ทุกอย่างจะเปลี่ยนไป หากภายในเงื่อนไขมีการประกาศตัวแปร res ผ่าน let ด้วย:

let res = 1; if (true) { let res = 2; // ประกาศตัวแปรผ่าน let } console.log(res); // จะแสดง 1 ไม่ใช่ 2!

ประเด็นทั้งหมดที่นี่คือการประกาศตัวแปร ผ่าน let ภายในเงื่อนไขได้สร้างตัวแปรเฉพาะที่ res ขึ้นมา

นั่นคือภายในเงื่อนไขมีตัวแปรหนึ่งชื่อ res และนอกเงื่อนไขมีอีกตัวหนึ่ง สามารถตรวจสอบสิ่งนี้ได้โดยการแสดงค่าของตัวแปร ในคอนโซลภายในเงื่อนไข:

let res = 1; if (true) { let res = 2; console.log(res); // จะแสดง 2 } console.log(res); // จะแสดง 1

ผู้เขียนโค้ดด้านล่างต้องการทำ การตรวจสอบอายุว่าถึง 18 ปีหรือยัง อย่างไรก็ตาม โค้ดไม่ว่าอายุจะเป็นค่าใด ก็แสดงค่า undefined ในคอนโซล กรุณาแก้ไขข้อผิดพลาดของผู้เขียนโค้ด นี่คือโค้ดที่มีปัญหา:

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

ผู้เขียนโค้ดด้านล่างต้องการทำ การตรวจสอบอายุว่าถึง 18 ปีหรือยัง หลังการตรวจสอบโค้ดพบว่าหาก อายุเท่ากับหรือมากกว่า 18 ปี ในตัวแปร adult จะถูกบันทึกเป็น true ซึ่งควรจะเป็นเช่นนั้น อย่างไรก็ตาม หากอายุน้อยกว่า 18 ตัวแปร adult จะมี ค่าเป็น undefined กรุณาแก้ไขข้อผิดพลาด ของผู้เขียนโค้ด

นี่คือโค้ดที่มีปัญหา:

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

ผู้เขียนโค้ดด้านล่างต้องการทำ การตรวจสอบอายุ โค้ด อย่างไรก็ตาม ไม่ว่าอายุจะเป็นค่าใด ก็แสดงค่า undefined ในคอนโซล กรุณาแก้ไขข้อผิดพลาดของผู้เขียนโค้ด

นี่คือโค้ดที่มีปัญหา:

let age = 17; let res; if (age >= 18) { if (age <= 23) { let res = '18 ถึง 23'; } else { let res = 'มากกว่า 23'; } } else { let res = 'น้อยกว่า 18'; } console.log(res);

ผู้เขียนโค้ดด้านล่างต้องการทำ การตรวจสอบอายุ โค้ด อย่างไรก็ตาม เมื่ออายุ มากกว่า 18 ปี จะแสดง ค่า undefined ในคอนโซล กรุณาแก้ไขข้อผิดพลาดของผู้เขียนโค้ด

นี่คือโค้ดที่มีปัญหา:

let age = 19; let res; if (age >= 18) { let res; if (age <= 23) { res = '18 ถึง 23'; } else { res = 'มากกว่า 23'; } } else { res = 'น้อยกว่า 18'; } console.log(res);
ไทย
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ʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ