ค้นหาเว็บไซต์

เครื่องหมาย "$" ใน JavaScript มีความหมายว่าอะไร


ในโค้ด JavaScript ด้านล่างนี้มีเครื่องหมายดอลลาร์ ($) หมายถึงอะไร?

$(window).bind('load', function() {
    $('img.protect').protectImage();
});

คำตอบ #1

โค้ดตัวอย่างของคุณดูเหมือนว่ากำลังอ้างอิงถึงเมธอดจากหนึ่งในไลบรารี JavaScript ที่เป็นที่นิยม (jQuery, ProtoType, mooTools และอื่น ๆ)

ไม่มีอะไรลึกลับเกี่ยวกับการใช้ $ ใน JavaScript $ เป็นเพียงตัวระบุที่ถูกต้องใน JavaScript เท่านั้น JavaScript อนุญาตให้ใช้ตัวอักษรตัวใหญ่และตัวเล็ก (ในหลายระบบอักษร ไม่จำกัดเฉพาะภาษาอังกฤษ), ตัวเลข (แต่ไม่ใช่ตัวอักษรตัวแรก), $, _ และอื่นๆ¹

Prototype, jQuery และไลบรารี JavaScript ส่วนใหญ่ใช้ $ เป็นวัตถุพื้นฐานหลัก (หรือฟังก์ชัน) ส่วนใหญ่ของพวกมันก็มีวิธีที่จะสละ $ เพื่อให้สามารถใช้กับไลบรารีอื่นที่ใช้มันได้ ในกรณีนั้นคุณจะใช้ jQuery แทน $ จริงๆ แล้ว $ เป็นเพียงทางลัดของ jQuery


¹ สำหรับตัวอักษรตัวแรกของตัวระบุ JavaScript อนุญาตให้ "...โค้ดพอยต์ Unicode ใด ๆ ที่มีคุณสมบัติ Unicode “ID_Start”..." บวกกับ $ และ _; รายละเอียดอยู่ในข้อกำหนด สำหรับตัวอักษรถัดไปในตัวระบุ อนุญาตให้ใช้ตัวอักษรใด ๆ ที่มี ID_Continue (ซึ่งรวม _) และ $ (รวมถึงตัวอักษรควบคุมสองตัวสำหรับความเข้ากันได้กับประวัติศาสตร์)

คำตอบ #2

จากคำตอบอีกอันหนึ่ง:

ประวัติเล็กน้อย

จำไว้ว่า ไม่มีอะไรที่พิเศษโดยเนื้อแท้เกี่ยวกับ $ มันเป็นชื่อของตัวแปรเช่นเดียวกับชื่ออื่น ๆ ในอดีต ผู้คนมักเขียนโค้ดโดยใช้ document.getElementById เพราะ JavaScript ตัวอักษรตัวใหญ่และตัวเล็กถือว่าต่างกัน จึงเป็นเรื่องปกติที่จะทำผิดพลาดขณะเขียน document.getElementById ฉันควรทำตัวอักษรใหญ่ 'b' ของ 'by' ไหม? ฉันควรทำตัวอักษรใหญ่ 'i' ของ Id? คุณคงเข้าใจประเด็น เพราะฟังก์ชันเป็นประชาชนชั้นหนึ่งใน JavaScript คุณจึงสามารถทำแบบนี้ได้เสมอ:

var $ = document.getElementById; //freedom from document.getElementById!

เมื่อไลบรารี Prototype มาถึง พวกเขาตั้งชื่อฟังก์ชันของพวกเขาที่ใช้ดึงองค์ประกอบ DOM ว่า '$' ไลบรารี JavaScript เกือบทั้งหมดก็ลอกไอเดียนี้ไปด้วย Prototype ยังแนะนำฟังก์ชัน $$ เพื่อเลือกองค์ประกอบโดยใช้ตัวเลือกลักษณะ CSS ด้วยเช่นกัน

jQuery ยังได้ปรับใช้ฟังก์ชัน $ แต่ขยายให้รองรับตัว 'selectors' ทุกประเภทเพื่อดึงเอาองค์ประกอบที่คุณต้องการ ตอนนี้ ถ้าคุณกำลังใช้ Prototype ในโครงการของคุณอยู่แล้วและต้องการรวม jQuery คุณจะเจอปัญหาเพราะ $ อาจหมายถึงการใช้งานของ Prototype หรือ jQuery นั่นเอง นั่นคือเหตุผลที่ jQuery มีตัวเลือก noConflict เพื่อให้คุณสามารถรวม jQuery ในโครงการที่ใช้ Prototype และค่อย ๆ ย้ายโค้ดของคุณไปเรื่อย ๆ ฉันคิดว่านี่เป็นการตัดสินใจที่ยอดเยี่ยมของ John! :)

คำตอบ #3

นั่นน่าจะเป็นโค้ด jQuery (อย่างแม่นยำกว่านั้นคือ JavaScript ที่ใช้ไลบรารี jQuery)

$ แทนฟังก์ชัน jQuery และจริง ๆ แล้วเป็นชื่อย่อสำหรับ jQuery (ไม่เหมือนกับในหลายภาษา สัญลักษณ์ $ ไม่ได้สงวนไว้และสามารถใช้เป็นชื่อตัวแปรได้) โดยปกติแล้วจะถูกใช้เป็น ตัวเลือก (เช่น ฟังก์ชันที่ส่งกลับชุดขององค์ประกอบที่พบใน DOM)

คำตอบ #4

ตามที่คำตอบอื่น ๆ ทั้งหมดบอก; มันสามารถเป็นอะไรก็ได้เกือบทุกอย่าง แต่โดยปกติคือ "JQuery"

อย่างไรก็ตาม ใน ES6 มันเป็นตัวดำเนินการแทรกสตริงในเทมเพลต "ลิเทอรัล" เช่น

var s = "new" ; // you can put whatever you think appropriate here.
var s2 = `There are so many ${s} ideas these days !!` ; //back-ticks not quotes
console.log(s2) ;

ผลลัพธ์ :

ตอนนี้มีไอเดียใหม่ๆ มากมายเลย !!

คำตอบ #5

$() คือเวอร์ชันย่อของ jQuery() ที่ใช้ในไลบรารี jQuery

บทความที่เกี่ยวข้อง