JS กวดวิชา

เจเอสโฮม JS Introduction JS Where To JS เอาท์พุต งบ JS JS ไวยากรณ์ JS ความคิดเห็น ตัวแปร JS เจเอส เลท JS Const JS Operators JS เลขคณิต JS Assignment ประเภทข้อมูล JS ฟังก์ชัน JS วัตถุ JS JS Events JS Strings JS String Methods JS String Search เทมเพลตสตริง JS JS Numbers JS Number Methods JS Arrays JS Array Methods JS Array Sort JS Array Iteration JS Array Const JS Dates รูปแบบวันที่ JS JS วันที่รับเมธอด JS Date Set Methods JS Math JS สุ่ม JS Booleans JS เปรียบเทียบ JS Conditions JS Switch JS ลูปสำหรับ JS Loop สำหรับ In JS วนสำหรับ Of JS วนรอบในขณะที่ JS Break JS Iterables JS ชุด JS Maps JS Typeof JS ประเภทการแปลง JS Bitwise JS RegExp JS Errors JS ขอบเขต JS Hoisting JS โหมดเข้มงวด JS คำสำคัญนี้ JS Arrow Function JS Classes JS JSON JS Debugging คู่มือสไตล์ JS JS แนวทางปฏิบัติที่ดีที่สุด JS ความผิดพลาด JS Performance JS สงวนคำ

เวอร์ชัน JS

เวอร์ชัน JS JS 2009 (ES5) เจเอส 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / ขอบ JS History

วัตถุ JS

คำจำกัดความของวัตถุ คุณสมบัติของวัตถุ วิธีการวัตถุ การแสดงวัตถุ อุปกรณ์เสริมวัตถุ ตัวสร้างวัตถุ ต้นแบบวัตถุ วัตถุ Iterables ชุดวัตถุ แผนที่วัตถุ การอ้างอิงวัตถุ

ฟังก์ชัน JS

คำจำกัดความของฟังก์ชัน พารามิเตอร์ฟังก์ชัน เรียกใช้ฟังก์ชัน เรียกฟังก์ชัน ฟังก์ชัน สมัคร การปิดฟังก์ชัน

JS Classes

แนะนำคลาส การสืบทอดคลาส คลาสคงที่

JS Async

JS Callbacks JS แบบอะซิงโครนัส JS Promises JS Async/รอ

JS HTML DOM

บทนำ DOM วิธี DOM เอกสาร DOM องค์ประกอบ DOM DOM HTML แบบฟอร์ม DOM DOM CSS ภาพเคลื่อนไหว DOM กิจกรรม DOM DOM Event Listener การนำทาง DOM โหนด DOM DOM Collections รายการโหนด DOM

JS เบราว์เซอร์ BOM

JS Window JS Screen JS Location JS History JS Navigator JS Popup Alert JS Timing JS Cookies

JS Web APIs

แนะนำ Web API เว็บฟอร์ม API API ประวัติเว็บ API ที่เก็บข้อมูลเว็บ Web Worker API API ดึงเว็บ เว็บ Geolocation API

JS AJAX

บทนำ AJAX AJAX XMLHttp คำขอ AJAX การตอบสนอง AJAX ไฟล์ AJAX XML AJAX PHP AJAX ASP ฐานข้อมูล AJAX แอปพลิเคชัน AJAX ตัวอย่าง AJAX

JS JSON

บทนำ JSON ไวยากรณ์ JSON JSON กับ XML ประเภทข้อมูล JSON JSON Parse JSON สตริงริฟาย วัตถุ JSON อาร์เรย์ JSON เซิร์ฟเวอร์ JSON JSON PHP JSON HTML JSON JSONP

JS กับ jQuery

ตัวเลือก jQuery jQuery HTML jQuery CSS jQuery DOM

JS กราฟิก

JS กราฟิก JS Canvas JS Plotly JS Chart.js JS Google Chart JS D3.js

ตัวอย่าง JS

ตัวอย่าง JS JS HTML DOM JS HTML อินพุต JS HTML Objects JS HTML Events JS Browser JS Editor JS แบบฝึกหัด JS Quiz ใบรับรอง JS

JS References

