javascript数组反转

    <script type="text/javascript">
            var arr=["我","是","帅哥"];
            var newArr=[];
            for (var i = arr.length-1; i >=0; i--) {
                newArr[newArr.length]=arr[i]
            }
            console.log(arr)
            console.log(newArr)
        script>


请教一下各位,按我的理解,以下代码为什么不能这样写,为什么运行的结果是错误的?

    <script type="text/javascript">
            var arr=["我","是","帅哥"];
            var newArr=[];
            for (var i = arr.length-1; i >=0; i--) {
                         forvar j=0;j<=arr.length;j++){
                         newArr[j]=arr[i]
//这里不是应该将arr[3]的下标内容帅哥赋给newArr[0]接受帅哥内容吗?
}
                
            }
            console.log(arr)
            console.log(newArr)
        script>

1.你是不是用了中文符号
2.代码中的变量newArr是一个空数组,当第二个for循环执行时,newArr数组中的每一个元素都会被赋值为arr[i],因此最终newArr数组中的所有元素都是arr[0],即"我"。


    <script type="text/javascript">
            var arr=["我","是","帅哥"];
            var newArr=[];
            for (var i = arr.length-1; i >=0; i--) { // 循环数为 2,1,0
                newArr[newArr.length]=arr[i]   // newArr[2,1,0] == arr[0,1,2] 完成逆转
            }
            console.log(arr)
            console.log(newArr)
        </script>

    <script type="text/javascript">
            var arr=["我","是","帅哥"];
            var newArr=[];
            for (var i = arr.length-1; i >=0; i--) {
                         forvar j=0;j<=arr.length;j++){  // i 为 2,1,0时,j 分别为 0,1,2,即,三个数都等于arr当前循环锁指向的值
                         newArr[j]=arr[i]
//这里不是应该将arr[3]的下标内容帅哥赋给newArr[0]接受帅哥内容吗?
}
                
            }
            console.log(arr)
            console.log(newArr)
        </script>