Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否检查JavaScript变量null?_Javascript_Html_Null_Var - Fatal编程技术网

是否检查JavaScript变量null?

是否检查JavaScript变量null?,javascript,html,null,var,Javascript,Html,Null,Var,Iam使用以下代码行检查JS变量“userName”是否为null。 但我总是收到警报“notempty” 请检查我的onready方法: $("document").ready(function (){ var userName = ""; if (userName == undefined || userName == null) { alert('empty'); } else { alert('not empty');

Iam使用以下代码行检查JS变量“userName”是否为null。 但我总是收到
警报“notempty”

请检查我的
onready
方法:

$("document").ready(function (){
    var userName = "";
    if (userName == undefined || userName == null) {
        alert('empty');
    } else {
        alert('not empty');
        var div = document.getElementById('title b');
        div.innerHTML = div.innerHTML + ','; 
    }
});

您正在将
var userName
设置为
”。它永远不会为空

将变量声明为
var用户名,而不是
var userName=“”


但是,除非您实际使用
userName
,否则
if/else
将毫无意义。

您将
var userName
设置为
。它永远不会为空

将变量声明为
var用户名,而不是
var userName=“”


但是,除非您实际使用
用户名
,否则
if/else
将毫无意义。

空字符串既不是null,也不是未定义的

您可以使用
进行检查操作员:

if (!userName) {
   // Do the stuff
}
完整性:

!"" == true
!null == true
!undefined == true
!"hi" == false
请注意:

!0 == true
!1 == false
!"0" == false
!"1" == false

空字符串既不是null也不是未定义的

您可以使用
进行检查操作员:

if (!userName) {
   // Do the stuff
}
完整性:

!"" == true
!null == true
!undefined == true
!"hi" == false
请注意:

!0 == true
!1 == false
!"0" == false
!"1" == false

不,您的变量既不是未定义的,也不是空的

但你能做的是用这条线代替这条线

if (userName == undefined || userName == null) {
if (!userName) {
按这条线

if (userName == undefined || userName == null) {
if (!userName) {

不,您的变量既不是未定义的,也不是空的

但你能做的是用这条线代替这条线

if (userName == undefined || userName == null) {
if (!userName) {
按这条线

if (userName == undefined || userName == null) {
if (!userName) {

您需要
typeof
关键字来检查它的类型<代码>!userName
将处理其余的值,如null或空值

if ( typeof userName === 'undefined' || !userName ) {
    alert('empty');
}

您需要
typeof
关键字来检查它的类型<代码>!userName
将处理其余的值,如null或空值

if ( typeof userName === 'undefined' || !userName ) {
    alert('empty');
}
试一试

var userName=”“;
如果(userName.length<1){
警报('empty'+“\n”+userName.length);
}否则{
警报(“非空”);
var div=document.getElementById('title b');
div.innerHTML=div.innerHTML+',';
}
试试看

var userName=”“;
如果(userName.length<1){
警报('empty'+“\n”+userName.length);
}否则{
警报(“非空”);
var div=document.getElementById('title b');
div.innerHTML=div.innerHTML+',';
}


因此json中的null等于'var userName',而不是'var userName=“”??json字符串中
null
的值将被解析为
null
,实际上不是空字符串。那么我如何在此处检测到'null'(!userName)?简单:
如果(userName==null)
因此json中的null等于'var userName',而不是'var userName=“”??json字符串中
null
的值将被解析为
null
,实际上不是空字符串。那么我如何在这里检测到'null'(!userName)?简单:
如果(userName==null)
如果
用户名==0
,该检查将通过。如果输入是从html元素读取的,它将始终是字符串,对吗?是的,但这是假设它实际上是从输入元素读取的。如果
用户名===0
,该检查将通过。如果输入是从html元素读取的,它将始终是字符串,对吗?是的,但这是假设它实际上是从一个输入元素读取的。我相信这就是你要问的:可能的重复我相信这就是你要问的:如果
用户名
恰好是
0
!用户名
将为
<代码>!1
->
错误
。不要将用户名强制转换为那样的布尔值。@Cerbrus由于变量往往是字符串,我不认为这是数字0的问题。但是是的,我会在答案上揭露这一点。感谢您的提醒。如果
用户名
恰好是
0
!用户名
将为
<代码>!1
->
错误
。不要将用户名强制转换为那样的布尔值。@Cerbrus由于变量往往是字符串,我不认为这是数字0的问题。但是是的,我会在答案上揭露这一点。感谢您的提醒。无需在此处使用
==
,因为
typeof
的返回总是一个字符串,在这种情况下
=
更快;)@Beterraba:如果使用非严格等式,一些js林特会大喊大叫。所以这是我的习惯。但总的来说你是对的:)事实上,你能解释一下类型检查的要点吗,因为
!undefined
是真的吗?我把它放在那里是为了更正原始代码块。从逻辑上讲,它没有任何用处,因为
userName
被初始化为空字符串,因此不是未定义的。但是我们永远不知道幕后发生了什么。这里不需要使用
=
,因为
typeof
的返回总是一个字符串,在这种情况下
=
更快;)@Beterraba:如果使用非严格等式,一些js林特会大喊大叫。所以这是我的习惯。但总的来说你是对的:)事实上,你能解释一下类型检查的要点吗,因为
!undefined
是真的吗?我把它放在那里是为了更正原始代码块。从逻辑上讲,它没有任何用处,因为
userName
被初始化为空字符串,因此不是未定义的。但我们永远不知道幕后发生了什么。