วัตถุ JavaScript วัตถุ HTML DOM


วัตถุ JavaScript


ใน JavaScript วัตถุเป็นราชา หากคุณเข้าใจวัตถุ แสดงว่าคุณเข้าใจ JavaScript


ใน JavaScript เกือบ "ทุกอย่าง" เป็นวัตถุ

  • บูลีนสามารถเป็นวัตถุได้ (หากกำหนดด้วยnewคีย์เวิร์ด)
  • ตัวเลขสามารถเป็นวัตถุได้ (หากกำหนดด้วยnewคีย์เวิร์ด)
  • สตริงสามารถเป็นวัตถุได้ (หากกำหนดด้วยnewคีย์เวิร์ด)
  • วันที่มักจะเป็นวัตถุ
  • คณิตศาสตร์เป็นวัตถุเสมอ
  • นิพจน์ทั่วไปมักจะเป็นวัตถุ
  • อาร์เรย์เป็นวัตถุเสมอ
  • ฟังก์ชั่นเป็นวัตถุเสมอ
  • วัตถุก็คือวัตถุเสมอ

ค่า JavaScript ทั้งหมด ยกเว้น primitive เป็นอ็อบเจ็กต์


JavaScript Primitives

ค่าดั้งเดิมคือค่าที่ไม่มีคุณสมบัติหรือวิธีการ

ชนิดข้อมูลดั้งเดิมคือข้อมูลที่มีค่าพื้นฐาน

JavaScript กำหนดประเภทข้อมูลพื้นฐาน 5 ประเภท:

  • string
  • number
  • boolean
  • null
  • undefined

ค่าดั้งเดิมนั้นไม่เปลี่ยนรูป (เป็นแบบฮาร์ดโค้ดและไม่สามารถเปลี่ยนแปลงได้)

ถ้า x = 3.14 คุณสามารถเปลี่ยนค่าของ x ได้ แต่คุณไม่สามารถเปลี่ยนค่าของ 3.14 ได้

ค่าพิมพ์ความคิดเห็น
"สวัสดี"สตริง"ฮัลโหล" ก็คือ "ฮัลโหล" เสมอ
3.14ตัวเลข3.14 เสมอ 3.14
จริงบูลีนความจริงย่อมเป็นความจริงเสมอ
เท็จบูลีนเท็จย่อมเท็จเสมอ
โมฆะnull (วัตถุ)null จะเป็นโมฆะเสมอ
ไม่ได้กำหนดไม่ได้กำหนดundefined คือ undefined เสมอ

วัตถุเป็นตัวแปร

ตัวแปร JavaScript สามารถมีค่าเดียว:

ตัวอย่าง

let person = "John Doe";

ตัวแปร JavaScript สามารถมีค่าได้มากมาย

วัตถุก็เป็นตัวแปรเช่นกัน แต่วัตถุสามารถมีค่าได้มากมาย

ค่าอ็อบเจ็กต์เขียนเป็นname : value pairs (ชื่อและค่าคั่นด้วยเครื่องหมายทวิภาค)

ตัวอย่าง

let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};

วัตถุ JavaScript คือชุดของค่าที่มีชื่อ

เป็นเรื่องปกติที่จะประกาศวัตถุด้วยconstคำหลัก

ตัวอย่าง

const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};


คุณสมบัติของวัตถุ

ค่าที่มีชื่อในวัตถุ JavaScript เรียกว่าคุณสมบัติ

คุณสมบัติ ค่า
ชื่อจริง จอห์น
นามสกุล โด่
อายุ 50
สีตา สีฟ้า

ออบเจ็กต์ที่เขียนเป็นคู่ค่าชื่อจะคล้ายกับ:

  • แอสโซซิเอทีฟอาเรย์ใน PHP
  • พจนานุกรมในภาษาไพทอน
  • ตารางแฮชในC
  • แผนที่แฮชใน Java
  • แฮชใน Ruby และ Perl

วิธีการวัตถุ

เมธอดคือการกระทำที่สามารถทำได้กับออบเจ็กต์

คุณสมบัติของอ็อบเจ็กต์สามารถเป็นได้ทั้งค่าดั้งเดิม ออบเจ็กต์อื่นๆ และฟังก์ชัน

