Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.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
返回空白的Javascript变量_Javascript - Fatal编程技术网

返回空白的Javascript变量

返回空白的Javascript变量,javascript,Javascript,我正在测试此代码: var thecol = ''; // Note: I know that value.cat = '3' if (value.cat === '1') { thecol = 'cat1'; } else if (value.cat === '2') { thecol = 'cat2'; } else if (value.cat === '3') { thecol = 'cat3'; } else i

我正在测试此代码:

var thecol = '';

// Note: I know that value.cat = '3'

if (value.cat === '1') {
        thecol = 'cat1';
    } else if (value.cat === '2') {
        thecol = 'cat2';
    } else if (value.cat === '3') {
        thecol = 'cat3';
    } else if (value.cat === '4') {
        thecol = 'cat4';
    } else if (value.cat === '5') {
        thecol = 'cat5';
    };

alert(thecol);
由于某种原因,警报为空

知道为什么吗。

你确定value.cat是“3”而不是3吗?您可以通过记录typeof value.cat轻松找到。由于您使用的是deep equal,因此只有当值和类型都相同时,它才会返回true:

'3' === 3 // -> false
'3' == 3 // -> true

value.cat显然不是“3”。使用调试器,您的问题在另一个城堡中。即使你的value.cat==3。。。它不等于'3'。我建议你把你的等于改为==。三重相等意味着比较类型和值。。。但是,如果value.cat是数字,它将与测试不匹配,因为它们是字符串。它是3还是“3”?你也听说过吗?你为什么使用===instade of==?我认为===表示严格相同的对象,以获得更好的结果使用切换案例