Убедитесь, что переменная (определена) не работает в JavaScript - PullRequest
1 голос
/ 16 августа 2011

Запутался в этом поведении. Я думал сделать что-то вроде:

if (variable name)
{
    ... do this...
}

должно работать. Однако, если переменная не определена, я просто получаю «ReferenceError: Не могу найти переменную:» имя переменной, и блок else даже не будет выполнен. Например, следующий фрагмент, который я получил из другого вопроса StackOverflow, не работать, когда я проверяю. Есть предложения?

if(persons_name) 
{
    var name = persons_name;
} 
else 
{
    var name = "John Doe";
}

Ответы [ 4 ]

3 голосов
/ 16 августа 2011
if (typeof persons_name !== 'undefined') {
  ...
} else {
  ...
}

Обратите внимание, что вам не нужны скобки с typeof.

2 голосов
/ 16 августа 2011

В отличие от свойства, для его использования должно быть определено безусловное имя. Таким образом, если вы ищете глобальную переменную Person_name, вы можете написать

if (window.persons_name)

и он будет оценен как неопределенный, если имя_пользователя не существует. Кроме того, вы можете просто объявить people_name, если вы ожидаете, что он существует.

var persons_name;

Это не изменит значение person_name, если оно уже существует.

0 голосов
/ 16 августа 2011
var name = (typeof persons_name !== 'undefined' || !(!!persons_name)) ?
    persons_name :
    'John Doe';
0 голосов
/ 16 августа 2011

, сказав var name;, вы определяете переменную;и, сказав var name = "john doe";, вы назначаете ему значение.

...