Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript
JavaScript
  1. Strict Mode ใน JavaScript: การเข้มงวดโค้ดและป้องกันข้อผิดพลาด

    Strict Mode (use strict) โหมดเข้มงวดของ ECMAScript 5 ทำให้ JavaScript: Throw Error แทน Silent Fail ป้องกัน Accidental Globals ปิดการใช้งาน Features ที่ Deprecated/Unsafe Optimize Engine ได้ดีขึ้น การเปิดใช้งาน // ทั้ง Script use strict; // หรือใน Function function myFunc() { use strict;

  2. วิธี Freeze Object ใน JavaScript ด้วย Object.freeze()

    Object.freeze() - ทำให้ Object Immutable freeze() ป้องกัน: เพิ่ม Property ใหม่, ลบ Property, แก้ไข Property, เปลี่ยน Prototype, เปลี่ยน Property Attributes (writable, configurable, enumerable) ไวยากรณ์ Object.freeze(obj) Return: Object เดียวกัน (Frozen) - ไม่สร้าง Copy ตัวอย่าง <html> <bo

  3. Fisher-Yates Shuffle Algorithm ใน JavaScript: สับสุ่ม Array ให้ Uniform

    Fisher-Yates Shuffle (Modern) อัลกอริทึมสับสุ่ม Array ให้ Uniform Distribution (ทุก Permutation โอกาสเท่ากัน) O(n) Time, O(1) Space ขั้นตอน (In-place, Backward Loop) Loop จาก Index สุดท้าย (n-1) ลงมา 1 สุ่ม Index j ระหว่าง 0 ถึง i (Inclusive) Swap arr[i] กับ arr[j] Implementation 0; i--)

  4. การ Implement Polymorphism ใน JavaScript

    Polymorphism ใน JavaScript Polymorphism (หลายรูป) เป็นหลักการ OOP ให้ Object แบบต่างๆ ตอบสนองต่อ Message เดียวกันได้ต่างกัน (Override) หรือใช้ร่วมกันได้ (Inheritance) Prototype-based Polymorphism <script> // Parent Class var Game = function() {}; Game.prototype.select = function() {

  5. Currying ใน JavaScript: แปลงฟังก์ชันหลาย Argument เป็น Chain ของ Single Argument

    Currying (การคั่นฟังก์ชัน) เทคนิคแปลงฟังก์ชันที่รับหลาย Parameters ให้กลายเป็น Chain ของฟังก์ชันที่รับ Parameter เดียว ทีละตัว รูปแบบทั่วไป (Non-Curried) function volume(length, width, height) { return length * width * height; } volume(11, 2, 3); // 66 - ส่งทั้ง 3 พร้อมกัน รูปแบบ Curried functio

  6. Memory Life Cycle ใน JavaScript: Allocation, Use, Release

    Memory Life Cycle (วัฏจักรหน่วยความจำ) ทุกภาษา มี 3 ขั้นตอน แต่ High-level Language (JS) จัดการ Auto 1. Allocation (จัดสรรหน่วยความจำ) JavaScript = Garbage Collected Language ประกาศตัวแปร = Allocate Auto {}; // Function 2. Use (ใช้งานหน่วยความจำ) Read/Write Variable, Property, Pass Argument,

  7. Reference Counting Garbage Collection ใน JavaScript

    Reference Counting GC (อัลกอริทึมนับอ้างอิง) อัลกอริทึม GC แบบเก่า/ง่ายที่สุด นับจำนวน Reference 指向 Object แต่ละตัว Ref Count = 0 → Collect ได้ ตัวอย่างทำงาน var obj = { x: { y: 2 } }; // 2 Objects: obj (ref=1), obj.x (ref=1) obj = 1; // obj เดิม ref=0, obj.x ref=0 → ทั้งคู่ Collect ได้ ข้อจำกัดร้

  8. Memory Leaks ใน JavaScript: สาเหตุหลักและการป้องกัน

    Memory Leaks ใน JavaScript JavaScript เป็น Garbage Collected Language จัดสรร Memory อัตโนมัติ แต่ Leak เกิดจาก Reference ที่ค้างอยู่ ทำให้ GC ไม่เก็บได้ สาเหตุหลัก 4 ข้อ 1. Accidental Global Variables function foo() { bar = hello; // ไม่มี var/let/const → Global Variable! } foo(); console.log(wi

  9. Circular Reference ก่อให้เกิด Memory Leak ใน JavaScript

    Circular Reference และ Memory Leak Circular Reference: Object A Reference Object B, Object B Reference Object A กลับมาหากัน ปัญหาในระบบ Reference Counting (เก่า/IE) Ref Count ไม่เป็น 0 → ไม่ถูก GC Memory Leak ถาวรจน Browser ปิด ตัวอย่าง: DOM ↔ JS Object Circular Reference <html> <bo

  10. การ Implement Merge Sort ใน JavaScript

    Merge Sort - Divide and Conquer Merge Sort เป็น O(n log n) Stable Sort แบ่ง Array ครึ่งๆ จนเหลือ 1 Element แล้ว Merge กลับมาจากน้อยไปมาก ขั้นตอน Divide: แบ่ง Array เป็น 2 ส่วน ซ้ำจนเหลือ 1 Element Conquer: Merge 2 Sorted Arrays กลับมาเป็น 1 Sorted Array Combine: ทำซ้ำจนได้ Array เดียวเรียงคร

  11. Mark and Sweep Algorithm ใน JavaScript Garbage Collection

    Mark and Sweep Algorithm อัลกอริทึม GC หลักใน JavaScript สมัยใหม่ ค้นหา Object ที่ Unreachable (เข้าถึงไม่ได้) แทนที่จะหา ไม่ได้ใช้แล้ว ปรับปรุงจาก Reference Counting 3 ขั้นตอนหลัก Root: Global Object (Window ใน Browser, Global ใน Node.js) เริ่มต้นจาก Root หา Object ที่ Reachable Mark Phase: T

  12. วิธี Clone Object ใน JavaScript (Shallow vs Deep)

    การ Clone Object ใน JavaScript Clone = สร้าง Object ใหม่ที่มี Property เหมือนเดิม มีหลายระดับความลึก 1. Shallow Clone (ระดับผิว - 1 Level) คัดลอก Property ระดับบนสุด Nested Object ยัง Share Reference เดียวกัน ก) Spread Operator (ES6) - แนะนำ const source = {name: Salman, age: 23, salary: 25000}; c

  13. Map ใน JavaScript: Key-Value ที่จำลำดับและ Key แบบ Object ได้

    Map Object Map เก็บ Key-Value Pairs จำลำดับการ Insert ได้ และ Key สามารถเป็น ชนิดข้อมูลใดๆ (Object, Function, Primitive) ได้ ไม่เหมือน Object ธรรมดาที่ Key ต้องเป็น String/Symbol เท่านั้น ไวยากรณ์ new Map([iterable]) ปัญหาของ Object ธรรมดา (No Map) <script> const x = {}; const a = {};

  14. Detached DOM Elements ก่อให้เกิด Memory Leak ใน JavaScript

    Detached DOM Elements และ Memory Leak Detached DOM Elements คือ Element ที่ถูกลบออกจาก DOM Tree แล้ว แต่ยังถูก Reference โดย JavaScript Variable ทำให้ Garbage Collector ไม่สามารถเก็บขยะได้ สาเหตุหลัก DOM เป็น Tree Structure (Double-linked) Reference หนึ่งตัว = Reference ทั้ง Tree Variable/Clos

  15. เมธอด Array.some() ใน JavaScript

    Array.some() ทดสอบว่า มีอย่างน้อย 1 สมาชิก ผ่านเงื่อนไขหรือไม่ คืน true ถ้ามี, false ถ้าไม่มีเลย (Short-circuit) ไวยากรณ์ arr.some(callback(element[, index[, array]])[, thisArg]) ตัวอย่าง = 15000; } document.getElementById(demo1).innerHTML = wages.some(checkSal); // true document.getElem

  16. เมธอด Array.find() ใน JavaScript

    Array.find() คืน ค่า (Value) แรก ที่ผ่านเงื่อนไข Callback หาไม่เจอ คืน undefined หยุดค้นหาทันทีที่เจอ (Short-circuit) ไวยากรณ์ arr.find(callback(element[, index[, array]])[, thisArg]) ตัวอย่าง = 12000; } document.getElementById(demo).innerHTML = price.find(checkCost); </script> </b

  17. เมธอด Array.findIndex() ใน JavaScript

    Array.findIndex() คืน Index แรก ที่สมาชิกผ่านเงื่อนไข Callback หาไม่เจอ คืน -1 หยุดค้นหาทันทีที่เจอ (Short-circuit) ไวยากรณ์ arr.findIndex(callback(element[, index[, array]])[, thisArg]) ตัวอย่าง = 15000; } document.getElementById(demo).innerHTML = wages.findIndex(checkSal); </script>

  18. เมธอด Math.abs() ใน JavaScript: ค่าสัมบูรณ์

    Math.abs() - ค่าสัมบูรณ์ (Absolute Value) ส่งคืนค่าสัมบูรณ์ของตัวเลข: ค่าบวกคงเดิม, ค่าลบกลายเป็นบวก, 0 คงเป็น 0 นิยามทางคณิตศาสตร์ |x| = { x if x ≥ 0 { -x if x < 0 ตัวอย่าง 1: ความต่างแบบสัมบูรณ์ <script> function myDiff(a, b) { return Math.abs(a - b); } document.write(m

  19. เมธอด Math.pow() ใน JavaScript: ยกกำลัง

    Math.pow() คำนวณ baseexponent (Base ยกกำลัง Exponent) รองรับทุกชนิดตัวเลข ไวยากรณ์ Math.pow(base, exponent) ตัวอย่าง 1: จำนวนเต็มบวก <script> document.write(Math.pow(9, 3)); // 729 (9³) </script> ตัวอย่าง 2: หารากที่ n (Fractional Exponent) <script> document.write(Math.pow(2

  20. เมธอด substr() ใน JavaScript (Legacy)

    String.substr() - Legacy Method Deprecated: substr() เป็น Legacy แนะนำใช้ slice() หรือ substring() แทน ไวยากรณ์ str.substr(start[, length]) พารามิเตอร์: start - Index เริ่มต้น (รองรับ Negative: นับจากท้าย) length - จำนวนตัวอักษรที่จะดึง (Optional, Default: จนจบ String) ตัวอย่าง <html>

Total 5941 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:175/298  20-คอมพิวเตอร์/Page Goto:1 169 170 171 172 173 174 175 176 177 178 179 180 181