前端面试问问题3

93 阅读1分钟
  1. 如何深度克隆一个对象? 使用JSON.parse()和JSON.stringify()对对象进行深拷贝

  2. 数组去重元素有哪些方式?

  • sort可以去重
  • push遍历,将没有的插入临时数组
  • splice增删改,可以删去重复数组
  • 使用es6新增set()方法,调用new set()对数据去重,
  • indexof进行判断,非重复元素添加到新数组
  1. 同步与异步的区别?
  • 同步:指发送一个请求,需要等待返回,才能够发送下一个请求,一个等待过程
  • 异步:指发送一个请求,不需要等待返回,随时再发送下一个请求。
  1. get和post的区别?
  • ★get从服务器上获得数据,而post向服务器上传数据
  • get传输数据是不安全的,数据请求被放在url中,这样一些系统内部消息将会一同显示在用户界面;post请求所有操作对用户都是不可见的。
  • get传输的数据量小,受到url长度限制,而post可以大量传输,上传文件,制作登陆页必须使用post
  • get执行效率比post方法好,get是from表单提交的默认方法
  • Get限制Form表单的数据集的值必须为ASCII字符。而Post支持整个ISO10646字符集
  1. 跨区请求有哪些方案?
  • 野路子出身却好用的方式:JSONP;
  • 官方推荐的跨域资源共享方案:CORS;
  • 使用HTML5 API:postMessage;
  • 抛弃HTTP,使用:Web Sockets;