мы должны объявить переменную JS, как это:Переменная JavaScript
var x=5;
или просто простой, как этот
x=5;
что разница ... это будет влиять на функциональность переменной ? ...
мы должны объявить переменную JS, как это:Переменная JavaScript
var x=5;
или просто простой, как этот
x=5;
что разница ... это будет влиять на функциональность переменной ? ...
variable_name = 5
всегда поставит variable_name
в глобальный объект (который window
в браузере)
Если вы находитесь в (= не в контексте функции) в global context
два утверждения являются в основном то же самое. Но если вы находитесь в контексте функции, var
гарантирует, что эта переменная объявляется только в текущем контексте.
Так, например:
function foobar() {
bar = 55;
}
foobar();
window.bar === 55 // true
Лучше:
function foobar() {
var bar = 55;
}
window.bar === 55 // false
Вывод: всегда использование var
в контексте функции. Это позволяет избежать слияния/переопределения глобального объекта с помощью переменных.
var
keyword ограничивает область действия переменной текущей функцией. Оставляя это, он становится глобальным. Globals are bad и should be avoided, поскольку они являются ключевым источником условий гонки и скриптов, мешающих друг другу.
Не имеет значения - со вторым (x = 5;) переменная автоматически объявляется, если она еще не существует.
Однако я всегда использую первый вариант.
Это, безусловно, *. * Изменение. 'function a() {var x = 1; } x = 0; а(); Оповещение (x.toString()); '. Избавьтесь от 'var' и посмотрите, не изменились ли ваши результаты. – cHao
x=5
означает, что эта переменная (после выполнения) станет глобальной и может быть доступна всем остальным частям вашего кода (а также другим javascripts).
в то время как var x=5
будут знакомы только блок, который был объявлен на, (и это потомки)
Обратите внимание, что хотя x=5
будет глобальным, он станет глобальным только тогда, когда эта линия казнить! Итак, если вы поместите это внутри функции, он станет глобальным только после того, как эта функция будет вызвана (впервые).
+1 для упоминания 'window' как глобального объекта в среде браузера. – alex
, если функция объявила такую переменную, функция (typ) {var typ;} должна ли мы это сделать? чтобы избежать переопределения глобального объекта ... – theHack
@Afrig: no. Состоящий под названием «Объект активации» действительно заботится обо всех ваших переданных аргументах. Он доступен только в контексте функции. – jAndy