2015-08-08 2 views
0

Просто хотел уточнить, что var "randomvariable" = ""; означает точно. У меня никогда не было объяснений, просто из примеров, похоже, это означает, что переменная пуста и может быть записана? Но ища более подробный ответ.Javascript var = ""

+0

действительно ли это ' "переменная"= ""' или 'переменная = ""'? – Cameron

+0

variable = "", я имел в виду, что переменная является заменой имени переменной – Snorlax

+0

@Snorlax - есть ли у вас контекст, в котором это используется? – potatopeelings

ответ

3

"переменная" = ""

Является неправильным. Поскольку на левой стороне вы должны иметь ссылку на объект, а не фактический объект.

переменная = ""

означает, что вы хотите назначить "" строку variable.

+0

'' '' часто может быть значением пробела – Mike

+0

Whell yes, в этом примере мы назначаем строку пробелом. – Beri

1

Его просто объявление переменной, поэтому оно имеет значение (даже если его ничто, пробел, точка или нуль или что-то еще).

Скорее всего, используется для предотвращения ошибок, когда вы не знаете, примет ли переменная значение или вы собираетесь конкатенировать значения в цикле. Независимо от причины, по которой вам может понадобиться эта переменная для хранения значения.

0

Это означает, что он выделит пустой строковый объект для переменной. Этот объект может получить доступ ко всем функциям строковых объектов, таких как length, contains, substring, indexOf и т. Д. Или вы можете переназначить его на другое значение, если это необходимо.

var var1 = ""; 
typeof var1 === "string"; // true 
var1.length === 0;   // true 

Это отличие от пустой объявления переменной:

var var2; 
typeof var2 === "undefined" // true 
var2.length;     // Uncaught ReferenceError: var2 is not defined 
+0

'var' ничего не говорит о« распределении памяти »(или« создании »объектов); объекты создаются * независимо * объявлений области-локальной переменной ('var'). Важно сохранить различие между переменной (или свойством) и объектом/значением. – user2864740

+0

Я не сказал, что var сделал выделение. = "" делает. – neonguru

+0

«Это означает, что он будет выделять память для переменной ..», что неверно. Он будет * создавать значение [пустая строка] * и * присваивать его переменной * (или глобальному объекту, в зависимости от области видимости), обозначенной именем. Кроме того, ECMAScript, язык/стандарт высокого уровня, не обсуждает «распределение памяти» для объектов, а тем более для переменных (или свойств). – user2864740