一、HTML、CSS

1.1 HTML常见面试题

  • 如何理解HTML语义化

1.让人更容易理解代码(增加了代码的可读性)
2.让搜索引擎更容易解析代码(SEO优化)
3.特定的标签做特定的事

  • 默认情况下,那些标签是块级元素,哪些是行内元素?

1.display:block/table,有div p ul ol h1-h5
2.display:inline-block/inline,有span input button img

1.2 CSS—布局

  • 盒子模型宽度如何计算
    搞定大厂前端一面第二弹(二)

1.答案:122px
2.offsetWidth=content+border+padding,不包含margin

  • margin总纵向重叠的问题
    搞定大厂前端一面第二弹(二)

1.相邻元素的margin-top和margin-bottom会发生重叠
2.空白内容的也会重叠
3.答案:15px

  • margin负值的问题

1.margin-left和margin-top设置负值,元素本身分别会向左和向上移动相应距离
2.margin-right设置负值,右侧元素向左移动,自身不受影响
3.margin-bottom设置负值,底侧元素向上移动,自身不受影响

  • BFC理解和应用

Block Format Context,块级格式化上下文
一块独立的渲染区域,内部元素的渲染不会影响边界以外的元素

  • 形成BFC的条件

float不是none
position是fixed和absolute
overflow不是visible
display是flex inline-block

  • 圣杯布局和双飞翼布局的目的

三栏布局,中间内容最先加载(内容最重要)
两侧内容固定,中间自适应
一般用于PC端网页

  • 圣杯布局和双飞翼布局技术总结

使用float布局
两侧使用margin负值,以便和中间内容横向重叠
防止中间内容被覆盖,一个用margin一个用padding

  • 圣杯布局

搞定大厂前端一面第二弹(二)

搞定大厂前端一面第二弹(二)
搞定大厂前端一面第二弹(二)

  • 双飞翼布局
    搞定大厂前端一面第二弹(二)
    搞定大厂前端一面第二弹(二)
    搞定大厂前端一面第二弹(二)
  • 手写clearfix
    搞定大厂前端一面第二弹(二)

2.3 CSS—定位

  • absolute和relative分别依据什么定位?

absolute以及上一级定位元素
relative依据自身位置

  • 居中对齐有哪些实践方式?

垂直居中:
inline元素:line-height等于height的值
absulote元素:top:50%;margin-top:-高的一半
absulote元素:transform:translate(-50%,-50%)top:50%; left:50%
absulote元素:top right bottom left 全都等于0 margin;auto
水平居中:
inline元素:text-align:center
block元素:margin:0 auto;
absolute元素:left:50%;margin-left:-宽的一半

2.4 CSS—图文样式

  • line-height的继承问题
    搞定大厂前端一面第二弹(二)

答案:40px
写具体数值,如30px,则继承该值
写比例,如2/1.5,则继承该比例
写百分比,如200%,则继承计算出来的值

2.5 CSS—响应式

  • rem是什么

rem是一个长度单位
px绝对长度单位,最常用
em相对长度单位,相对于父元素
rem相对长度单位,相对于根元素,常用于响应式布局

  • 如何实现响应式

media-query,根据屏幕宽度设置font-size
rem基于根元素长度单位

  • rem的弊端:阶梯性
    搞定大厂前端一面第二弹(二)
  • 网页视口尺寸

window.screen.height 屏幕高度
window.innerHeight 视口高度
document.body.clientHeight body高度

  • vh vw

vh 网页视口高度的百分之一
vw 网页视口宽度的百分之一
vmax取两者最大值
vmin 取两者最小值

二、变量类型和计算

2.1 题目

  • typeof能判断哪些数据类型
  • 何时使用三等何时使用==
  • 值类型和引用类型的区别
  • 手写深拷贝

2.2 值类型

搞定大厂前端一面第二弹(二)
搞定大厂前端一面第二弹(二)
搞定大厂前端一面第二弹(二)

2.3 引用类型

搞定大厂前端一面第二弹(二)
搞定大厂前端一面第二弹(二)
搞定大厂前端一面第二弹(二)

2.4 字符串拼接

搞定大厂前端一面第二弹(二)

2.5 ==运算符

搞定大厂前端一面第二弹(二)
搞定大厂前端一面第二弹(二)

2.6 if语句和逻辑运算

  • turly变量:!!a=true的变量
  • flasely变量:!!a=flase的变量
    搞定大厂前端一面第二弹(二)
    搞定大厂前端一面第二弹(二)
    搞定大厂前端一面第二弹(二)

2.7 手写深拷贝

搞定大厂前端一面第二弹(二)

三、原型和原型链

3.1 问题

  • 如何准确判断一个变量是不是数组
  • 手写一个简易的JQuery,考虑插件和扩展性
  • class的原型本质,怎么理解

3.2 class

搞定大厂前端一面第二弹(二)

3.3 继承

搞定大厂前端一面第二弹(二)
搞定大厂前端一面第二弹(二)

3.4 原型

  • 每个class都有显示原型
  • 每个实例都有隐式原型_proto_
  • 实例都有隐式原型_proto_指向class的prototype

搞定大厂前端一面第二弹(二)

3.5 基于原型的执行规则

  • 获取属性或执行方法时,先在本身找
  • 如果找不到再去_proto_找
  • 一层一层向上找直至object

3.6 原型链

搞定大厂前端一面第二弹(二)

3.7 手写bind函数

搞定大厂前端一面第二弹(二)

3.8 手写一个简易的JQuery,考虑插件和扩展性

搞定大厂前端一面第二弹(二)
搞定大厂前端一面第二弹(二)

四、作用域和闭包

4.1 题目

  • this的不同应用场景如何取值
  • 实际开发中,闭包的应用场景?以及什么是闭包?

4.2 作用域

  • 全局作用域
  • 函数作用域
  • 块级作用域(ES6新增)
    搞定大厂前端一面第二弹(二)

4.3 自由变量

  • 一个变量在当前作用域没有定义,但被使用了
  • 向上级作用域一层一层的寻找,直至找到
  • 如果全局作用都没有找到,则会报xxx is notb defined

4.4 闭包

  • 作用域应用的特殊情况

函数作为参数被传递
函数作为返回值被传递
搞定大厂前端一面第二弹(二)
搞定大厂前端一面第二弹(二)

  • 自由变量的查找,是在函数定义的地方,向上一级作用域查找,不是在执行的地方

4.5 this

  • 作为普通函数
  • 使用apply call bind
  • 作为 对象方法被调用
  • 在class中调用
  • 箭头函数:永远取上级this的值
  • 注意:this取什么值是在执行的时候确定的,不是在定义的时候确定的
    搞定大厂前端一面第二弹(二)
    搞定大厂前端一面第二弹(二)
    搞定大厂前端一面第二弹(二)

4.6 实际开发中,闭包的应用场景

  • 隐藏数据

如做一个简单的cache工具
搞定大厂前端一面第二弹(二)

相关文章:

  • 2022-01-09
  • 2022-02-08
  • 2022-02-24
  • 2022-12-23
  • 2022-12-23
  • 2022-01-04
  • 2021-10-19
猜你喜欢
  • 2021-08-04
  • 2021-07-23
  • 2021-12-20
  • 2021-08-20
  • 2021-11-05
  • 2021-07-21
  • 2021-07-22
相关资源
相似解决方案