Javascript String.fromCharCode(17)的结果是什么?
我对这种静态方法感到困惑。当使用17个字符的代码(控制键)时,我找不到方法将其与任何东西进行比较 Chrome控制台: 它看起来像一个普通的空字符串 警察说 此方法返回字符串而不是字符串对象 所以我在想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
String.fromCharCode(17)==“
将返回true。但它返回false。
为什么?
返回“String”typeof(String.fromCharCode(17))
返回falseString.fromCharCode(17)==null
返回falseString.fromCharCode(17)==undefined
- 另外,为了确定,我做了
,它也返回falseString.fromCharCode(17)==new String()
String.fromCharCode(17)==“
将返回true
。但它返回false
。为什么?
String.fromCharCode(17)
返回设备控件1,该控件似乎是不可打印的字符。该条件失败的原因是它不是空字符串
String.fromCharCode(17)==String.fromCharCode(17)
将在我尝试时返回true
,它显示”
(非打印字符),因此,它不是空字符串。请参见下图以获取证明:
这就是为什么String.fromCharCode(17)=''
将返回false。forString.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(退格)呢?这就是为什么这个字体集不包括那个字形。