文末
js前端的重头戏,值得花大部分时间学习。
推荐通过书籍学习,《 JavaScript 高级程序设计(第 4 版)》你值得拥有。整本书内容质量都很高,尤其是前十章语言基础部分,建议多读几遍。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
另外,大推一个网上教程 现代 JavaScript 教程 ,文章深入浅出,很容易理解,上面的内容几乎都是重点,而且充分发挥了网上教程的时效性和资料链接。
学习资料在精不在多,二者结合,定能构建你的 JavaScript 知识体系。
面试本质也是考试,面试题就起到很好的考纲作用。想要取得优秀的面试成绩,刷面试题是必须的,除非你样样精通。
这是288页的前端面试题
/**arguments关键字作用:获取函数的所有实参
-
本质:当前函数的内置对象,每一个函数都有一个arguments对象,作用是存储调用者传递过来的所有实参
-
特点:1.只能在函数体中使用,函数外部使用会报错
-
2.是一个特殊的数组(伪数组)
-
3.arguments伪数组的元素与形参一一对应
-
说明:1.可以用函数变得更加灵活
-
2.arguments是一个伪数组
-
* 伪数组:只有数组的下标、元素、长度,没有数组其他方法
*/
/*一:argument用法演示/
//1.这行代码会报错,因为函数外部无法使用arguments
// console.log ( arguments );
//2.定义一个无参的函数,作用是打印该函数的所有参数
function fn ( num1 ) {
//(1)arguemnt保存的是所有的实参的值
// console.log ( num1 );
// console.log ( arguments );//arguments只能在函数内部使用
//(2)arguemnt与形参是一一对应的
//修改了形参,arguemnt也会修改
num1 = 100;
console.log ( arguments );//修改了形参,arguments也会修改
//反之,修改了argeumnts,形参也会变化
}
fn(10,20);//实参与形参一一对应
/** 二:arguments实际用途展示:求不确定数量的参数的和 */
function add() {
//定义变量保留数据
let sum = 0;
console.log(arguments);
//有参数:遍历数组统计结果
for (let i = 0; i < arguments.length; i++) {
// 防止字符串和其他类型乱入,需要做安全判定
let value = arguments[i];
if (isNaN(value)) {
return false;
}
//说明value肯定是数值了,但是还要保证不是字符串(影响+号运算)
sum += Number(value);
}
return sum;
}
console.log(add());
console.log(add(100));
console.log(add(10,20));
2.回调函数
-
1.什么是回调函数:如果一个函数的参数也是一个函数,那么这个参数函数就叫做回调函数
-
2.为什么要有回调函数?
-
当一个函数调用执行完毕之后,我想执行另一段代码块,也就是调用另一个函数
-
但是有时候可能本函数执行完毕后,根据不同的情况需要调用的函数也不同,那么我们可以使用形参来接收这个函数,然后再调用
-
此时:这个形参函数就称之为回调函数