2013-12-12 3 views
0

Я использую простой код, чтобы проверить, не установлена ​​ли переменная сессии, а затем перенаправить страницу на другую страницу usign javascript. Мой код:Разница между объявлением переменной

var userLogin = "<?php echo $_SESSION['user']['id']; ?>"; 
if (typeof userLogin == "undefined") 
{ 
    $(location).attr('href', 'http://www.example.com/'); 
} 

Но это не работает, потому что, если сессия не установлен, то назначьте:

var userLogin = ""; 

Мой вопрос: Какова разница между обоими объявления переменной:

var userLogin = ""; 

и

var userLogin; 
+0

первым является присвоение пустой строки в Userlogin. Второй оставляет его неопределенным. –

+1

...... почему бы вам просто не перенаправить с PHP? – Marty

+0

Это в дополнение к @MartyWallace. Почему бы не использовать [gettype()] (http://at2.php.net/gettype) в php, а затем перенаправить также в php? – Edper

ответ

5

Разница заключается в том, что var userLogin присваивает значение undefined по номеру userLogin, а var userLogin = "" присваивает пустую строку в качестве значения.

Используйте if (!userLogin) вместо if (typeof userLogin == "undefined").


При написании выражения

if (x) { ... } 

JavaScript рассматривает следующие x значения быть false

undefined, null, NaN, 0, "" (пустая строка), и false

Все остальные значения x считаются true

+1

идеальный короткий ответ +1 –

+0

+1 хорошая работа. Вы можете указать, какие значения JavaScript считает «ложными» –

+0

@ maček Я подумал об этом, но решил, что даже не хочу открывать эту банку червей. Например, стоит «00.00»? Что относительно '[0]'? –

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