是否检查JavaScript变量null?
Iam使用以下代码行检查JS变量“userName”是否为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');
警报“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
被初始化为空字符串,因此不是未定义的。但我们永远不知道幕后发生了什么。