DEV Community

hambalee
hambalee

Posted on

JavaScript ความแตกต่างระหว่าง Primitive Type และ Reference Type

Primitive Type คืออะไร ?

คือเมื่อสร้างตัวแปรใหม่โดยอ้างอิงจากตัวแปรเก่า ค่าที่ได้จะเป็นการคัดลอก

let num1 = 1 let num2 = num1 console.log(num1,num2)//จะได้ผลลัพธ์เป็น 1 ทั้งสองตัวแปร 
Enter fullscreen mode Exit fullscreen mode

แต่ถ้าเปลี่ยนเป็น

let num1 = 1 let num2 = num1 num1 = 3 num2 = 4 console.log(num1)//จะได้ผลลัพธ์เป็น 3 console.log(num2)//จะได้ผลลัพธ์เป็น 4 
Enter fullscreen mode Exit fullscreen mode

เพราะตัวแปรจะใช้ค่าของแต่ละตัวโดยไม่เกี่ยวข้องกันถึงแม้ num2 จะอ้างอิงมาจาก num1 ก็ตาม

Reference Type คืออะไร ?

คือเป็นการสร้างตัวแปรแบบอ้างอิง โดยที่เมื่อตัวแปรไหนเปลี่ยนตัวแปรอื่นก็จะเปลี่ยนตามด้วย จะใช้กับทั้ง Array และ Object

const person1 = {name: "A"} const person2 = person1 person2.name = "B" console.log(person1)//จะได้ผลลัพธ์เป็น B 
Enter fullscreen mode Exit fullscreen mode

ทั้ง person1 และ person2 จะใช้ค่าเดียวกัน

ถ้าต้องการคัดลอกเฉพาะค่าใน Object ให้สามารถใช้งานแยกออกจากกันสามารถทำได้โดยใช้ Spread Operator

const person1 = {name: "A"} const person2 = {...person1} person2.name = "B" console.log(person1)//จะได้ผลลัพธ์เป็น A 
Enter fullscreen mode Exit fullscreen mode

Top comments (3)

Collapse
 
nantipatsoften profile image
Nantipat • Edited

Thank you for sharing

Collapse
 
kengkreingkrai profile image
kengkreingkrai

Thank you

Collapse
 
mighty_j profile image
JJ_Guy

ขอบคุณครับ เข้าใจขึ้นเยอะเลยครับ👍👍👍