【JS&JSON】JSON对象取值a,和字符串a比较不相等

  • 【问题】

    JSON对象取值"succeeded"和字符串常量"succeeded"判断相等为false。

    代码:

    var obj = JSON.parse(data);//JSON字符串转对象
    var stat = "\""+obj.submitStatus+"\"";
    
    console.log(typeof(stat));
    console.log(stat);
    console.log(stat.trim() == "succeeded");
    console.log(encodeURIComponent(stat).trim());
    
    if (stat =="succeeded") {
       ...
    } else if (stat =="failed") {
        ...
    }
    

  • 【解决】

    我在取值时多加了一对引号

    var stat = "\""+obj.submitStatus+"\"";
    

    浏览器打印出来是这样的。我以为字符串打印出来应该就是有引号的,所以没觉得有问题,但实际上打印没有引号。


    应该是下面这样。

    var stat = obj.submitStatus;
    

    所以,这就是为什么判断为不相等。


  • 【后注】和之前的问题(JSP定义变量,JS中用<%=%>输出赋值给变量)搞混了,那个是要加引号的。
posted @ 2020-06-24 09:26  musecho  阅读(240)  评论(0编辑  收藏  举报