DEV Community

hambalee
hambalee

Posted on

2 1

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

SurveyJS custom survey software

Build Your Own Forms without Manual Coding

SurveyJS UI libraries let you build a JSON-based form management system that integrates with any backend, giving you full control over your data with no user limits. Includes support for custom question types, skip logic, an integrated CSS editor, PDF export, real-time analytics, and more.

Learn more

Top comments (2)

Collapse
 
nantipatsoften profile image
Nantipat • Edited

Thank you for sharing

Collapse
 
kengkreingkrai profile image
kengkreingkrai

Thank you