变量与" true"值不符合[变量] ==" true" JavaScript的

时间:2017-11-17 05:37:41

标签: javascript jquery

我有一个声明为真的变量

var g1 = sessionStorage.getItem("g1"); //true
var g2 = sessionStorage.getItem("g2"); //false
var g3 = sessionStorage.getItem("g3"); //false

但在我的功能中

function checkmonitogift() {
    console.log(g1);
    if (g1 == true) {
        $("#g1").css({
            "background-color": "rgba(176,5,8,.9)",
            "cursor": "not-allowed"
        });
        $("#g1").html("OK");
    }

    if (g2 == false) {
        $("#g2").css({
            "background-color": "rgba(176,5,8,.9)",
            "cursor": "not-allowed"
        });
        $("#g2").html("OK");
    }

    if (g3 == false) {
        $("#g3").css({
            "background-color": "rgba(176,5,8,.9)",
            "cursor": "not-allowed"
        });
        $("#g3").html("OK");
    }

}

console return" true"但它仍然不符合if陈述的条件

3 个答案:

答案 0 :(得分:1)

sessionStorage.getItem("g2")返回"true"(字符串)而不是true(布尔值)

成功

var g1 = sessionStorage.getItem("g1") == "true" ; //true
var g2 = sessionStorage.getItem("g2") == "true"; //false
var g3 = sessionStorage.getItem("g3") == "true"; //false

答案 1 :(得分:1)

您可以做很多事情来比较stringboolean

我更喜欢的两个是:

var trueStr = "true";
var g1 = (trueStr === sessionStorage.getItem("g1") ); 
var g2 = (trueStr === sessionStorage.getItem("g2") ); 
var g3 = (trueStr ===  sessionStorage.getItem("g3") );

var g1 = JSON.parse(sessionStorage.getItem("g1")); 
var g2 = JSON.parse(sessionStorage.getItem("g2")); 
var g3 = JSON.parse(sessionStorage.getItem("g3")); 

然后你的变量将是boolean,其余的工作正常。

答案 2 :(得分:1)

var g1 = sessionStorage.getItem(“g1”);

此处输出类型为字符串,因此您无法像这样检查

if (g1 == true) {

将您的代码改为

if (g1 == "true") {

或者如果你觉得你得到了布尔值,那么就这样做

if (g1) {
 or
if (!g1) {