每日3题1下面代码执行后,控制台输出什么?//下面代码执行后,浏览器控制台输出什么vararr=[0,1,2];arr[10]=10;varnewArr=arr.filter((x)=>x===未定义);控制台日志(newArr);2下面的代码执行后,控制台输出什么?//下面的代码执行后,控制台输出什么?constobj={2:3,3:4,length:2,push:Array.prototype.push,};obj.push(1);console.log(obj);3以下代码执行后,是什么控制台中的输出?//下面的代码执行后,控制台输出什么letx;try{thrownewError();}catch(x){x=1;console.log(x);}console.log(x);公众号【今天写个bug】更多前端面试题答案与分析1//答案:[]//考察filter方法vararr=[0,1,2];arr[10]=10;varnewArr=arr.filter((x)=>x===undefined);//传递给filter方法的函数只会在分配的索引上调用,不会用于那些已经删除或从未分配过的会被调用。//所以最后没有值通过测试console.log(newArr);2//Answer:{'2':1,'3':4,length:3,push:[Function:push]}//检查push方法//push方法可以应用于类数组对象//push方法根据length属性决定从哪里开始插入给定的值constobj={2:3,3:4,length:2,push:Array.prototype.push,};obj.push(1);//obj.length=2,所以push在索引2处插入,即obj[2]=1console.log(obj);3//答案:1undefined//检查catch和scope//catch块指定一个标识符(x下面)保存由throw语句指定的值。//catch块是唯一的,因为当进入catch块时,JavaScript会创建此标识符并将其添加到当前范围;//该标识符仅在执行catch块时存在;执行catch块后,标识符字符不再可用。letx;try{thrownewError();}catch(x){//x仅在catch块中可用x=1;控制台日志(x);//输出1}console.log(x);//x从不赋值,输出undefined
