คอร์ส IT พื้นฐาน JavaScript 039_การแปลงประเภท
การแปลงประเภทคือกระบวนการในการแปลงข้อมูลจากประเภทหนึ่งไปเป็นอีกประเภทหนึ่ง การแปลงประเภทสามารถเป็นแบบโดยนัย (ทำโดยอัตโนมัติโดยเอนจิน JavaScript) หรือแบบชัดเจน (แปลงด้วยตนเองผ่านการเขียนโค้ด)
การแปลงประเภทโดยนัย (การบังคับประเภท)
ในการดำเนินการบางอย่าง JavaScript จะแปลงประเภทโดยอัตโนมัติเพื่อทำการคำนวณหรือเปรียบเทียบ
ตัวอย่าง:
let num = 5 + "5";console.log(num); // แสดง "55", เมื่อบวกตัวเลขกับสตริง ตัวเลขจะถูกแปลงเป็นสตริงการแปลงประเภทแบบชัดเจน
การแปลงเป็นสตริง
ฟังก์ชัน String(): แปลงประเภทอื่นเป็นสตริง
ตัวอย่าง:
let num = 123;let str1 = String(num); // ฟังก์ชัน String() สามารถจัดการกับ `null` หรือ `undefined`let str2 = num.toString(); // เมธอด toString() ไม่สามารถจัดการกับ `null` หรือ `undefined`let str3 = num + ""; // การบวกกับสตริงว่างจะได้สตริงจากการแปลงประเภทโดยนัยconsole.log(str1); // แสดง "123"console.log(str2); // แสดง "123"console.log(str3); // แสดง "123"การแปลงเป็นตัวเลข
ฟังก์ชัน Number(): แปลงประเภทอื่นเป็นตัวเลข
ตัวอย่าง:
let str1 = "123";let str2 = "";let str3 = "aaa";let num1 = Number(str1);let num2 = Number(str2);let num3 = Number(str3);let num4 = +str1;console.log(num1); // แสดง 123console.log(num2); // แสดง 0console.log(num3); // แสดง NaNconsole.log(num3); // แสดง 123, หากใช้เครื่องหมาย - จะแสดง -123หมายเหตุ: หากสตริงไม่สามารถแปลงเป็นตัวเลขที่ถูกต้องได้ ผลลัพธ์จะเป็น NaN (Not a Number)
ฟังก์ชัน parseInt() และ parseFloat(): แปลง สตริง เป็นจำนวนเต็มหรือจำนวนทศนิยม
ตัวอย่าง:
let str = "42";let num = parseInt(str);console.log(num); // แสดง 42
let str = "3.14";let num = parseFloat(str);console.log(num); // แสดง 3.14การแปลงเป็นบูลีน
ฟังก์ชัน Boolean(): แปลงประเภทอื่นเป็นค่าบูลีน
ตัวอย่าง:
let value = "Hello";let bool1 = Boolean(value);let bool2 = !value;console.log(bool1); // แสดง true, สตริงที่ไม่ว่างเปล่าจะแปลงเป็น trueconsole.log(bool2); // แสดง true, ใช้ลอจิคัล NOT กับค่าที่ไม่ใช่บูลีนเพื่อแปลงโดยนัย (!ค่าคือ false, ใช้ !! เพื่อแปลงเป็นค่าบวก)หมายเหตุ: 0, NaN, null, undefined, สตริงว่าง ฯลฯ (สิ่งที่ว่างเปล่า ไม่มี หรือผิดพลาด) จะถูกแปลงเป็น false ในขณะที่ค่าอื่นๆ และออบเจ็กต์จะถูกแปลงเป็น true