面试题(一)

1.让一个div元素水平、垂直居中有几种方法?

  • flex
  • position absoloute + transform
  • position absoloute + margin
  • table
  • grid

2.CSS选择器的权重和优先级

答:内联样式 权重为1000,;ID选择器,权重值为100;类、伪类和属性选择器,权重值为10;元素选择器和伪元素选择器,权重值为1。

3.重绘和回流


重绘:指的是页面中的元素不脱离文档流,而简单的进行样式的变化,比如修改颜色、背景等,浏览器重新绘制样式。

回流:指的是处于文档流中DOM的尺寸大小、位置、某些属性发生变化时,导致浏览器重新渲染部分或者全部文档的情况。

相比之下,回流要比重绘消耗的性能开支更大。

4.箭头函数和普通函数有什么区别?


  1. 箭头函数没有自己的this
  2. 箭头函数继承来的this指向永远不会改变
  3. call()、apply()、bind()等方法不能改变箭头函数的this指向
  4. 箭头函数没有自己的arguments
  5. 箭头函数没有prototype
  6. 箭头函数比普通函数更加简介
  7. 箭头函数不能作为构造函数使用
  8. 箭头函数不能用作Generator函数,不能使用yeild关键字
5.new操作符做了什么事情?

在内存中创建了一个新对象,这个新对象内部的[[prototype]]特性被赋值为构造函数的prototype属性。构造函数内部的this被赋值为这个新对象(this指向了新对象),执行构造函数内部的代码(给新对象增加属性),如果构造函数返回非空对象,则返回该对象;否则,返回刚创建的新对象。

6.map()和foreach()有什么区别?

map()方法会返回一个新数组,该数组的元素是原始数组中每个元素执行回调函数后的返回值;map()方法不会改变原始数组,它会返回一个新的数组;map()方法的回调函数接受3个参数,当前元素、当前元素的索引值和原始数组。

foreach()方法不会返回一个新的数组,它只是对原始数组中每个元素执行回调函数,是否改变原始数组取决于原始数组中的每个元素是基础类型还是引用类型。


7.localStorage、sessionStorage和cookies有什么区别?

8.



内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:/ganhuo/198.html