23 of 264 menu

ฟังก์ชัน isFinite

ฟังก์ชัน isFinite สำหรับตรวจสอบพารามิเตอร์ ว่าเป็นตัวเลขที่มีขอบเขตจำกัดหรือไม่ (นั่นคือ ไม่ใช่สตริง, อาร์เรย์ ฯลฯ และไม่ใช่ค่าอนันต์ บวกหรือลบ)

วิธีการทำงานของฟังก์ชันนี้คือ มันจะคืนค่า false, ถ้าตัวเลขนั้นเป็นค่าอนันต์บวกหรือลบ (นั่นคือ Infinity) หรือไม่ใช่ตัวเลข (นั่นคือ NaN), ในกรณีอื่นๆ จะคืนค่า true นั่นคือ สตริง, อาร์เรย์ ฯลฯ จะถูกแปลง เป็น NaN และจะคืนค่า false ตามลำดับ

อย่างไรก็ตาม มี ข้อยกเว้น: สตริงว่าง '' คืนค่า true, สตริงที่ประกอบด้วยช่องว่าง '    ' ก็คืนค่า true เช่นกัน, null คืนค่า true, สำหรับค่าตัวแปร true และ false ก็จะคืนค่า true เช่นกัน

สิ่งนี้เกิดขึ้นเพราะว่าค่าเหล่านั้น ถูกแปลงเป็นตัวเลข, ไม่ใช่เป็น NaN หากคุณต้องการตรวจสอบตัวเลขที่แม่นยำจริงๆ ซึ่งไม่นับสตริงที่ประกอบด้วยช่องว่าง, ค่าบูลีน และค่าพิเศษ เป็นตัวเลข - ให้ใช้ฟังก์ชัน isNumeric ต่อไปนี้:

function isNumeric(num) { return !isNaN(parseFloat(num)) && isFinite(num); };

มาดูกันว่ามันทำงานอย่างไร ฟังก์ชัน isFinite แปลงพารามิเตอร์ เป็นตัวเลขและคืนค่า true ถ้ามันไม่ใช่ Infinity, -Infinity หรือ NaN ดังนั้น ด้านขวาจะกรองค่า ที่ไม่ใช่ตัวเลข อย่างชัดเจน แต่จะปล่อยให้ค่าดังกล่าว เช่น true, false, null, สตริงว่าง '' และ สตริงที่ประกอบด้วยช่องว่าง ผ่านไป, เพราะพวกมันสามารถแปลงเป็นตัวเลขได้อย่างถูกต้อง

เพื่อกรองค่าเหล่านั้นออก จำเป็นต้องมีฟังก์ชัน parseFloat, ซึ่งสำหรับ true, false, null, '', '   ' จะคืนค่า NaN นี่คือวิธีการทำงานของฟังก์ชัน parseFloat: มัน แปลงพารามิเตอร์เป็นสตริง, เช่น true, false, null กลายเป็น 'true', 'false', 'null', จากนั้นอ่านตัวเลขจากสตริงนั้น โดยที่สตริงว่างและสตริงที่ประกอบด้วยช่องว่าง จะให้ NaN จากนั้นผลลัพธ์ของ parseFloat จะถูกประมวลผล โดยใช้ !isNaN, เพื่อให้ได้ true หรือ false แทน NaN ผลลัพธ์คือ ทุกอย่างจะถูกกรองออก ยกเว้นสตริงที่เป็นตัวเลข และตัวเลขทั่วไป

ไวยากรณ์

isFinite(ค่า);

ตัวอย่าง

ตอนนี้ isFinite จะแสดง true, เนื่องจากพารามิเตอร์เป็นตัวเลข:

let num = 3; console.log(isFinite(num));

ผลลัพธ์จากการรันโค้ด:

true

ตัวอย่าง

ตอนนี้ isFinite จะแสดง false, เนื่องจากพารามิเตอร์ไม่ใช่ตัวเลข:

let num = 'abcde'; console.log(isFinite(num));

ผลลัพธ์จากการรันโค้ด:

false

ตัวอย่าง

ตอนนี้ isFinite จะแสดง false, เนื่องจากพารามิเตอร์เป็นค่าอนันต์:

let num = Infinity; console.log(isFinite(num));

ผลลัพธ์จากการรันโค้ด:

false

ตัวอย่าง

ตอนนี้ isFinite จะแสดง false, เนื่องจาก 1/0 - นั่นคือ Infinity (ค่าอนันต์):

let num = 1 / 0; console.log(isFinite(num));

ผลลัพธ์จากการรันโค้ด:

false

ตัวอย่าง

ตอนนี้ isFinite จะแสดง true, เนื่องจากสตริงว่าง ซึ่งไม่ใช่ตัวเลข, เป็นข้อยกเว้น:

let num = ''; console.log(isFinite(num));

ผลลัพธ์จากการรันโค้ด:

true

ดูเพิ่มเติม

  • ฟังก์ชัน isNaN,
    ซึ่งทำการตรวจสอบ NaN
  • โอเปอเรเตอร์ typeof,
    ซึ่งกำหนดประเภทของข้อมูล
ไทย
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
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