数据结构与算法
这一块在笔试、面试的代码题中考核较多,其中常考的数据结构主要有:数组、链表、队列、栈、Set、Map、哈希表等,不同数据结构有不同的方法以及储存原理,这些算是技术岗的必备知识。算法部分主要分为两大块,排序算法与一些其他算法题。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
排序算法根据考频高低主要有:快速排序、归并排序、堆排序、冒泡排序、插入排序、选择排序、希尔排序、桶排序、基数排序、Timsort这十种,这类考核点要么是算法的时间、空间复杂度、稳定度,要么是直接手写代码,故在理解算法原理的同时,对JS语言版的排序算法代码也要加强记忆。
- 二叉树层序遍历
- B 树的特性,B 树和 B+树的区别
- 尾递归
- 如何写一个大数阶乘?递归的方法会出现什么问题?
- 把多维数组变成一维数组的方法
- 知道的排序算法 说一下冒泡快排的原理
- Heap 排序方法的原理?复杂度?
- 几种常见的排序算法,手写
- 数组的去重,尽可能写出多个方法
- 如果有一个大的数组,都是整型,怎么找出最大的前 10 个数
- 知道数据结构里面的常见的数据结构
- 找出数组中第 k 大的数组出现多少次,比如数组【1,2, 4,4,3,5】第二大的数字是 4,出现两次,所以返回 2
- 合并两个有序数组
- 给一个数,去一个已经排好序的数组中寻找这个数的位 置(通过快速查找,二分查找)
2.若 start 与 stop 相等,则该方法返回的就是一个空字符串(即长度为 0 的字符串);
3若 start 比 stop 大,则该方法在提取子串之前会先交换这两个参数;
4.若 start 和 stop 有负数,则会把该参数自动转为0,然后继续进行上述的规则;
5.若 start 和 stop 有正小数,则会把该参数向下取整,然后继续进行上述的规则;
6.若 start 和 stop 有字符串,则会先进行parseInt(),如果转换结果为NaNa,那么就转换为0,其余情况继续进行上述的规则。
示例:
1、
string.substring(4)+“
” //从第5个字符开始截取到字符串的最末尾
2、
string.substring(4,10); // 从第5个字符开始截取到第10个字符
3、
var a = '0123456789’;
a.substring(1,5); // 从第2个字符开始截取到第5个字符 输出结果:”1234"
4、
var a = '0123456789’;
a.substring(1,1); // start 与 stop 相等,输出结果:””
5、
var a = '0123456789’;
a.substring(5,1) ; // start 比 stop 大,但是最后的输出结果还是:”1234"
6、
var a = '0123456789’;
a.substring(5,-1); //start 和 stop 有负数,但是最后的输出结果还是: “1234”
7、
var a = '0123456789’;
a.substring(5,2.4) ; // start 和 stop 有正小数, 但是最后的输出结果是:“234”
8、
var a = '0123456789’;
a.substring(5,’2.4’); // start 和 stop 有字符串, 但是最后的输出结果是: “234”
a.substring(5,’hh’) ; // start 和 stop 有字符串, 但是最后的输出结果是: “234”
二、substr()方法
语法: string.substr(start,length)
定义和用法:
substr() 方法可在字符串中抽取从“开始”下标开始的指定数目的字符。
注意:
substr() 方法不会改变源字符串。
释义:
substr() 的参数指定的是子串的开始位置和长度,因此它可以替代 substring() 和 slice() 来使用。
参数
参数 | 描述 |
start | 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。 |
length | 可选。子串中的字符数。必须是数值。如果省略了此参数,那么返回从 string 的开始位置到结尾的字串。 |
返回值
类型 | 描述 |
String | A new string containing the extracted part of the text |
说明
该方法与substring()最大的区别在于第二个参数是需要截取字符串的长度,而不是位置。
1.substr() 方法返回的子串从 start 处的字符开始(包括)往后截取length长度,如果超过最末端就到最末端结束;
2.start可以取负值,表示从字符串尾部往头部开始数(从右到左,注意是从1开始,比如-1 指字符串中最后一个字符),但截取长度还是从左到右,若超过最末端,则就到最末端结束;
3.若length为负值,则会直接当成0处理,最终返回””;
4.若start或者length为小数,则会截取小数部分;
5.若 start 和 length 有字符串,则会先进行parseInt(),若转换结果为NaNa,则就转换为0,其余情况继续按照上述规则执行。
示例:
1、
str.substr(4,6); // 从第4个字符开始截取6个字符
2、
var str=“Hello world!”;
var n=str.substr(3); //第3个字符开始截取到字符串的最末尾 输出结果:lo world!
3、
var a = '0123456789’;
a.substr(1,5); // 从第1个字符开始截取6个字符, 输出结果:“12345”
a.substr(1,15); //从第1个字符开始截取,只会到最末端,长度写多了也没用, 输出结果:“123456789”
4、
var a = '0123456789’;
a.substr(-4,2); //-4表示从右开始数第4个,就是’6’,然后取2个长度的字符串,就是’67’ ,输出结果:“67”
5、
var a = '0123456789’;
a.substr(4,-2); // length为负值,则会直接当成0处理, 输出结果: “”
6、
var a = '0123456789’;
a.substr(1.2,5.2); // start或者length为小数 , 输出结果:“12345”
7、
var a = '0123456789’;
a.substr(‘aa’,‘5’) ; // start 和 length 有字符串 ,输出结果:“01234”
三、slice()方法
语法: string.slice(start,end)
定义和用法:
slice()方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
注意:
使用 start(包含) 和 end(不包含) 参数来指定字符串提取的部分。
释义:
slice(start,end) 方法用于提取字符串的某个部分(从参数 start 到 end 位置),并以新的字符串返回被提取的部分。类似 substring()。
css
1,盒模型
2,如何实现一个最大的正方形
3,一行水平居中,多行居左
4,水平垂直居中
5,两栏布局,左边固定,右边自适应,左右不重叠
6,如何实现左右等高布局
7,画三角形
8,link @import导入css
9,BFC理解
js
1,判断 js 类型的方式
2,ES5 和 ES6 分别几种方式声明变量
3,闭包的概念?优缺点?
4,浅拷贝和深拷贝
5,数组去重的方法
6,DOM 事件有哪些阶段?谈谈对事件代理的理解
7,js 执行机制、事件循环
8,介绍下 promise.all
9,async 和 await,
10,ES6 的 class 和构造函数的区别
11,transform、translate、transition 分别是什么属性?CSS 中常用的实现动画方式,
12,介绍一下rAF(requestAnimationFrame)
13,javascript 的垃圾回收机制讲一下,
14,对前端性能优化有什么了解?一般都通过那几个方面去优化的?
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
5 和 ES6 分别几种方式声明变量
3,闭包的概念?优缺点?
4,浅拷贝和深拷贝
5,数组去重的方法
6,DOM 事件有哪些阶段?谈谈对事件代理的理解
7,js 执行机制、事件循环
8,介绍下 promise.all
9,async 和 await,
10,ES6 的 class 和构造函数的区别
11,transform、translate、transition 分别是什么属性?CSS 中常用的实现动画方式,
12,介绍一下rAF(requestAnimationFrame)
13,javascript 的垃圾回收机制讲一下,
14,对前端性能优化有什么了解?一般都通过那几个方面去优化的?
[外链图片转存中…(img-1s31P12H-1715185444098)]