数据结构与算法
这一块在笔试、面试的代码题中考核较多,其中常考的数据结构主要有:数组、链表、队列、栈、Set、Map、哈希表等,不同数据结构有不同的方法以及储存原理,这些算是技术岗的必备知识。算法部分主要分为两大块,排序算法与一些其他算法题。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
排序算法根据考频高低主要有:快速排序、归并排序、堆排序、冒泡排序、插入排序、选择排序、希尔排序、桶排序、基数排序、Timsort这十种,这类考核点要么是算法的时间、空间复杂度、稳定度,要么是直接手写代码,故在理解算法原理的同时,对JS语言版的排序算法代码也要加强记忆。
- 二叉树层序遍历
- B 树的特性,B 树和 B+树的区别
- 尾递归
- 如何写一个大数阶乘?递归的方法会出现什么问题?
- 把多维数组变成一维数组的方法
- 知道的排序算法 说一下冒泡快排的原理
- Heap 排序方法的原理?复杂度?
- 几种常见的排序算法,手写
- 数组的去重,尽可能写出多个方法
- 如果有一个大的数组,都是整型,怎么找出最大的前 10 个数
- 知道数据结构里面的常见的数据结构
- 找出数组中第 k 大的数组出现多少次,比如数组【1,2, 4,4,3,5】第二大的数字是 4,出现两次,所以返回 2
- 合并两个有序数组
- 给一个数,去一个已经排好序的数组中寻找这个数的位 置(通过快速查找,二分查找)
前后端面试题库 (面试必备) 推荐:★★★★★
地址:前端面试题库
什么是三元运算符?
三元运算符在JavaScript中的的表现形式是
?,它的作用是“计算在它之前传递的条件表达式,并根据条件表达式的结果判断应该执行问号(?)后的哪一段代码”。(?)后接两端不同情况下该执行的代码,代码之前用冒号分隔,
:。
它的语法如下所示:
条件表达式 ? 结果为true执行的代码 : 结果为false执行的代码;
复制代码
当我们的条件表达式运行结果为true时,执行(:)冒号前的代码,当条件表达式结果为false时,执行(:)冒号后面的代码。
如何使用三元运算符?
当我们需要根据某一个表达式的运算结果来决定我们的接下来要执行的代码时,我们就可以使用三元运算符。
//const student = false; //第一种情况为student==false,执行Welcome, Guest!const student = 'zayyo'; //第二种情况为true,执行Welcome, zayyo!const welcomeStudent = student ? `Welcome, ${student}!` : "Welcome, Guest!";
console.log(welcomeStudent); // Welcome, zayyo!复制代码
在上面的代码中,我们把studnent当做布尔条件去求值,当student为true时,我们把(:)冒号前的值赋给welcomeStudent,当student的值为false时,我们把(:)冒号后的值赋给welcomeStudent。所以三元运算符又被称为条件运算符,只有在满足条件的情况下才会执行正确的代码
在JavaScript中false、0、“”、null、undefined、NaN都被判定为假值(等同于false),除此之外的其他值都被判定为真值(等同于true)。
那什么时候使用三元运算符呢?
我们常见的三元运算符例子的都只有两种结果,要么为true,要么为false。与之类似的代码结构就只有我们的if/else选择结构,我们可以用三元运算符来代替if/else的使用,用来增加代码的可读性和简洁性
例子:
// 使用if/else
{
constwelcomeStudent = student => {
if (student) {
return`Welcome, ${student.name}!`;
} else {
return"Welcome, Guest!";
};
};
console.log(welcomeStudent({ name: 'zayyo' })); // Welcome, zayyo!console.log(welcomeStudent()); // Welcome, Guest!
}
// 使用三元运算符
{
constwelcomeStudent = student => student ? `Welcome, ${student.name}!` : "Welcome, Guest!";
console.log(welcomeStudent({ name: 'zayyo' })); // Welcome, zayyo!console.log(welcomeStudent()); // Welcome, Guest!
}
复制代码
在上面的例子中,我们不难看出三元运算符有着更好的可读性和简洁性
链式三元运算符
那如果我们遇见更加复杂的代码,如if/else if/else或者是switch的结果我们如何去使用三元运算符去优化代码呢?
我们可以使用链式三元运算符去实现
Vue
-
什么是MVVM?
-
mvvm和mvc区别?它和其它框架(jquery)的区别是什么?哪些场景适合?
-
组件之间的传值?
-
Vue 双向绑定原理
-
描述下 vue 从初始化页面–修改数据–刷新页面 UI 的过程?
-
虚拟 DOM 实现原理
-
Vue 中 key 值的作用?
-
Vue 的生命周期
-
Vue 组件间通信有哪些方式?
-
vue 中怎么重置 data?
-
组件中写 name 选项有什么作用?
-
Vue 的 nextTick 的原理是什么?
-
Vuex 有哪几种属性?
s://img-blog.csdnimg.cn/img_convert/7ae8b7d1bb444279fc6aa23d42173794.png)