แปลงข้อมูล ค่าของตัวแปร datatype

#พื้นฐานการเขียนเว็ปไซต์

#javascrip

#datatype

การแปลงชนิดข้อมูล (Type Conversion หรือ Type Casting) ใน JavaScript ทำได้หลายวิธี ขึ้นอยู่กับว่าคุณต้องการแปลงข้อมูลให้เป็นชนิดใด หลักๆ จะเป็นการแปลงไปมาระหว่าง String, Number และ Boolean

นี่คือวิธีการหลักๆ ในการแปลงชนิดข้อมูล:

1. การแปลงเป็น String (ข้อความ)

คุณสามารถแปลงข้อมูลใดๆ ให้เป็น String ได้โดยใช้ 3 วิธีหลักๆ:

วิธีการ ตัวอย่างโค้ด ผลลัพธ์

String(value) (ฟังก์ชัน) String(123) "123"

String(true) "true"

value.toString() (เมธอด) (123).toString() "123"

(false).toString() "false"

String Concatenation (วิธีที่ง่ายที่สุด) 123 + "" "123"

ส่งออกไปยังชีต

2. การแปลงเป็น Number (ตัวเลข)

การแปลงข้อมูลเป็นตัวเลขเป็นสิ่งที่พบบ่อยที่สุดและมีความละเอียดอ่อน:

วิธีการ ตัวอย่างโค้ด ผลลัพธ์ ข้อควรจำ

Number(value) (ฟังก์ชัน) Number("123") 123 เปลี่ยน null เป็น 0, true เป็น 1, false เป็น 0, และข้อความที่ไม่ใช่ตัวเลข (เช่น "hello") เป็น NaN (Not a Number)

Unary Plus (+) +"123" 123 เป็นวิธีที่สั้นและเร็วในการแปลงเป็นตัวเลข

+true 1

parseInt(string) parseInt("100px") 100 แปลงเป็นจำนวนเต็ม (Integer) หยุดเมื่อเจออักขระที่ไม่ใช่ตัวเลข

parseFloat(string) parseFloat("10.5em") 10.5 แปลงเป็นทศนิยม (Floating-point)

ส่งออกไปยังชีต

ตัวอย่าง Number() ที่ควรระวัง:

JavaScript

Number(" 123 "); // 123

Number("12 34"); // NaN (มีช่องว่างระหว่างตัวเลข)

Number("abc"); // NaN

Number(null); // 0

Number(undefined); // NaN

3. การแปลงเป็น Boolean (ค่าจริง/เท็จ)

คุณสามารถแปลงข้อมูลใดๆ ให้เป็น Boolean ได้โดยใช้ 2 วิธีหลักๆ:

วิธีการ ตัวอย่างโค้ด ผลลัพธ์

Boolean(value) (ฟังก์ชัน) Boolean(1) true

Boolean(0) false

Double NOT (!!) !!1 true

!!0 false

ส่งออกไปยังชีต

ค่าต่อไปนี้จะถูกแปลงเป็น false (เรียกว่า Falsy Values):

ค่า (Value) ชนิดข้อมูล

0 Number

"" (String ว่าง) String

null Object

undefined Undefined

NaN Number

false Boolean

ส่งออกไปยังชีต

ค่าอื่นๆ ทั้งหมด จะถูกแปลงเป็น true (เรียกว่า Truthy Values) เช่น "0", " ", [] (Array ว่าง), หรือ {} (Object ว่าง)

💡 Type Coercion (การแปลงชนิดข้อมูลโดยปริยาย)

JavaScript ยังมีการแปลงชนิดข้อมูลโดยอัตโนมัติ (Implicit Conversion) หรือที่เรียกว่า Type Coercion เมื่อมีการใช้งาน Operator บางตัว เช่น:

Operator + (การบวก): ถ้ามีค่าใดค่าหนึ่งเป็น String จะทำการแปลงอีกค่าหนึ่งให้เป็น String และทำการต่อ String แทนการบวกเลข

JavaScript

"10" + 5; // "105" (5 ถูกแปลงเป็น "5")

10 + "5"; // "105" (10 ถูกแปลงเป็น "10")

Operator ทางคณิตศาสตร์อื่นๆ (-, *, /): จะพยายามแปลงค่าทั้งหมดให้เป็น Number

JavaScript

