两个变量声明之间的区别

时间:2013-12-12 07:13:21

标签: javascript php

我正在使用一个简单的代码来检查会话变量是否未设置然后页面重定向到另一个页面使用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;

1 个答案:

答案 0 :(得分:5)

区别在于var userLoginundefined的值分配给userLogin,而var userLogin = ""则将空字符串指定为其值。

使用if (!userLogin)代替if (typeof userLogin == "undefined")


撰写表达时

if (x) { ... }

JavaScript认为以下x值为false

undefinednullNaN0""(空字符串)和false

x的所有其他值均被视为true