前端面试精选
::: hljs-center
:::
一、 基础知识(HTML、CSS、JS)
基础中html是很少问到的,大部分是css和js的问题
1、 CSS相关
1) css选择符有哪些(记住前几个即可)
➢ id 选择器( #myid) ➢ 类选择器(.myclassname) ➢ 标签选择器(div,h1,p) ,用逗号分割,可多个 ➢ 相邻选择器(h1+p) ,兄弟节点 ➢ 子选择器(ul>li) , ➢ 后代选择器(lia) ➢ 通配符选择器( * ) ➢ 属性选择器(a[rel=“external”]) ,jQuery常用 ➢ 伪类选择器(a:hover,li:nth-child)
2) flex布局参考=》https://pnkx.top/article?articleId=3484
3) 定位详解=》https://blog.csdn.net/weixin_38055381/article/details/81558288
2、 JavaScript相关
1) 深拷贝和浅拷贝
假设B复制了A,修改A的时候,看B是否发生变化: 如果B跟着也变了,说明是浅拷贝,拿人手短!(修改堆内存中的同一个值) 如果B没有改变,说明是深拷贝,自食其力!(修改堆内存中的不同的值)
// 浅拷贝
let person = {
name: '张三'
};
let personCopy = person;
personCopy.name = '李四';
// 此时person的name也变成了李四
// 深拷贝
let person = {
name: '张三'
};
let personCopy = JSON.parse(JSON.stringify(person));
personCopy.name = '李四';
// 此时person的name还是张三
// 将JSON对象转成JSON字符串
JSON.stringify()
// 将JSON字符串转成JSON对象
JSON.parse()
js
2) js循环遍历方式=》https://pnkx.top/article?articleId=3486
3) 数组和字符串的常用api(记住几个即可)
数组:https://www.w3school.com.cn/jsref/jsref_obj_array.asp 字符串:https://www.w3school.com.cn/jsref/jsref_obj_string.asp
4) ES6相关=》https://zhuanlan.zhihu.com/p/102442557
ECMAScript5,即ES5,是ECMAScript的第五次修订,于2009年完成标准化ECMAScript6,即ES6,是ECMAScript的第六次修订,于2015年完成,也称ES2015ES6是继ES5之后的一次改进,相对于ES5更加简洁,提高了开发效率ES6新增的一些特性: ➢ let声明变量和const声明常量,两个都有块级作用域ES5中是没有块级作用域的,并且var有变量提升,在let中,使用的变量一定要进行声明 ➢ 箭头函数ES6中的函数定义不再使用关键字function(),而是利用了()=>来进行定义 ➢ 模板字符串模板字符串是增强版的字符串,用反引号(`)标识,可以当作普通字符串使用,也可以用来定义多行字符串 ➢ 解构赋值ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值 ➢ for of循环for…of循环可以遍历数组、Set和Map结构、某些类似数组的对象、对象,以及字符串 ➢ import、export导入导出ES6标准中,Js原生支持模块(module)。将JS代码分割成不同功能的小块进行模块化,将不同功能的代码分别写在不同文件中,各模块只需导出公共接口部分,然后通过模块的导入的方式可以在其他地方使用 ➢ set数据结构Set数据结构,类似数组。所有的数据都是唯一的,没有重复的值。它本身是一个构造函数 ➢ … 展开运算符可以将数组或对象里面的值展开;还可以将多个值收集为一个变量
推荐阅读
1、Vue项目代码规范 2、.gitignore 文件常用配置 3、记录一下Vue中父子组件数据双向绑定 4、整理一下JavaScript字符串的截取以及数组的截取 5、JavaScript的常用遍历方法整理
关注贴吧:pei你看雪吧