Not运算符不处理我的javascript代码
我对javascript操作符非常困惑。看看这个:Not运算符不处理我的javascript代码,javascript,cordova,Javascript,Cordova,我对javascript操作符非常困惑。看看这个: localStorage.setItem('isValidUserCpf', false); alert(localStorage.getItem('isValidUserCpf')); alert(!localStorage.getItem('isValidUserCpf')); alert(!(localStorage.getItem('isValidUserCpf'))); if (localStor
localStorage.setItem('isValidUserCpf', false);
alert(localStorage.getItem('isValidUserCpf'));
alert(!localStorage.getItem('isValidUserCpf'));
alert(!(localStorage.getItem('isValidUserCpf')));
if (localStorage.getItem('isValidUserCpf') == false){
alert('notEntering');
}
为什么所有警报都打印“假”?为什么我的条件不起作用?我真的不知道我有什么问题
谢谢
localStorage.setItem('isValidUserCpf', false);
false
存储为字符串
alert(localStorage.getItem('isValidUserCpf'));
带有字符串值的警报“false”
使用布尔值发出警报!“false”
在布尔值中也是false
alert(!(localStorage.getItem('isValidUserCpf')));
同上
请用
localStorage.setItem('isValidUserCpf', true);
你会看到“真”,假,假
我不确定您正在测试什么环境,您可以使用console.log(localStorage)
false
存储为字符串
alert(localStorage.getItem('isValidUserCpf'));
带有字符串值的警报“false”
使用布尔值发出警报!“false”
在布尔值中也是false
alert(!(localStorage.getItem('isValidUserCpf')));
同上
请用
localStorage.setItem('isValidUserCpf', true);
你会看到“真”,假,假
我不确定您正在测试的环境,您可以通过
console.log(localStorage)
查看localStorage
的值本地存储的键和值是由定义的字符串。当作为布尔值计算时,非空字符串为true
,因此对其求反将导致false
结果。类似地,字符串“false”与布尔值false
不同。如果您更改条件以比较字符串,它将按您预期的方式计算-在
本地存储的键和值是由定义的字符串。当作为布尔值计算时,非空字符串为
true
,因此对其求反将导致false
结果。类似地,字符串“false”与布尔值false
不同。如果您更改条件以比较字符串,它将按您预期的方式计算-在
您只能将字符串存储在本地存储中,因此当您尝试存储
false
时,它会转换为字符串“false”
您的第一个警报显示此字符串。其他的则显示应用于not运算符()的该字符串,假值将转换为字符串并显示在警报中 您可以做的是序列化数据以将其存储在localstorage中
localStorage.setItem('isValidUserCpf', JSON.strinify(false));
var isValidUserCpf = localStorage.getItem('isValidUserCpf');
alert(isValidUserCpf);
alert(JSON.parse(isValidUserCpf));
alert(!JSON.parse(isValidUserCpf));
if (isValidUserCpf == false){
alert('notEntering');
}
您只能在本地存储中存储字符串,因此当您尝试存储
false
时,它会转换为字符串“false”
您的第一个警报显示此字符串。其他的则显示应用于not运算符()的该字符串,假值将转换为字符串并显示在警报中 您可以做的是序列化数据以将其存储在localstorage中
localStorage.setItem('isValidUserCpf', JSON.strinify(false));
var isValidUserCpf = localStorage.getItem('isValidUserCpf');
alert(isValidUserCpf);
alert(JSON.parse(isValidUserCpf));
alert(!JSON.parse(isValidUserCpf));
if (isValidUserCpf == false){
alert('notEntering');
}
谢谢您的帮助,现在我的代码可以正常工作了。但我不明白这句话:alert(!localStorage.getItem('isValidUserPF');用布尔值警告!“false”在布尔值中也是false。你能给我解释一下吗?如果你测试
if(“whatever”)
,这个条件将得到true
。如果测试if(“false”)
,则该条件也将产生true
另一方面,if(!“whatever”)
将导致false
。注意如果(“”)
-一个空字符串-resultsfalse
。谢谢@Tun Zarni Kyaw,现在我明白了真正发生的事情!!谢谢你的帮助,现在我的代码可以工作了。但我不明白这句话:alert(!localStorage.getItem('isValidUserPF');用布尔值警告!“false”在布尔值中也是false。你能给我解释一下吗?如果你测试if(“whatever”)
,这个条件将得到true
。如果测试if(“false”)
,则该条件也将产生true
另一方面,if(!“whatever”)
将导致false
。注意如果(“”)
-一个空字符串-resultsfalse
。谢谢@Tun Zarni Kyaw,现在我明白了真正发生的事情!!