Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么不同的浏览器会生成不同的字符串?_Javascript_String - Fatal编程技术网

Javascript 为什么不同的浏览器会生成不同的字符串?

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

我通过连接前100个unicode字符来构造一个字符串,如下所示

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都不能很好地处理您的请求,因为给定代码中不存在字符。