乐趣区

关于前端:前端面试题整理

1.css 款式的优先级和优先级如何计算

优先级:
!important > 内联款式 > 内嵌款式或者引入的内部款式文件
内嵌款式或者引入的内部款式文件:通过权重计算优先级 ,权重高的优先级高。如果权重雷同,按加载程序判断,先加载的会被笼罩(就近准则)
选择器优先级:id 选择器 >class 选择器 > 标签 >* 通用选择器 > 继承
权重:

  • id 选择器 100
  • class 选择器 10
  • 标签 1
  • 10 个 class 选择器的权重不会大于 1 个 id 选择器

2. 块级元素和行内元素的区别

  1. 块级元素会独占一行,垂直方向排列;行内元素会和其余行内元素在程度方向排列
  2. 块级元素能够设置宽高和 margin、padding;行内元素不能够设置宽高。行内元素的 margin 和 padding 都是左右无效,高低有效。padding 会扩充元素范畴,对页面布局没有影响

补充:
1.“a 不容许嵌套 div”这种束缚属于语义束缚,与之区别的束缚还有严格束缚,比方“a 不容许嵌套 a”。
严格束缚在所有的浏览器下都不被容许;而语义束缚,浏览器大多会容错解决,生成的文档树可能互相不太一样(因为规范没有定义容错行为)。
2. 行内块级元素:能够设置宽高,默认不换行

3. 实现一个布局:header 固定,content 高度自适应,footer 当高度有余一屏时,固定到底部,否则追随屏幕滚动

外围:设置 content 的最小高度

补充:

  • clientWidth 程度方向 width + 左右 padding
  • offsetWidth 程度方向 width + 左右 padding + 左右 border-width

4.js 中 new 一个对象的过程

  1. 创立一个空对象 obj
  2. 让构造函数中的 this 指向 obj,并执行构造函数
  3. 将 obj 的__proto__指向构造函数的原型对象
  4. 判断构造函数的返回值类型,如果是值类型,则返回 obj; 如果是援用类型,则返回援用类型的对象

5. 对于同步 / 异步的输入值
1. 同步代码
2. 微工作
3. 宏工作
留神点:promise 中 resolve()/reject()前面的代码还会执行。

6.let、const、var 的区别

关键点:作用域,变量晋升,反复申明,初始化,window

1.let 存在块级作用域
2.var 存在变量晋升,let,const 申明的变量在申明之前不可用
3.let,const 不能够反复申明变量
4.const 申明的变量必须通过初始化,并且不能够被再次赋值
5.var 申明的全局变量是全局对象的属性

7.const arr=[[1,2,3],4,[5,[6,[7,8]]]]
写一个函数开展数组

当初几分钟能写出这个函数,面试的时候脑袋空空。多练习吧~ 加油~

退出移动版