Javascript 为什么不同的浏览器会生成不同的字符串?
我通过连接前100个unicode字符来构造一个字符串,如下所示Javascript 为什么不同的浏览器会生成不同的字符串?,javascript,string,Javascript,String,我通过连接前100个unicode字符来构造一个字符串,如下所示 var str = ""; for (var i = 0; i < 100; i++) { str += String.fromCharCode(i); } var-str=”“; 对于(变量i=0;i
var str = "";
for (var i = 0; i < 100; i++) {
str += String.fromCharCode(i);
}
var-str=”“;
对于(变量i=0;i<100;i++){
str+=String.fromCharCode(i);
}
在Firefox和Chrome中,str
具有我期望的值,即
!“#$%&'()*+,-./0123456789:;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^ ` abc
另一方面,Internet Explorer和Opera返回空字符串
是什么导致了这种行为上的差异?第一个Unicode代码点表示NUL字符,这可能会使一些浏览器认为它们到达了字符串的末尾(遵循C约定).如果您使用alert,您可以清楚地看到某些字符显示为块,原因很简单,因为没有可打印的内容,而且我怀疑IE和Opera都不能很好地处理您的请求,因为给定代码中不存在字符。