Ý nghĩa của từ khóa $ trước tên biến

Chào mọi người,mình có đọc được đoạn Code người ta viết thế này để tạo effect Smooth scrolling:

$(document).ready(function () {

    var hash = window.location.hash;
    scrollToElem(hash);

    $('a.page-scroll').on('click', function (event) {
        var $anchor = $(this);
        var href = $anchor.attr('href');
        scrollToElem(href);
        event.preventDefault();
    });
});

Trong Code, mình để ý thấy có dòng này : var $anchor = $(this); , mình thấy đây là một phép gán thông thường đối tượng $(this) cho biến anchor nhưng mình không hiểu tại sao trước tên biến anchor lại cần thêm ký tự $. Nó có quan trọng không ?

Nhờ mọi người giải thích giùm mình với. Mình xin cám ơn trước .

2 Likes

Theo mình hiểu thì dấu $ của $anchor ko có ý nghĩa đặc biệt gì, có thể đó là 1 quy tắc đặt tên cá nhân của tác giả thôi.
bạn hoàn toàn có thể thay thế biến $anchor thành anchor mà ko ảnh hưởng gì đến chương trình.

4 Likes

https://www.w3schools.com/js/js_variables.asp

Names can also begin with $ and _

4 Likes

Đặt $ trước tên biến là 1 trong các quy tắc theo jQuery convention. Các biến có tên bắt đầu là $ sẽ nhận biết biến đó là 1 jQuery object.

var $anchor = $(this);
var href = $anchor.attr('href');

href là biến thông thường, kiểu string, $anchor là biến jQuery, kiểu jQuery object.


Ngoài ra, $ còn được đặt sau để nhận biết biến đó thuộc đối tượng Observable trong Reactive Programming, cụ thể là RxJS. Theo convention, đối tượng Observable có thể đặt tên theo 2 kiểu.
Tên biến thông thường + $

timer$ = Rx.Observable.interval();

Hoặc tên biến + Observable

timerObservable = Rx.Observable.interval();

Đó là 2 trường hợp biến có kèm theo $. Thông thường không nên đặt tên biến có $, _ dù JavaScript cho phép.

6 Likes

Em thấy nhiều người cũng đặt tên biến có underscore trong js ạ.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?