js: значение равно нулю, typeof возвращает строку, но сравнение с нулем или '' возвращает false - PullRequest
0 голосов
/ 03 января 2019

Я оцениваю koa js для решения, но столкнулся со следующей проблемой:

Наличие некоторых заголовков http, которые не всегда должны заполняться клиентом, иногда заголовок будет нулевым, но при обработкезаголовок на стороне сервера, сравнивающий его для нулевой / пустой строки, всегда возвращает ложь, даже если он нулевой.

Чтобы увидеть, каково значение и каков результат сравнения, проследили все возможные результаты, и вот следующее:

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 возвращает строку, но само значение равно нулю.Сравнение с нулевым или '' возвращает ложь.И на удивление .length возвращает 4!

У кого-нибудь есть предложения, как преодолеть эту проблему сравнения?

...