เครื่องหมาย "$" ใน 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