"10" - 5; // 5 ("10" ถูกแปลงเป็น 10)

"10" * "2"; // 20 ("10" และ "2" ถูกแปลงเป็น 10 และ 2)

Operator ในเงื่อนไข (==): จะแปลงชนิดข้อมูลให้เหมือนกันก่อนเปรียบเทียบ

JavaScript

"5" == 5; // true (5 ถูกแปลงเป็น "5" ก่อนเปรียบเทียบ)

คำแนะนำ: เพื่อให้โค้ดมีความชัดเจนและป้องกันข้อผิดพลาด ควรใช้ Explicit Conversion (การแปลงแบบชัดเจน เช่น ใช้ Number() หรือ String()) และใช้ Strict Equality Operator (===) เพื่อเปรียบเทียบค่าและชนิดข้อมูลโดยตรงโดยไม่มีการแปลงข้อมูลโดยปริยาย

2025/10/3 แก้ไขแล้ว

... อ่านเพิ่มเติมหลายคนเริ่มเรียน JavaScript แล้วงงคำว่า “ชนิดข้อมูล” (datatype) เพราะเวลาอ่านโค้ดจะเจอทั้ง string, number, boolean และบางทีมีคำถามต่อว่า “integer คืออะไร” ทั้งที่ใน JS เหมือนจะมีแต่ Number อย่างเดียว ผมสรุปจากที่ใช้งานจริงให้เข้าใจง่ายๆ แบบนี้ ชนิดข้อมูล (ชนิดของค่า) คือประเภทของค่าที่ตัวแปรเก็บอยู่ เช่น ข้อความ ตัวเลข หรือจริง/เท็จ ซึ่งมีผลกับการคำนวณและการเปรียบเทียบมากๆ 1) String คืออะไร String คือ “ข้อความ” อยู่ในเครื่องหมาย '...' หรือ "..." เช่น "123" หรือ "hello" จุดที่ชอบพลาดคือ "123" เป็นข้อความ ไม่ใช่ตัวเลข ดังนั้น "10" + 5 จะได้ "105" เพราะเครื่องหมาย + เจอ string แล้วจะกลายเป็นการต่อข้อความ (type coercion) ทริคที่ผมใช้บ่อย: - แปลงเป็น string ชัดๆ: String(value) หรือ value.toString() - ถ้าค่าอาจเป็น null/undefined ให้ระวัง toString() เพราะจะ error ได้ (กรณี null.toString()) เลยใช้ String(value) ปลอดภัยกว่า 2) Integer คืออะไร (ใน JavaScript) Integer แปลว่า “จำนวนเต็ม” เช่น 1, 2, -5 ไม่มีจุดทศนิยม แต่ใน JavaScript “ชนิดข้อมูล” หลักของตัวเลขคือ Number (เป็น floating-point) หมายความว่า 1 และ 1.5 ก็เป็นชนิด Number เหมือนกัน แล้วทำไมยังมีคำว่า integer? - เป็น “รูปแบบของค่า” ที่เป็นจำนวนเต็ม แม้ชนิดข้อมูลยังเป็น Number - เวลาแปลง/รับค่าจาก input เรามักอยากได้จำนวนเต็มเลยใช้ parseInt() ตัวอย่างที่เจอบ่อย: - parseInt("100px", 10) ได้ 100 (หยุดเมื่อเจอตัวอักษร) - parseInt("08", 10) ควรใส่ฐาน 10 ไว้เสมอเพื่อกันการตีความผิด - Number("100px") จะได้ NaN (แปลงทั้งสตริง ต้องเป็นตัวเลขล้วนๆ ถึงผ่าน) 3) แปลงเป็นตัวเลข: Number() vs parseInt() vs parseFloat() ผมเลือกใช้ตามเคสแบบนี้ - ต้องการให้ “ทั้งสตริง” เป็นตัวเลขจริงๆ: ใช้ Number("123") - ต้องการ “จำนวนเต็ม” จากข้อความที่อาจมีหน่วย: ใช้ parseInt("100px", 10) - ต้องการทศนิยม: ใช้ parseFloat("10.5em") ข้อควรระวังที่ผมเจอบ่อย: - Number("12 34") ได้ NaN เพราะมีช่องว่างคั่นกลาง - Number(null) ได้ 0 แต่ Number(undefined) ได้ NaN 4) Boolean และค่า truthy/falsy แปลงเป็น boolean ใช้ Boolean(value) หรือ !!value ได้เลย สิ่งที่เป็น falsy ที่ควรจำ: 0, "", null, undefined, NaN, false นอกนั้นส่วนใหญ่เป็น true (เช่น "0", [], {}) 5) เปรียบเทียบค่าให้ชัวร์ ถ้าไม่อยากให้ JS แปลงชนิดให้เอง แนะนำใช้ === แทน == เช่น "5" == 5 เป็น true แต่ "5" === 5 เป็น false ซึ่งช่วยลดบั๊กได้เยอะ สรุปสั้นๆ: ถ้าคุณสงสัยว่า string คืออะไรให้ดูว่าอยู่ในเครื่องหมายคำพูดไหม ส่วน integer คือ “ค่าแบบจำนวนเต็ม” แต่ชนิดข้อมูลใน JS ยังเป็น Number อยู่ และถ้าต้องแปลงค่า แนะนำแปลงแบบ explicit (Number/String/Boolean/parseInt/parseFloat) จะอ่านโค้ดง่ายและปลอดภัยกว่า

