js:值为null,typeof返回字符串,但与null或''的比较返回false

时间:2019-01-03 05:56:43

标签: node.js koa

我正在评估koa js的解决方案,但遇到了以下问题:

有一些不需要总是由客户端填充的http标头,这意味着有时标头为空,但是在服务器端处理标头以比较它的空/空字符串时,即使它为空,也总是返回false。 / p>

要了解比较的价值和结果是什么,请跟踪所有可能的结果,以下是其中的内容:

console.log(typeof ctx.get('X-SessionId'));
console.log(ctx.get('X-SessionId'));
console.log(!ctx.get('X-SessionId'));
console.log(ctx.get('X-SessionId') === null);
console.log(ctx.get('X-SessionId') == null);
console.log(ctx.get('X-SessionId') == '');
console.log(ctx.get('X-SessionId') === '');
console.log(ctx.get('X-SessionId').length);

输出:

string
null
false
false
false
false
false
4

此处,typeof返回字符串,但值本身为null。与null或''进行比较将返回false。令人惊讶的是,.length返回4!

有人建议如何克服这个比较问题吗?

0 个答案:

没有答案