เมธอดของอ็อบเจ็กต์คือคุณสมบัติของอ็อบเจ็กต์ที่มีนิยามฟังก์ชัน

คุณสมบัติ ค่า
ชื่อจริง จอห์น
นามสกุล โด่
อายุ 50
สีตา สีฟ้า
ชื่อเต็ม function() {ส่งคืน this.firstName + " " + this.lastName;}

ออบเจ็กต์ JavaScript เป็นคอนเทนเนอร์สำหรับค่าที่มีชื่อ ซึ่งเรียกว่าคุณสมบัติและเมธอด

คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับวิธีการต่างๆ ในบทต่อไป


การสร้างวัตถุ JavaScript

ด้วย JavaScript คุณสามารถกำหนดและสร้างวัตถุของคุณเองได้

มีหลายวิธีในการสร้างวัตถุใหม่:

  • สร้างอ็อบเจ็กต์เดียว โดยใช้อ็อบเจกต์ตามตัวอักษร
  • newสร้างออบเจ็กต์เดียวโดย ใช้คีย์เวิร์ด
  • กำหนดตัวสร้างอ็อบเจ็กต์ แล้วสร้างอ็อบเจ็กต์ตามประเภทที่สร้างขึ้น
  • สร้างวัตถุโดยใช้Object.create().

การใช้ Object Literal

นี่เป็นวิธีที่ง่ายที่สุดในการสร้างวัตถุ JavaScript

คุณทั้งคู่กำหนดและสร้างวัตถุในคำสั่งเดียวโดยใช้ตัวอักษรอ็อบเจ็กต์

อ็อบเจ็กต์ตามตัวอักษรคือรายการคู่ของชื่อ:ค่า (เช่น อายุ:50) ที่อยู่ในวงเล็บปีกกา {}

ตัวอย่างต่อไปนี้สร้างอ็อบเจ็กต์ JavaScript ใหม่พร้อมคุณสมบัติสี่ประการ:

ตัวอย่าง

const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};

การเว้นวรรคและการขึ้นบรรทัดใหม่ไม่สำคัญ คำจำกัดความของวัตถุสามารถขยายได้หลายบรรทัด:

ตัวอย่าง

const person = {
  firstName: "John",
  lastName: "Doe",
  age: 50,
  eyeColor: "blue"
};

ตัวอย่างนี้สร้างวัตถุ JavaScript ว่าง และเพิ่มคุณสมบัติ 4 อย่าง:

ตัวอย่าง

const person = {};
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";

การใช้คำสำคัญ JavaScript ใหม่

ตัวอย่างต่อไปนี้สร้างวัตถุ JavaScript ใหม่โดยใช้new Object()แล้วเพิ่มคุณสมบัติ 4 ประการ:

ตัวอย่าง

const person = new Object();
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";

ตัวอย่างข้างต้นทำเช่นเดียวกันทุกประการ

แต่ไม่จำเป็นต้องnew Object()ใช้

เพื่อความง่ายในการอ่าน ความเรียบง่าย และความเร็วในการดำเนินการ ให้ใช้วิธีการตามตัวอักษรอ็อบเจ็กต์


วัตถุ JavaScript สามารถเปลี่ยนแปลงได้

ออบเจ็กต์เปลี่ยนแปลงได้: ถูกกำหนดโดยการอ้างอิง ไม่ใช่ตามค่า

หากบุคคลเป็นวัตถุ ข้อความต่อไปนี้จะไม่สร้างสำเนาของบุคคล:

const x = person;  // Will not create a copy of person.

วัตถุ x ไม่ใช่สำเนาของบุคคล มันเป็น บุคคล ทั้ง x และบุคคลเป็นวัตถุเดียวกัน

การเปลี่ยนแปลงใดๆ ของ x จะเปลี่ยนบุคคลด้วย เพราะ x และบุคคลเป็นวัตถุเดียวกัน

ตัวอย่าง

const person = {
  firstName:"John",
  lastName:"Doe",
  age:50, eyeColor:"blue"
}

const x = person;
x.age = 10;      // Will change both x.age and person.age