2012-02-22 2 views
3

В чем разница между $ one и var one в JavaScript? Потому что оба работают.

Пример:

$one = 'hello word!'; 

var one = 'hello word!'; 

Рабочий пример: http://jsfiddle.net/rS9PR/

+1

Ввод $ перед переменными - это венгерская нотация для jQuery. Пожалуйста, не делай этого. – Daff

+0

one = 'hello word!'; // глобальная область, var one = 'hello word!'; // локальная область –

ответ

2

var one гарантирует, что переменная устанавливается в локальной области.

По умолчанию $one присвоит переменную глобальной области действия.

0

Они оба являются переменными именами. В JavaScript символ $ является допустимым символом для имени переменной. Ключевое слово var просто задает область имен переменных в вашем примере.

$ стал популярным благодаря его использованию в различных библиотеках JavaScript, таких как jQuery, однако это вполне допустимый символ имени переменной.

0

Нет разницы, имя переменной может содержать знак $. Вы только что объявили две разные переменные: $one и one.

upd: согласно комментарию @yi_H - две переменные на самом деле имеют разные области. var ключевое слово используется для объявления переменной в текущей области, однако, если вы опускаете var, оно определено в глобальном пространстве имен

+0

вы пропустили часть 'var' –

0

$ one определено в глобальной области видимости и будет видимым в каждой функции. var one определяется в его охватывающей области и не виден снаружи.

0

Некоторые люди используют "$" в качестве префикса для обозначения объекта JQuery, как:

$text = $("#myTextElement"); 
3

Ничего особенного около $; просто другое имя переменной. Использование «var» говорит интерпретатору, что переменная имеет локальную область. WIthout var => global. то есть; доступ из любой точки страницы.

0

$ в $one не означает ничего особенного. Это просто еще одна нормальная переменная JavaScript. Между некоторыми разработчиками существует соглашение, в котором префиксные переменные содержат $, чтобы указать, что переменная содержит объект jQuery. Это чисто для стиля и удобочитаемости и не имеет технического или синтаксического воздействия.

При пропускании var из декларации, браузер будет прикрепить переменный глобальный объект:

foo = 'bar'; 
alert(window.foo); // 'bar' 

Это имеет некоторые довольно серьезные последствия для любого сайта, который имеет более чем тривиальное количество JavaScript (категория, которая быстро растет в течение последних нескольких лет). Наилучшая практика заключается в том, что всегда объявляет переменные с var, чтобы предотвратить ряд проблем позже в будущем.

См.: What is the scope of variables in JavaScript? для получения более подробной информации о переменной области.

Смежные вопросы