javascript - 空字符串检查评估错误
问题描述
我有一个检查空字符串的条件,它没有按预期评估空字符串。
我一次读取一个字符的字符串:
isNumber(s: string) {
console.log('char', s);
if (s !== '' && !isNaN(Number(s))) {
console.log('is a number');
console.log('-------------');
return true;
}
console.log('NOT a number');
console.log('-------------');
}
该字符串是从 csv 文件中读取的:
a,b,
c,d,e
第 3 列第 1 行是空的,但如果即使我有评估结果为真s !== ''
,我已经用控制台确认 char 是空的。为什么空字符串条件不起作用?
更新: 这会导致非空字符串吗?我用引号初始化变量,然后附加到它。
cellExtraction = '';
cellExtraction += s; // <- where s should be an empty string read from file
解决方案
表达式Number("")
返回 0,它是一个数字。由于s !== ''
测试显然是返回true
,它必须是s
包含一个或多个空格字符的情况。0
那些也是由函数变成的Number()
;也就是说,Number(" ")
也是0
。