2 ความคิดเห็น

รูปภาพของ ขีดเขียน
ขีดเขียนผู้สร้าง

🥰❤️❤️❤️❤️❤️

รูปภาพของ peemai Ccn
peemai Ccn

🥰🥰

โพสต์ที่เกี่ยวข้อง

data type...???
#พื้นฐานการเขียนเว็ปไซต์ #variable #datatype #javascrip Datatype ใน JavaScript คือ ประเภทของค่า ที่ตัวแปรสามารถเก็บได้ การรู้และเข้าใจประเภทข้อมูลช่วยให้คุณสามารถดำเนินการกับค่าเหล่านั้นได้อย่างถูกต้อง ประเภทข้อมูลหลัก (Primitive Data Types) JavaScript มีประเภทข้อมูลพื้นฐาน 7 ชนิด
ขีดเขียน

ขีดเขียน

ถูกใจ 3 ครั้ง

ภาพหน้าปกแสดงหัวข้อ 'พื้นฐานที่ควรมีก่อนทำ Dashboard ใน Power BI 1. พื้นฐานด้านข้อมูล #2' พร้อมไอคอนที่สื่อถึงการเขียนโค้ด กราฟแท่ง การวิเคราะห์ข้อมูล และประเภทข้อมูลตัวเลขและข้อความ
ภาพอธิบายประเภทข้อมูลหลักใน Power BI โดยเน้นที่ 'ตัวเลข (Number)' ซึ่งแบ่งเป็นจำนวนเต็ม ทศนิยม และสกุลเงิน พร้อมตัวอย่างประกอบ
ภาพอธิบายประเภทข้อมูล 'ข้อความ (Text/String)' สำหรับเก็บตัวอักษร และ 'วันที่และเวลา (Date/Time)' สำหรับข้อมูลที่เกี่ยวข้องกับเวลา พร้อมการใช้งาน
พื้นฐานที่ควรมีก่อนทำ Dashboard #2 (Data Type)
🧩 ประเภทข้อมูล (Data Types) ใน Power BI การกำหนดประเภทข้อมูลอย่างถูกต้องเป็นขั้นตอนสำคัญในการสร้างโมเดลข้อมูล เพราะช่วยให้การคำนวณ การกรอง และการแสดงผลข้อมูลเป็นไปอย่างถูกต้องและมีประสิทธิภาพ 📌 ประโยชน์ของการกำหนดประเภทข้อมูลที่ถูกต้อง 1️⃣ ช่วยให้สูตร DAX ทำงานได้อย่างแม่นยำ 2️⃣ ปรับปรุงประสิ
Pram12

Pram12

ถูกใจ 70 ครั้ง

สร้างตารางข้อมูลหลายทาง 3 ตัวแปรขึ้นไปด้วย Pivot Table
การสร้างตารางแบบหลายทางเพื่อใช้สรุปข้อมูลหลายมิติพร้อมกัน นิยมใช้ Pivot Table เป็นตัวช่วยสร้าง ลองดูตัวอย่างได้เลยครับ​ 😎💚​ #excelsoezy #exceltricks #exceltips #Lemon8ฮาวทู #excel
Excel So Ezy

