面试题(9/14)

168 阅读5分钟

1.  position 的取值? (blog.csdn.net/yuxuan89814…

static : 默认

relative: 相对

absolute:  绝对

fixed: 固定

2.  为什么要清除浮动?

www.divcss5.com/rumen/r5577…

浮动本质是用来做一些文字混排效果的,但是被我们拿来做布局用,则会有很多的问题出现。由于浮动元素不再占用原文档流的位置,所以它会对后面的元素排版产生影响,为了解决这些问题,此时就需要在该元素中清除浮动

3, tcp/ udp 的区别

  • 1、连接方面bai区别 TCP面向连接du(如打电话要先拨号建立连接zhi)。 UDP是无连接的,即发送数据dao之前不需要建立连接。
  • 2、安全方面的区别 TCP提供可靠的服务,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达。 UDP尽最大努力交付,即不保证可靠交付。
  • 3、传输效率的区别 TCP传输效率相对较低。 UDP传输效率高,适用于对高速传输和实时性有较高的通信或广播通信。
  • 4、连接对象数量的区别 TCP连接只能是点到点、一对一的。 UDP支持一对一,一对多,多对一和多对多的交互通信。

4,浏览器渲染过程(重绘 和 回流)

srtian96.gitee.io/blog/2018/0…

5,浏览器缓存

6. js事件处理机制

zhuanlan.zhihu.com/p/73091706

7, js 数组的常用api

www.cnblogs.com/fengyuexuan…

8. js中 判断数据类型的几种方法

typeof与instanceof区别(www.jianshu.com/p/4ff233222…

www.jb51.net/article/102…

9.var let const区别?

zhuanlan.zhihu.com/p/104035051

10, null 和 undefined 的区别?

null表示"没有对象",即该处不应该有值。
undefined表示"缺少值",就是此处应该有一个值,但是还没有定义

11,从Object.definedProperty中看vue的双向数据的绑定

www.cnblogs.com/leaf930814/…

12, for in的缺点

for-in用来循环对象中的属性,但是通过for-in循环输出的属性名的顺序是不可测的。具体来说,所有属性都会被返回一次,但返回的先后次序可能会因浏览器而异。

不输出输出对象的toString,valueOf等内置属性(或称内置成员,隐藏属性和预定义属性)。即for in用来列举对象的显示成员(自定义成员)。

13,事件循环知道吗?

同步和异步任务分别进入不同的执行环境,同步的进入主线程,即主执行栈,异步的进入任务队列。主线程内的任务执行完毕为空,会去任务队列读取对应的任务,推入主线程执行。 上述过程的不断重复就是我们说的 Event Loop (事件循环)。

记住,JavaScript 是一门单线程语言,异步操作都是放到事件循环队列里面,等待主执行栈来执行的,并没有专门的异步执行线程。

14,手指点击可以触控的屏幕时,是什么事件?

**touchstart:**触摸开始的时候触发

**touchmove:**手指在屏幕上滑动的时候触发

**touchend:**触摸结束的时候触发

而每个触摸事件都包括了三个触摸列表,每个列表里包含了对应的一系列触摸点(用来实现多点触控):

**touches:**当前位于屏幕上的所有手指的列表。

**targetTouches:**位于当前DOM元素上手指的列表。

**changedTouches:**涉及当前事件手指的列表。

每个触摸点由包含了如下触摸信息(常用):

**identifier:**一个数值,唯一标识触摸会话(touch session)中的当前手指。一般为从0开始的流水号(android4.1,uc)

**target:**DOM元素,是动作所针对的目标。

pageX/pageX/clientX/clientY/screenX/screenY:一个数值,动作在屏幕上发生的位置(page包含滚动距离,client不包含滚动距离,screen则以屏幕为基准)。 

15, DOM事件中target和currentTarget的区别?

  • target是事件触发的真实元素

  • currentTarget是事件绑定的元素

  • 事件处理函数中的this指向是中为currentTarget

  • currentTargettarget,有时候是同一个元素,有时候不是同一个元素 (因为事件冒泡)

    • 当事件是子元素触发时,currentTarget为绑定事件的元素,target为子元素
    • 当事件是元素自身触发时,currentTargettarget为同一个元素。

16,内存泄漏的原因和场景?(www.cnblogs.com/dasusu/p/12…

虽然前端有垃圾回收机制,但当某块无用的内存,却无法被垃圾回收机制认为是垃圾时,也就发生内存泄漏了

1. 意外的全局变量

2. 遗忘的定时器

3. 使用不当的闭包

4. 遗漏的 DOM 元素

5. 网络回调

17. 图片懒加载?

当访问一个页面的时候,先把img元素或是其他元素的背景图片路径替换成一张大小为1*1px图片的路径(这样就只需请求一次),只有当图片出现在浏览器的可视区域内时,才设置图片正真的路径,让图片显示出来。这就是图片懒加载。

核心在于:判断图片是否出现在可视区域,出现在可视区域就将设置其真实 src

www.cnblogs.com/flyromance/…

www.cnblogs.com/luyangdong/…

18,给定一个元素获取它相对于视图窗口的坐标

clientWidth、offsetWidth

offsetTop、offsetLeft (元素相对于父元素的top,left)

//获取元素的纵坐标(相对于窗口)
function getTop(e){
  var offset=e.offsetTop;
  if(e.offsetParent!=null) offset+=getTop(e.offsetParent);
  return offset;
}
//获取元素的横坐标(相对于窗口)
function getLeft(e){
  var offset=e.offsetLeft;
  if(e.offsetParent!=null) offset+=getLeft(e.offsetParent);
  return offset;
}

www.jb51.net/article/557…

19,普通函数和构造函数的区别

1、构造函数也是一个普通函数,创建方式和普通函数一样,但构造函数习惯上首字母大写

2、构造函数和普通函数的区别在于:调用方式不一样

3、普通函数的调用方式:直接调用 person();

……

www.jianshu.com/p/cd03055e7…