为什么`mystring [0]`在IE中没有返回任何内容?

时间:2012-04-19 19:46:41

标签: javascript internet-explorer

所以在我的javascript中我有以下代码:

    var wholeHash = window.location.hash.substring(1);
    var data = new Object();

    // Remove the bang or slash if one appears at the beginning
    if (wholeHash[0] == '!') { wholeHash = wholeHash.substring(1); }
    if (wholeHash[0] == '/') { wholeHash = wholeHash.substring(1); }

即将运行时,wholeHash的值为"/search/&&stype=quick"。但是,wholeHash[0]不返回任何内容,导致wholeHash[0] == '!'为false。这只是IE中的情况。

这是为什么?我知道我可以改为使用startswith,但我一般都很有兴趣为什么IE不能获得字符串的单个字符而其他浏览器可以。

3 个答案:

答案 0 :(得分:6)

因为索引到具有数组样式索引的字符串是新的,并且旧版本的IE缺少此功能。相反,如果您需要在8之前支持IE,则需要使用mystring.charAt(0)

答案 1 :(得分:2)

前一段时间我遇到过类似的问题。在我的情况下,它与在Intranet页面上自动打开的兼容性视图有关。检查this question

答案 2 :(得分:1)

从字符串中获取字符的“正确”方法是使用mystring.charAt(x)

但是,您可以使用mystring.split("")将字符串分解为数组。

由你喜欢的。