## 面试题
* 乱码的根源
* 语言不通,无法进行更好的交流
* git上传代码有冲突,如何解决
* 沟通、比对代码质量、择优选择
* js中事件的传播过程,如何去阻止这个过程
* 阻止默认事件【e.preventdefault=false;e.returnValue=false;】
* 阻止冒泡stopporpergation
* 数据类型:
* 基本数据类型:number、string、null、underfined、Boolean、symbol【有唯一值】、【值的传递】
* 引用数据类型:对象、数组、函数【引用的传递,共享】
* object
*
* 如何对小数进行运算【转字符串】
* 原型链继承
* 原型链就是为了节约内存的一种寻祖现象,是js实现继承的一种模型
* 继承:
* 构造函数式继承
* 子类可以通过【父类.call()方式进行共享继承】,
* 优点:所有的基本属性(从父元素继承过来的属性)独立,不会被其他实例影响
* 缺点:所有希望共享的方法和属性独立了,没有达到同步的效果;每次都会调用父类构造函数,若父类很大,则很影响性能
* 原型链式继承
* ,如果一个对象某个属性找不到,从当前原型向上寻找,直到原型链最后才会停止寻找
* 优点:很好的实现了方法的共享
* 缺点:正因为是共享的,所以改变某一个实例,其余的都会被改变
* 组合式继承
* 寄生式继承
* 寄生组合式继承
* 强行绑定this指向,绑定bind,apply,call
* call(参数1,参数2,参数3,...)【后一个参数给前一个赋值】
* apply(参数1,数组[{}])
* bind(),绑定函数中想要指向的this对象,新函数中this发生了改变
* 转数组:Array.from(goods.file)、[...goods.file]、Array.prototype.Foreach.call()
* 判断数组:Array.isArray()
* H5新特性【FormData...】和 css3新特性
* h5:用于绘画的canvas元素、用于媒体回放的video和audio、localstorage、
语义化内容元素:article,footer,header,nav,section、表单控件:search,
date,time,url,email,calendar
* css3新特性:选择器、透明度、多栏布局、多背景图、文字阴影、word Wrap、@font-face
、圆角、边框图片、盒阴影、盒子大小、媒体查询、语音
* px em 与 rem 的区别
* px像素单位,是多少像素就多少像素
* em,使用级联的方式计算尺寸,依赖于元素的字体大小,size*10
* rem 相对于根元素html,依赖于父元素的字体大小,更会造成混乱
* 深拷贝【对于类型是引用类型,那么浅拷贝会进行地址传递,本质上该成员变量属于同一个实例,所以在修改的时候都会跟着改变】
* 浅拷贝【对于是基本数据类型的成员变量,直接进行值传递,将内容传递给一个新的对象 对于修改其中一个子元素变量的值,不会影响到其他元素拷贝的值】
* 类型转换
* 隐式转换,将直接将一种类型赋值给另一种类型【转换方式:变换、装箱、拆箱】,不需要人工干预
* 显式转换,人工干预强制转换的过程称为显式转换,
* 递归:在函数中调用自己
* 面向对象的三个特征
* 封装
* 将对象的属性和方法封装起来,方便后续继续使用
* 继承
* 子类继承父类的公有属性和公有方法,从而不必在重新创建
* 作用:为了解决一个函数重复出现的属性和方法
* 提高属性和方法复用度
* 减少代码量
* 多态
* 调用相同的方法出现不同的表现
* bfc
* 回调地狱--解决方案
* async await
* 异步promise
* jquery链式调用写法
* 原理:在每个方法执行完成后,返回jquery实例(return this)
* js变量的查找规则
* 声明变量 俩区别
* var
* 重复声明变量、变量提升
* 声明的变量会自动成为window变量的属性
* let
* 块级作用域
* 不能重复声明变量
* http请求库
* $.ajax
* axios
* request
* SuperAgent
* 外部引入link与important的区别
* 参数不定,封装一个进行运算 【扩展运算符:【展开、剩余】】
* 使用:扩展运算符
* 展开、
* 函数实参
* 复制对象、数组
* 剩余
* [剩余]【函数形参】实现:arr.reduce(function(prev,item,index,arr){},0)==>初始值为0
```js
function num(...num){
return num.reduce((prev,item,index,arr)=>prev+item,0)
}
```
* [剩余]解构
* 父元素高度塌陷
* 给父元素末尾添个空元素,并设置清除浮动
* 给父元素添加overflow:auto
* 让父元素也浮动
* 使用after伪元素
* BFC块级格式上下文
* float:left | right;
* overflow:auto | hidden | scroll;
* display:table-cell | table-caption | inline-block;
* position:fixed | absolute;