前端提高篇(十一)JS进阶8函数参数及arguments,前端开发面试题及答案

24 阅读3分钟

最后

一个好的心态和一个坚持的心很重要,很多冲着高薪的人想学习前端,但是能学到最后的没有几个,遇到困难就放弃了,这种人到处都是,就是因为有的东西难,所以他的回报才很大,我们评判一个前端开发者是什么水平,就是他解决问题的能力有多强。

分享一些前端面试题以及学习路线给大家

开源分享:docs.qq.com/doc/DSmRnRG…

arguments.callee.length:

当不是匿名函数时

function add(a,b,c,d,e){

console.log('实参个数: '+ arguments.length + ' 第一个实参: ' + arguments[0]);

console.log('形参个数:' + add.length + ' 第一个形参:'+a + ' 第二个形参:'+b);

}

add(1,2,3);

运行效果:

在这里插入图片描述

当函数是匿名函数时

当函数是匿名函数时,不能通过函数名.length获取形参个数,这时就需要通过arguments和callee来获取,callee指向函数自身

var x = function(a,b,c,d,e,f){

console.log('实参个数: '+ arguments.length + ' 第一个实参: ' + arguments[0]);

console.log('形参个数:' + arguments.callee.length + ' 第一个形参:'+a + ' 第二个形参:'+b);

}

add(1,2,3);

运行效果:

在这里插入图片描述

arguments.callee用于匿名函数递归(自调用):

不是匿名函数时:

function add(a,b,c,d,e,f){

console.log('实参个数: '+ arguments.length + ' 第一个实参: ' + arguments[0]);

console.log('形参个数:' + arguments.callee.length + ' 第一个形参:'+a + ' 第二个形参:'+b);

if (a == 1){

return add(5,6);

}else{

return a+b;

}

}

console.log(add(1,2));

运行效果:

在这里插入图片描述

是匿名函数时:

var x = function(a,b,c,d,e,f){

console.log('实参个数: '+ arguments.length + ' 第一个实参: ' + arguments[0]);

console.log('形参个数:' + arguments.callee.length + ' 第一个形参:'+a + ' 第二个形参:'+b);

if (a == 1){

return arguments.callee(5,6);

}else{

return a+b;

}

}

console.log(x(1,2));

运行不报错,效果一致

实现任意参数求和

function add(){

var res = 0;

for (var i = 0;i < arguments.length; i++){

res += arguments[i];

}

return res;

}

console.log(add(1,2,3,4,5));

console.log(add(1,2));

ES6

  • 列举常用的ES6特性:

  • 箭头函数需要注意哪些地方?

  • let、const、var

  • 拓展:var方式定义的变量有什么样的bug?

  • Set数据结构

  • 拓展:数组去重的方法

  • 箭头函数this的指向。

  • 手写ES6 class继承。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

微信小程序

  • 简单描述一下微信小程序的相关文件类型?

  • 你是怎么封装微信小程序的数据请求?

  • 有哪些参数传值的方法?

  • 你使用过哪些方法,来提高微信小程序的应用速度?

  • 小程序和原生App哪个好?

  • 简述微信小程序原理?

  • 分析微信小程序的优劣势

  • 怎么解决小程序的异步请求问题?