空字符串究竟是什么? (“”)

时间:2013-11-05 16:41:17

标签: javascript

我不时在代码中使用它。我想知道这是一个空字符还是类似的东西?

console.log("")返回undefined

typeof ""返回string.

Object.prototype.toString.call("")返回字符串。

如何在ascii或unicode中表示空字符串?这是一个更大的问题。

2 个答案:

答案 0 :(得分:5)

console.log不返回任何内容,因此返回值始终为undefined。在这方面,空字符串没什么特别的。

空字符串不包含空字符或类似内容。它根本不包含任何字符。你可以把它想象成一个空数组。它只是一个容器(在某种意义上),它可以包含任意数量的字符,但恰好是空的。

答案 1 :(得分:4)

console.log(""); return 未定义,但这是因为log总是return s 未定义。在控制台中的 undefined 之上应该有一个空行,即记录的空字符串。如果您使用console.warn,则此空日志会更明显,因为它会有警告标志。

  

仍然是unicode / ascii中的表示

空字符串为零字节长。这意味着它在这些中没有任何表示,除了你想要描述它的琐碎空洞之外。它将以 falsy 方式运行。

if ("") 1;
else 0;
// gives 0

如果您将字符表示为字节数组,例如使用 Uint8Array ,那么

var emptyString = new Uint8Array(0); // length 0
emptyString; // []