ใช้คำสั่ง return พร้อม this หรือ Object Literal เพื่อคืนค่าออบเจ็กต์จากฟังก์ชัน ตัวอย่าง: Method คืนค่าสตริงจากออบเจ็กต์ <html> <head> <script> var employee = { empname: David, department: Finance, id: 002, details: function() {
ใช้คำสั่ง return พร้อม this หรือ Object Literal เพื่อคืนค่าออบเจ็กต์จากฟังก์ชัน ตัวอย่าง: Method คืนค่าสตริงจากออบเจ็กต์ <html> <head> <script> var employee = { empname: David, department: Finance, id: 002, details: function() {
ใน JavaScript Functions และ Methods คือสิ่งเดียวกัน ทั้งคู่คือฟังก์ชัน แตกต่างกันแค่ บริบท (Context) ที่เรียกใช้ Function (ฟังก์ชัน) ฟังก์ชันอิสระ ไม่ได้ผูกกับออบเจ็กต์ function functionName(param1, param2) { // code } functionName(); // เรียกโดยตรง Method (เมธอด) ฟังก์ชันที่เป็น Property ของออ
Default Parameters และ Rest Parameters เป็นฟีเจอร์ ES6 ที่แก้ปัญหาพารามิเตอร์ต่างกัน Default Parameters (พารามิเตอร์เริ่มต้น) กำหนดค่าเริ่มต้นให้พารามิเตอร์ ใช้เมื่อไม่ได้ส่งอาร์กิวเมนต์ หรือส่ง undefined <html> <body> <script> function inc(val1, inc = 1) { re
JavaScript ไม่รองรับ Function Overloading แบบดั้งเดิม (หลายฟังก์ชันชื่อเดียวกัน แตกต่างพารามิเตอร์) หากประกาศฟังก์ชันชื่อซ้ำ ตัวหลังจะทับตัวก่อน ตัวอย่างที่ไม่ทำงาน function funcONE(x, y) { return x * y; } function funcONE(z) { return z; } // เรียกใช้ funcONE(5); // 5 (เรียกตัวที่ 2) funcONE(
ใช้ Regex /\s/g กับ replace() เพื่อลบ Whitespace ทั้งหมด (Space, Tab, Newline, ฯลฯ) ออกจากสตริง ตัวอย่าง <html> <head> <script> var str = Welcome to Tutorialspoint; document.write(str); // ลบ whitespace ทั้งหมด document.write(<br> + str.replace
ใช้ Regular Expression พร้อม Flag g (Global) และเมธอด exec() ในลูป เพื่อหา Multiple Matches ทั้งหมดในสตริง ตัวอย่าง: ดึงค่า query parameter ซ้ำ (demo=...) <html> <head> <script> var url = https://www.example.com/new.html?ui=7&demo=one&demo=two&demo=three four; v
ใช้ Regex /[^\w\s]/gi กับ replace() เพื่อลบอักขระพิเศษทั้งหมด (เก็บแค่ตัวอักษร ตัวเลข Underscore และ Whitespace) ตัวอย่าง <html> <head> <script> var str = @!Welcome to our website$$; document.write(str); // ลบอักขระพิเศษทั้งหมด document.write(<br&
ใช้ Regular Expression กับเมธอด replace() เพื่อลบข้อความที่อยู่ระหว่างสองส่วนที่กำหนด (เช่น ข้อความในวงเล็บ) ตัวอย่าง: ลบข้อความในวงเล็บ <html> <head> <script> var str = Welcome to Qries (website); document.write(str); // ลบข้อความในวงเล็บ รวมวงเล็บด้วย
ใช้ window.onerror หรือ window.addEventListener(error) เพื่อจับ JavaScript Errors ทั้งหมดที่ไม่ได้จับ (unhandled) ในหน้าเว็บ ข้อมูลที่ได้รับ (3 ส่วน) Error Message: ข้อความข้อผิดพลาด URL: ไฟล์ที่เกิดข้อผิดพลาด Line Number: บรรทัดที่เกิดข้อผิดพลาด ตัวอย่าง (onerror แบบเก่า) <html>
ไม่สามารถใช้ try-catch จับ Syntax Errors ได้ เพราะ Syntax Error เกิดขณะ Parse (แปลงโค้ด) ก่อนที่โค้ดจะรัน ทำให้ try-catch ยังไม่ได้ถูกตั้งค่า วิธีแก้: ใช้ window.onerror <html> <head> <script> window.onerror = function(message, source, lineno, colno, error) {
การดึง Stack Trace เมื่อ throw exception ทำได้โดยสร้าง Error object แล้วอ่าน property stack คล้ายกับการดึงปกติ แต่ทำในบล็อก catch ตัวอย่าง <html> <head> <script> function stackTrace() { var err = new Error(); return err.stack; } console.lo
สามารถดึง Stack Trace ใน JavaScript ได้โดยสร้าง Error object แล้วเข้าถึง property stack ตัวอย่าง <html> <head> <script> function stackTrace() { var err = new Error(); return err.stack; } console.log(stackTrace()); document.write(stac
ไม่สามารถข้ามตัวอักษรภายใน Capture Group ได้ เพราะการจับคู่ (match) ใน Regular Expression จะต้องเป็น ต่อเนื่อง (consecutive) เสมอ แม้จะมี zero-width assertions (เช่น lookahead/lookbehind) ก็ตาม ตัวอย่างการเข้าถึง Matched Groups (วิธีทางเลือก) <html> <head> <script> va
ใช้เมธอด exec() ของ RegExp เพื่อค้นหาและเข้าถึง Capture Groups (กลุ่มที่จับได้) ผลลัพธ์จะเป็นอาร์เรย์ ที่ index 0 คือ full match, index 1+ คือแต่ละ capture group ตัวอย่าง <html> <head> <script> var str = Username akdg_amit; // (?:^|\s) = non-capturing group เริ่
use strict เป็นคำสั่งสั่งงาน (directive) เปิดใช้งาน Strict Mode ใน JavaScript (ES5) ทำให้โค้ดรันภายใต้กฎเข้มงวดมากขึ้น ช่วยป้องกันบั๊กและปฏิบัติการที่ไม่ปลอดภัย การประกาศ เพิ่ม use strict; บนสุดของสคริปต์ (Global) หรือบนสุดของฟังก์ชัน (Function-scoped) <!DOCTYPE html> <html> <body
ใน JavaScript สามารถทำให้พารามิเตอร์เป็น ตัวเลือก (optional) ได้โดยใช้ Default Parameters (ES6) กำหนดค่าเริ่มต้นไว้ในหัวฟังก์ชัน ตัวอย่าง <html> <body> <script> // default inc = 1 function inc(val1, inc = 1) { return val1 + inc; } document.w
Arrow Function (Fat Arrow Function) เป็นไวยากรณ์ ES6 สำหรับเขียนฟังก์ชันแบบกระชับ ใช้ => ลดการเขียนคำสำคัญ function ซ้ำๆ ไวยากรณ์ { const result = param1 + param2; return result; } เปรียบเทียบ num * num); ความแตกต่างสำคัญ: this Binding { console.log(this.value); // 10 (lexical
ใน JavaScript สามารถส่ง พารามิเตอร์ (parameters) หลายค่าเข้าไปในฟังก์ชันได้ โดยคั่นด้วยคอมม่า ฟังก์ชันจะรับค่าเหล่านี้ผ่านตัวแปรพารามิเตอร์ที่ประกาศไว้ ตัวอย่าง <html> <head> <script> function sayHello(name, age) { document.write(name + is + age + years old
JavaScript มีหลายวิธีในการประกาศฟังก์ชัน แต่ละวิธีมีคุณสมบัติและกรณีใช้งานที่แตกต่างกัน 1. Function Declaration (Function Statement) วิธีทั่วไปที่สุด ใช้คำสำคัญ function ตามด้วยชื่อ <script> function Display() { alert(Hello World!); } </script> มี Hoisting ต้องมีชื่อ 2. I
Function Expression คือการกำหนดฟังก์ชันให้กับตัวแปร (variable assignment) ต่างจาก Function Declaration ที่เริ่มด้วยคำสำคัญ function Function Declaration function sayHello(name, age) { document.write(name + is + age + years old.); } มี Hoisting (ย้ายขึ้นบนสุด scope อัตโนมัติ) ต้องมีชื่อฟัง