每日面试题汇总【每日新增】

## 面试题

* 乱码的根源

    * 语言不通,无法进行更好的交流

* 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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值