Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.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
Not运算符不处理我的javascript代码_Javascript_Cordova - Fatal编程技术网

Not运算符不处理我的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

我对javascript操作符非常困惑。看看这个:

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
。注意
如果(“”)
-一个空字符串-results
false
。谢谢@Tun Zarni Kyaw,现在我明白了真正发生的事情!!谢谢你的帮助,现在我的代码可以工作了。但我不明白这句话:alert(!localStorage.getItem('isValidUserPF');用布尔值警告!“false”在布尔值中也是false。你能给我解释一下吗?如果你测试
if(“whatever”)
,这个条件将得到
true
。如果测试
if(“false”)
,则该条件也将产生
true
另一方面,
if(!“whatever”)
将导致
false
。注意
如果(“”)
-一个空字符串-results
false
。谢谢@Tun Zarni Kyaw,现在我明白了真正发生的事情!!