เช่นเดียวกับแอปทุกประเภท มีปัญหาที่ยากในการแก้ไขเมื่อเราเขียนแอปสำหรับ JavaScript ในบทความนี้ เราจะดูวิธีแก้ไขปัญหาทั่วไปของ JavaScript

วิธีที่มีประสิทธิภาพที่สุดในการเพิ่มค่าให้กับอาร์เรย์

เราสามารถเพิ่มค่าให้กับอาร์เรย์ได้โดยใช้เมธอด unshift

ตัวอย่างเช่น เราสามารถเขียนได้ว่า:

const a = ['foo', 'bar', 'baz'];
a.unshift('qux');

จากนั้น a ก็คือ [“qux”, “foo”, “bar”, “baz”]

นอกจากนี้เรายังสามารถใช้ตัวดำเนินการสเปรดทำสิ่งเดียวกันได้

ตัวอย่างเช่น เราสามารถเขียนได้ว่า:

const a = ['foo', 'bar', 'baz'];
const b = ['qux', ...a];

จากนั้น b คือ [“qux”, “foo”, “bar”, “baz”]

ฉันจะตรวจสอบได้อย่างไรว่าอาร์เรย์มีสตริงหรือไม่

เราสามารถตรวจสอบได้ว่าอาร์เรย์มีสตริงที่มีเมธอด includes หรือ indexOf หรือไม่

ตัวอย่างเช่น เราสามารถเขียนได้ว่า:

arr.indexOf('foo') > -1

or:

arr.includes('foo')

เพื่อตรวจสอบว่า arr มีสตริง 'foo' หรือไม่

indexOf ส่งคืน -1 หากองค์ประกอบไม่อยู่ในอาร์เรย์และดัชนีเป็นอย่างอื่น

includes ส่งคืน true หากองค์ประกอบอยู่ในอาร์เรย์และ false มิฉะนั้น

หากเรามีอาร์เรย์ของวัตถุ เราก็สามารถใช้ find , some หรือ filter

ตัวอย่างเช่น หากเรามี:

const arr = [{ name: 'foo' }, { name : 'bar' }, { name: 'baz' }];

จากนั้นเราก็สามารถเขียนได้ว่า:

arr.find(a => a.name === 'bar')

เพื่อค้นหาองค์ประกอบแรกใน arr ที่มีคุณสมบัติ name เท่ากับ 'bar'

มันจะส่งคืนองค์ประกอบหากมีอยู่และ undefined มิฉะนั้น

นอกจากนี้ เราสามารถโทร some เพื่อตรวจสอบแบบเดียวกันได้:

arr.some(a => a.name === 'bar')

some ส่งคืน true หากตรงตามเงื่อนไข และ false มิฉะนั้น

เรายังสามารถใช้ filter :

arr.filter(a => a.name === 'bar')

มันจะส่งคืนอาร์เรย์พร้อมกับรายการที่ตรงตามเงื่อนไขหากมีองค์ประกอบเหล่านั้นอยู่และอาร์เรย์ว่างมิฉะนั้น

แสดง “คุณแน่ใจหรือไม่ว่าต้องการออกจากหน้านี้” ข้อความเมื่อมีการเปลี่ยนแปลงเกิดขึ้น

หากต้องการแสดงข้อความก่อนที่ผู้ใช้จะออกจากเพจ เราสามารถฟังเหตุการณ์ beforeunload ได้

ตัวอย่างเช่น เราสามารถเขียนได้ว่า:

window.onbeforeunload = () => {
  return true;
}

จากนั้นเราควรเห็นกล่องยืนยันที่ถามผู้ใช้ว่าต้องการออกจากหน้าหรือไม่

เราส่งคืน true เนื่องจากข้อความที่กำหนดเองใดๆ จะถูกละเว้นและข้อความของเบราว์เซอร์เองจะปรากฏขึ้น

ตัวอย่างเช่นใน Chrome จะแสดงข้อความ "การเปลี่ยนแปลงที่คุณทำอาจไม่ได้รับการบันทึก"

ค้นหาความกว้างของ div โดยใช้ Vanilla JavaScript

หากต้องการค้นหาความกว้างของ div โดยใช้ JavaScript ธรรมดา เราสามารถใช้คุณสมบัติ offsetWidth เพื่อทำสิ่งนั้น

ตัวอย่างเช่น เราสามารถเขียนได้ว่า:

document.getElementById("div").offsetWidth

ความกว้างรวมถึงเส้นขอบด้วย

หากเราไม่ต้องการรวมความกว้างของเส้นขอบ เราสามารถเขียนได้:

document.getElementById("div").clientWidth;

และเราจะได้รับความกว้างที่กำหนดด้วย:

getComputedStyle(document.getElementById("div")).width;

แสดงกล่องโต้ตอบการยืนยันเมื่อคลิกที่ลิงก์ ‹a›

ในการแสดงกล่องยืนยันโดยคลิกที่ลิงก์ เราจะได้องค์ประกอบ a จากนั้นเราสามารถแนบตัวฟังการคลิกเข้าไปได้

ตัวอย่างเช่น กำหนดโค้ด HTML ต่อไปนี้:

<a class="confirmation">Link</a>

จากนั้นเราก็สามารถเขียนได้ว่า:

const confirmation = document.querySelector('.confirmation');
const onClick = (e) => {
  if (!confirm('Are you sure?')){
    e.preventDefault();
  }
};
confirmation.addEventListener('click', onClick, false);

เราเรียก addEventListener เพื่อแนบ Listener onClick เข้ากับองค์ประกอบจุดยึดของเรา

ในฟังก์ชัน Listener เราจะแสดงกล่องโต้ตอบยืนยันด้วย confirm

จากนั้นผู้ใช้คลิกยกเลิก จากนั้นเราจะเรียก preventDefault() เพื่อหยุดการกระทำที่เป็นค่าเริ่มต้น

ตรวจสอบว่า Type เป็น Boolean หรือไม่

เราสามารถตรวจสอบได้ว่าตัวแปรเป็นบูลีนด้วยตัวดำเนินการ typeof หรือไม่

ตัวอย่างเช่น เราสามารถเขียนได้ว่า:

typeof variable === "boolean"

ตอนนี้เราตรวจสอบว่า variable เป็นบูลีนด้วยหรือไม่

ปิดการใช้งานการคลิกบนแท็ก

หากต้องการปิดใช้งานการคลิกบนแท็กด้วย JavaScript เราสามารถตั้งค่า href ด้วยโค้ด JavaScript เพื่อปิดใช้งานการคลิก

ตัวอย่างเช่น เราสามารถเขียนได้ว่า:

<a href="javascript:() => { return false; }">disabled link</a>

or:

<a href="/" onclick="return false;">disabled link</a>

or:

<a href="javascript:void(0)">disabled link</a>

void ส่งคืน undefined เสมอ

โค้ดทั้ง 3 ชิ้นทำสิ่งเดียวกัน

บทสรุป

มีหลายวิธีในการปิดใช้งานลิงก์ เราสามารถรับความกว้างขององค์ประกอบที่มีคุณสมบัติต่างๆ ได้ การเพิ่มรายการในอาร์เรย์สามารถทำได้โดยใช้ตัวดำเนินการสเปรดและ unshift มีหลายวิธีในการตรวจสอบการมีอยู่ขององค์ประกอบในอาร์เรย์ ขอบคุณที่อ่านบทความของฉัน ฉันหวังว่าคุณจะพบว่ามีประโยชน์!