Internet Explorer中的JavaScript数组索引“未定义”

3 javascript internet-explorer google-chrome

以下脚本会为字符串中的每个字符将未定义的内容打印到控制台,但可以在Chrome中正常运行。

<script>
function main()
{
    var x = "hello world";
    for ( var i = 0; i < x.length; ++i ) {
        console.log( x[i] );
    }
}
main();
</script>
Run Code Online (Sandbox Code Playgroud)

为了使它在所有浏览器中都能正常工作,我是否需要对数组做一些事情?

Sal*_*n A 5

[]某些浏览器支持,但还不是全部:

类数组字符访问(上述第二种方式)不是ECMAScript 3的一部分。它是JavaScript和ECMAScript 5的功能。

为了获得最大的兼容性,请String.charAt()改用:

<script>
function main()
{
    var x = "hello world";
    for ( var i = 0; i < x.length; ++i ) {
        console.log( x.charAt(i) );
    }
}
main();
</script>
Run Code Online (Sandbox Code Playgroud)