空字符串的长度怎么可能大于0?

时间:2018-11-30 17:57:49

标签: javascript prototype string-length

我在尝试运行有条件的JS以检查空字符串时遇到了此错误。在Chrome调试器中,空字符串的值的长度为1,有时甚至为2。这是在react应用中发生的。对于原型仍然如何正常工作,我却迷失了,但普通长度方法却不行。

enter image description here

2 个答案:

答案 0 :(得分:1)

如果字符串中包含的字符不是普通字符,则当您要求输入字符串的值时,该字符串可能看起来为空。这些字符串可以通过String.fromCharCode方法生成,也可以像'\x0d'一样隐式生成。回车之类的字符将显示为空字符串。您可以使用charCodeAt方法检查不可见的字符。

如Matus所示,这将复制有问题的行为:

v = '\x0d'

console.log(v);        // ""
console.log(typeof v); // "string"
console.log(v[0]);     // "" 
console.log(v.length); // "1"

答案 1 :(得分:0)

可能是这些情况下(不可见的字符)

v = '\x0d'

console.log(v);        // ""
console.log(typeof v); // "string"
console.log(v[0]);     // "" 
console.log(v.length); // "1"


v = '\x0d\x0d'

console.log(v);        // ""
console.log(typeof v); // "string"
console.log(v[0]);     // "" 
console.log(v.length); // "2";