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