Excel So Ezy

ถูกใจ 12 ครั้ง

Cozy daily trick
5 ฟีเจอร์ที่ช่วยให้เริ่มทำรายงานได้เป็นระบบมากขึ้น 🦥 ช่วงนี้เริ่มฝึกทำ Dashboard ใน Power BI แล้วเพิ่งรู้ว่า สิ่งสำคัญไม่ได้มีแค่การเลือกกราฟให้สวย แต่ต้องเริ่มจากการจัดข้อมูลและวางโครงสร้างให้ดีก่อน 📊💛 🧹 Power Query ใช้ทำความสะอาดและแปลงข้อมูล เช่น ลบข้อมูลซ้ำ เปลี่ยนชนิดข้อมูล และรวมไฟล์จ
Cozytrick

Cozytrick

ถูกใจ 28 ครั้ง

พื้นฐานที่ควรมีในการทำ Dashboard #Analytical
🧩 DAX (ภาษาใน Power BI) สำหรับการคำนวณและวิเคราะห์ข้อมูล มีแนวคิดคล้ายกับสูตรใน Excel แต่สามารถทำงานกับโมเดลข้อมูลที่ซับซ้อนและเชื่อมโยงหลายตารางได้ ควรเข้าใจเรื่องเหล่านี้: 📌การใช้ SUM, AVERAGE, IF, COUNT 📌 ความแตกต่างระหว่าง row context และ filter context (สำหรับ DAX) 📌 การคิดตัวชี้วัด (KPI
Pram12

Pram12

ถูกใจ 110 ครั้ง

📍เครื่องมือวิเคราะห์ข้อมูลสำหรับ BA
อยากเปลี่ยนสายงานไม่รู้จะเริ่มจากตรงไหน #BA #it #businessanalyst #คู่มือ #สอนงาน
BA Life by Khun Thip

BA Life by Khun Thip

ถูกใจ 7 ครั้ง

🛍️ ช้อป 7.7 สนุก…แต่อย่าลืมเช็กกระเป๋าตัวเอง! 💸 เทมเพลต Excel นี้ช่วยบันทึกทุกออเดอร์ พร้อมสรุปค่าใช้จ่ายและ Dashboard อัตโนมัติ ดูได้ทันทีว่าซื้ออะไร จากร้านไหน และหมดเงินไปเท่าไหร่ 💬 สนใจเทมเพลตนี้ คอมเมนต์ “7.7” ไว้ได้เลย 👇 #Excel #ExcelTips #ExcelTemplate #Dashboard #Shopee
Excel Data Mast

Excel Data Mast

ถูกใจ 3 ครั้ง

ตัวแปรสุ่มและการแจกแจงความน่าจะเป็น
ยอมรับแบบแมน ๆ เลยว่า “ลอก สสวท.” 🤣🤣🤣 ถามจริงจะมีติวเตอร์คนไหนกล้าอธิบายละเอียดได้ขนาดนี้บ้างวะ 😳 #ตัวแปรสุ่มและการแจกแจงความน่าจะเป็น #ท้ายคณิตพี่เน็ตตี้
📚คณิตP’Netty📚

📚คณิตP’Netty📚

ถูกใจ 1 ครั้ง

ภาพรวมกระบวนการสร้าง Dashboard ด้วย Power BI เริ่มจาก Excel (ข้อมูลดิบ) ผ่าน Power Query (แปลงข้อมูล) ไปยัง Power BI (สร้าง Dashboard) แสดงตัวอย่าง Sales Performance Dashboard พร้อมประโยชน์ที่ได้รับจากการวิเคราะห์ข้อมูล.
อธิบายหลักการเก็บข้อมูลใน Excel ให้สะอาดและพร้อมใช้งานสำหรับ Query และ Dashboard โดยเน้นโครงสร้าง 1 แถว = 1 รายการ, 1 คอลัมน์ = 1 ประเภทข้อมูล, หัวคอลัม�น์ชัดเจน, และหลีกเลี่ยงการรวมเซลล์. แสดงตัวอย่างตารางข้อมูลที่ถูกต้อง.
แนะนำการปรับแต่ง Dashboard ใน Power BI อย่างมืออาชีพหลังจากการ Query ข้อมูลเสร็จสิ้น ครอบคลุมการจัดวางเลย์เอาต์, การเลือก Visual ที่เหมาะสม, การใช้สีและฟอนต์, การเพิ่มตัวกรอง, และสิ่งที่ควรหลีกเลี่ยง เพื่อให้ Dashboard สวยงามและเข้าใจง่าย.
📊 Dashboard ที่ดี ไม่ได้เริ่มจาก Power BI แต่เริ่มจาก “ข้อมูลที่สะอาด”

หลายคนรีบทำกราฟ แต่ข้ามขั้นตอนสำคัญที่สุด คือการเก็บข้อมูลใน Excel ให้เป็นระบบ เพราะถ้าข้อมูลต้นทางผิด รูปสวยแค่ไหนก็พาไปตัดสินใจผิดได้ การเก็บข้อมูลแบบ Clean Data ใน Excel ควรทำให้เรียบง่ายและเป็นมาตรฐาน เช่น 1 แถว = 1 รายการ 1 คอลัมน์ = 1 ประเภทข้อมูล ชื่อหัวตารางต้องชัดเจน เช่น วันที่ รหัส
JJ

JJ

ถูกใจ 363 ครั้ง

ภาพประกอบแสดงหัวข้อ 'พื้นฐานที่ควรมีก่อนทำ Dashboard ใน Power BI' และ '1. พื้นฐานด้านข้อมูล #1' พร้อมภาพคนกำลังวิเคราะห์ข้อมูล กราฟแท่ง และไอคอนโซเชียลมีเดีย
ภาพอธิบายโครงสร้างข้อมูลใน Power BI ที่จัดเก็บในรูปแบบตาราง แสดงตัวอย่างตารางข้อมูลพร้อมคอลัมน์และแถว และคำอธิบายว่าคอลัมน์แทนลักษณะข้อมูลแ��ละแถวแทนข้อมูลแต่ละรายการ
ภาพแสดงไอคอนแหล่งข้อมูลต่างๆ เช่น SQL, Excel, SharePoint และ Cloud พร้อมข้อความระบุว่าสามารถนำเข้าข้อมูลจากหลายแหล่งเหล่านี้ได้
พื้นฐานที่ควรมีก่อนทำ Dashboard ใน Power BI
🧩 1. พื้นฐานด้านข้อมูล (Data Foundation) สิ่งนี้สำคัญที่สุด เพราะ Power BI คือเครื่องมือ “วิเคราะห์และแสดงผลข้อมูล” โครงสร้างข้อมูล (Data Structure): เป็นการทำความเข้าใจว่า Data มีกี่ตาราง ความสัมพันธ์ (Relationship) ระหว่างตารางเป็นยังไง 📍 สำคัญเพราะ: ถ้าไม่เข้าใจข้อมูล จะทำให้วิเคราะห์ผิด
Pram12

Pram12

ถูกใจ 53 ครั้ง

☕️ อัปเวล Java EP.2! รู้จัก "ตัวแปร" หัวใจหลักของการเขียนโค้ด 📦✨
พร้อมจะอัปเวลกันหรือยัง?! 🚀 ยินดีต้อนรับสู่ซีรีส์สอนเขียน Java EP.2 ครับ! ☕️ หลังจาก EP.1 เราได้ลองเขียน Hello World กันไปแล้ว วันนี้เราจะมาก้าวเข้าสู่โลกของโปรแกรมเมอร์แบบเต็มตัว ด้วยการทำความรู้จักกับสิ่งที่เรียกว่า "ตัวแปร" (Variables) 🧩 ฟังดูเป็นคำศัพท์วิชาการใช่ไหมครับ? แต่จริงๆ
M

M

ถูกใจ 9 ครั้ง

ภาพหน้าจอโปรแกรม Browser for SQLite แสดงตารางสินค้า (products) พร้อมข้อมูลรหัส, ชื่อ, ราคา, รายละเอียด และที่อยู่รูปภาพ โดยมีข้อความ “SQLite3” สีแดงขนาดใหญ่ และ “ฐานข้อมูลเบา ๆ” กำกับอยู่
ฐานข้อมูลเบา ๆ sqlite3
#ติดเทรนด์ #พื้นฐานการเขียนเว็ปไซต์ #Lemon8ฮาวทู #ป้ายยากับlemon8 #lemon8ไดอารี่ 🗄️ SQLite3 คืออะไร? SQLite3 คือระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (Relational Database Management System - RDBMS) ที่มีความพิเศษและเป็นที่นิยมอย่างมาก เนื่องจากเป็นฐานข้อมูลในรูปแบบ Embedded หรือ Serverless
ขีดเขียน

ขีดเขียน

ถูกใจ 4 ครั้ง

มารู้จัก Logistic Regression 1 ใน Model ที่ใช้งานบ่อย
ถ้าพูดถึง Data Model ที่ใช้งานบ่อยในสายงาน Data Science ก็คือ Logistic Regression Model ทำไม Model นี้ถึงฮิต ? ไปทำความรู้จัก Logistic Regression Model ได้ในคลิปเต็มๆ เลยค่ะ #datascience #dataanalyst #dataanalystskills #CareerTips #selfdevelopment
Baitoey

Baitoey

ถูกใจ 78 ครั้ง

รู้จัก 3 โมเดล ใช้งานบ่อยในสายงาน Data Science 📈
1. Classification Model เป็น model ที่เอาไว้ใช้เพื่อทำนายคำตอบที่เป็น Yes-No Question หรือ two-way answer เช่น - ลูกค้ามีแนวโน้มจะผิดนัด ชำระหนี้หรือไม่ (Yes / No) - ลูกค้ามีแนวโน้มจะกลับซื้อซ้ำหรือไม่ (Yes / No) - ธุรกรรมนี้มีแนวโน้มจะเป็น fraud หรือไม่ (Yes / No) ตัวอย่าง Model : Logis
Baitoey

Baitoey

ถูกใจ 114 ครั้ง

แนะนำ 12 กราฟใน Power BI ใช้ตอนไหนได้บ้างงงง? 🧐📊
Hi 👋~~ ทุกคนเคยใช้ Power BI กันหรือเปล่าครับบ วันนี้เราจะมาแนะนำ 12 Charts ที่ควรรู้ พร้อมวิธีเลือกใช้แบบง่าย ๆ ว่าแต่ละกราฟเหมาะกับข้อมูลประเภทไหนกะนบ้างง เพราะกราฟที่ดูสวย อาจไม่ได้หมายความว่าจะสื่อสารข้อมูลได้ดีที่สุดเสมอไป 👍 หลักง่าย ๆ ก่อนเลือกกราฟคือ ลองถามตัวเองว่า 🔑 “เราอยากให้คนดูเห็น
T E R N G

T E R N G

ถูกใจ 32 ครั้ง

ตั้งค่าระยะย่อหน้าแบบชิค ๆ 📝💡 กดแท็บแล้วไม่ต้องลึกเว่อร์
BOSEBOSH

BOSEBOSH

ถูกใจ 1249 ครั้ง

ตัวแปลงที่ควรมี?! แน่นอนว่ายังไงก็ได้ใช้อะ เสียบปุ๊บแปลงปั๊บ! ✨
#ตัวแปลง #สายแปลง
── ୨୧ ──

── ୨୧ ──

ถูกใจ 0 ครั้ง

How to แปลงค่าเงินอัตโนมัติในแอปเครื่องคิดเลข 🎰
How to แปลงค่าเงินอัตโนมัติในแอปเครื่องคิดเลข 🎰 . #เที่ยวต่างประเทศ #เที่ยวจีน #เที่ยวจีนด้วยตัวเอง #superbholidayz #tiktoktravel
Thanit Parz

Thanit Parz

ถูกใจ 12 ครั้ง

🌌 Birth Chart: แผนที่ชีวิต
🌌 Birth Chart: แผนที่ชีวิตที่คุณต้องอ่านให้เป็น Birth Chart หรือ “ดวงกำเนิด” ไม่ใช่พิมพ์เขียวที่กำหนดชีวิตแบบตายตัว แต่มันคือ “แผนที่พลังงานของคุณในวันที่คุณเกิด” ที่บอกว่า * คุณเป็นใคร * คุณมีศักยภาพอะไร * คุณจะเจอบทเรียนแบบไหน * และคุณควรใช้ชีวิตยังไงให้ “ตรงพลัง” ⸻ 🧭 Birth
Gimmy Sprital Journey🦂🔮🪄

Gimmy Sprital Journey🦂🔮🪄

ถูกใจ 52 ครั้ง

ดูเพิ่มเติม