一个简单JS编程问题

//翻转数组
function fn2(){
            let x ;
            console.log(arguments);
            for(let i = 0; i <= arguments.length-1; i++){
                for(let j = 0; j <= arguments.length-i-1; j++){
                    x = arguments[j];
                    arguments[j] = arguments[j+1];
                    arguments[j+1] = x;  
                }
            }
            for(let z = 0; z <= arguments.length-1; z++){
                console.log(arguments[z]);
            }
            console.log(arguments);
        }
        fn2(4,5,6,8,9,10,110);
问题

使用arguments最后得到的arguments是
Arguments(7) [undefined, 110, 10, 9, 8, 6, 5, 4, callee: ƒ, Symbol(Symbol.iterator): ƒ],
请问大佬们这个undefined是哪里来的。

因为在第一次会出现arguments[6]与arguments[7]的替换 ,而arguments[7]并没有实际的数值,所以是undefined,所以在你的循环并排序之后,被排到第一位

你这个叫翻转数组?怎么有点儿像冒泡排序没加判断
翻转数组一次循环就够了