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