Страницы

Поиск по вопросам

понедельник, 9 декабря 2019 г.

В чём разница между переменными var a и var $a в javascript?

#jquery #javascript


Добрый день!
Всё чаще в js скриптах сталкиваюсь с обявлением переменных с использованием знака
доллара, т.е. вместо простого объявления var A я вижу var $A, и в дальнеймем по коду
обращения к этой переменной то так $A, то вот так $(A). Вот, например, кусочек из скрипта:
var forms = function(){
    $('.js_form').each(function(){ 
        var $form = $(this),
            $customField = $form.find('[data-error]'),
            customFieldRulls = {};
        var zIndexs = function(){
            setTimeout(function(){
                $('label.error').each(function(i){
                    $(this).css({'z-index':'50'-i})
                });                     
            },200)
        };

Используются как обычные переменные, так и "переменные с долларом". Не пойму, в чём
между ними разница? Это просто для удобства делается, или это что-то дополнительное
с функциональной точки зрения даёт?     


Ответы

Ответ 1



Не могу быть уверенным на все 146%, однако есть ощущение, что значком доллара тут отмечается тот факт, что значение переменной получено с помощью jQuery-селектора. Тогда как прочие, обычные js-переменные идут без этого префикса. В принципе, выглядит достаточно логично - js - язык с динамической типизацией, и понять по имени переменной, что в ней хранится, бывает не всегда возможно. Поэтому префикс в виде доллара облегчает это понимание. Однако, вне зависимости от того, верно ли мое предположение, или нет, какого-то нового функционала объявление "с долларом" не несет - в js это такой же символ, который можно использовать в названиях идентификаторов, что и прочие

Ответ 2



Не совсем так. Исходя из последних спецификаций jQuery:
function ready() { var selector = $('#selector'); var selector = $('#selector').context; var $selector = $('#selector'); } window.onload = ready; В первом случае selector вернет [object Object] Во втором [object HTMLDocument] (так, для полноты картины) А в третьем [object HTMLDivElement] Коротко говоря, третий вариант сработает как document.getElementById('selector '); на чистом JS. А там уже смотрите сами, кому с чем и как работать нужно.

Комментариев нет:

Отправить комментарий