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

Javascript String.fromCharCode(17)的结果是什么?,javascript,Javascript,我对这种静态方法感到困惑。当使用17个字符的代码(控制键)时,我找不到方法将其与任何东西进行比较 Chrome控制台: 它看起来像一个普通的空字符串 警察说 此方法返回字符串而不是字符串对象 所以我在想 String.fromCharCode(17)==“将返回true。但它返回false。 为什么? typeof(String.fromCharCode(17))返回“String” String.fromCharCode(17)==null返回false String.fromCharCo

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

Chrome控制台:

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

警察说

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

所以我在想

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()
    ,它也返回false
我不明白

所以我认为
String.fromCharCode(17)==“
将返回
true
。但它返回
false
。为什么?

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


String.fromCharCode(17)==String.fromCharCode(17)
将在我尝试时返回
true

,它显示
(非打印字符),因此,它不是空字符串。请参见下图以获取证明:

这就是为什么
String.fromCharCode(17)=''
将返回false。

for
String.fromCharCode()引号不完整

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

在本例中,不可打印字符(ASCII 17)或设备控件1。

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

String.fromCharCode(17) , 

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

字符代码17是,也不能显示。既然你知道17代表控制键,你为什么认为它应该打印任何东西?@BoltClock我不希望它打印任何东西。我只是希望“任何东西”的表述都是一致的:)@Sebas如果你想要一致性,前端web开发可能不是你喜欢的;)它似乎只为参数值
33
-
126
打印ASCII字符。您的意思是这是控制台行为问题?我认为如果不可打印字符的类型实际上是stringNope,那么它将被转换为其他类型。这是正常的JavaScript行为。这两个字符串不相等,首先是因为它们的长度不同。@Sebas:不,这就是为什么它被称为“不可打印”。对我来说,这是一个矛盾。控制台应显示专用于不可打印字符的符号,而不是空字符串。实际上,我在上面看到IE确实显示了其他东西…@Sebas如何打印“”?那么ASCII-8(退格)呢?这就是为什么这个字体集不包括那个字形。