前端面试精选-基础篇

2022-01-17 13:54:57 浏览数 (1)

前端面试精选

一、 基础知识(HTML、CSS、JS)

基础中html是很少问到的,大部分是css和js的问题

1、 CSS相关

1) css选择符有哪些(记住前几个即可)

➢ id 选择器( #myid)

➢ 类选择器(.myclassname)

➢ 标签选择器(div,h1,p) ,用逗号分割,可多个

➢ 相邻选择器(h1 p) ,兄弟节点

➢ 子选择器(ul>li) ,

➢ 后代选择器(lia)

➢ 通配符选择器( * )

➢ 属性选择器(arel=“external”) ,jQuery常用

➢ 伪类选择器(a:hover,li:nth-child)

2) flex布局参考=》https://cloud.tencent.com/developer/article/1935297
3) 定位详解=》https://blog.csdn.net/weixin_38055381/article/details/81558288

2、 JavaScript相关

1) 深拷贝和浅拷贝

假设B复制了A,修改A的时候,看B是否发生变化:

如果B跟着也变了,说明是浅拷贝,拿人手短!(修改堆内存中的同一个值)

如果B没有改变,说明是深拷贝,自食其力!(修改堆内存中的不同的值)

代码语言:javascript复制
// 浅拷贝
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()
复制
2) js循环遍历方式=》https://cloud.tencent.com/developer/article/1935298
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数据结构,类似数组。所有的数据都是唯一的,没有重复的值。它本身是一个构造函数

➢ … 展开运算符可以将数组或对象里面的值展开;还可以将多个值收集为一个变量

0 人点赞