String.fromCharCode(17)的结果是什么?

时间:2014-08-13 04:48:50

标签: javascript

我对这种静态方法感到困惑。当使用17个字符代码(控制键)时,我找不到将它与任何东西进行比较的方法。

Chrome控制台:

String.fromCharCode(17)

它看起来像一个普通的空字符串。

mdn

  

此方法返回字符串而不是String对象。

所以我在想那个

String.fromCharCode(17) === ""将返回true。但它返回false。 为什么呢?

  • typeof(String.fromCharCode(17))返回“string”
  • String.fromCharCode(17) === null返回false
  • String.fromCharCode(17) === undefined返回false
  • 另外,为了确定,我做了String.fromCharCode(17) === new String()并且它也返回了假...

我不明白......

4 个答案:

答案 0 :(得分:2)

  

因此我认为String.fromCharCode(17) === ""会返回true。但它返回false。为什么呢?

String.fromCharCode(17)返回设备控件1 ,这似乎是一个不可打印的字符。它失败的原因是因为是一个空字符串。

String.fromCharCode(17) === String.fromCharCode(17)会返回true

答案 1 :(得分:2)

当我尝试显示""(非打印字符)时,它不是空字符串。请参见下图以获取证明:

enter image description here

这就是String.fromCharCode(17) === ""返回false的原因。

答案 2 :(得分:2)

String.fromCharCode()引用的mdn不完整,

  

返回使用指定的Unicode值序列创建的字符串。

在这种情况下,不可打印的字符 - ASCII 17 - 或设备控制1。

答案 3 :(得分:1)

String.fromCharCode()方法返回使用指定的Unicode值序列创建的字符串。 KeyChar 17实际上代表键盘的CTR键。所以当你写作时

String.fromCharCode(17) , 

它实际上表示无法表示为一个16位数字的字符。因此,它不是空字符串,因为它需要多个16位数字unicode值才能显示。