记录

160 阅读2分钟
  1. 深拷贝和浅拷贝(都只针对引用数据类型): 深拷贝:会另外创建一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象。 浅拷贝:对对象逐个成员依次拷贝,但只复制内存地址,而不复制对象本身,新旧对象成员还是共享同一内存;实现方法,object.assign();concat();slice() 区别: 浅拷贝只复制对象的第一层属性,而深拷贝会对对象的属性进行递归复制
  2. 跨域:遵循同源策略,请求协议,域名,端口号都要保持统一。 跨域解决方案: 1. JSONP方式:只支持get请求,不支持post请求;利用js保存全局变量来传递数据,因为js不受同源策略控制,script标签加载机制。 2. 反向代理ngixn: 3. 浏览器设置配置: 4. vue项目配置跨域: 5. cors方式:
  3. 垂直居中和水平居中: 垂直方向:align; 水平方向: justify
  4. http清除浏览器缓存
  5. http协议
  6. 盒模型: height; width; boder; margin; padding 分为两个属性值: content-box, border-box content-box: 设置的大小只是内容大小,height和width border-box: 设置的大小包括内容,padding,border
  7. vue样式污染的表现: 一个页面刚进去时样式不正常,刷新之后,样式才达到预期那样 解决方案: 使用h5新特性scope,这样,style标签中的样式只在此文件中生效
  8. js数据类型分为基本数据类型和引用数据类型
  9. 深拷贝方法:
    1. 用JSON.stringify()将对象转成字符串,再用JSON.parse()把字符串解析成对象;缺点: 这种方法可以实现数组和对象和基本数据类型的深拷贝,但不能处理函数
    2. 手写深拷贝: 递归深拷贝对象及对象的属性
  10. css垂直居中
  11. display: inline-block;vertical-align:middle;
  12. 父元素设置:display: flex; 子元素设置: align-self: center;
  13. 父元素添加伪类before,内容为空: display: inline-block;vertical-align:middle;
  14. 设置子元素的line-height与父元素的height相等

webSocket建立场链接实时获取数据: 实时获取数据采用轮询的方式会增加服务器的压力,频繁请求导致手机发热,电量耗的快

  1. css代码书写顺序:

    建议遵循以下顺序:

    布局定位属性:display position float clear visibility / overflow

    自身属性:width height margin padding border / background

    文本属性:color font text-decoration text-align vertical-align white- space break-word

    其他属性(CSS3):content cursor border-radius box-shadow text-shadow / background:linear-gradient ... .slb { display: block; position: relative; float: left; width: 100px; height: 100px; margin: 0 10px; padding: 20px 0; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; color: #333; background: rgba(0,0,0,.5); -webkit-border-radius: 10px; -moz-border-radius: 10px; -o-border-radius: 10px; -ms-border-radius: 10px; border-radius: 10px; }