• 21年8.6面试总结


    一、第一家

      1.项目中负责哪些功能

      2.js的基本数据类型,检测数据类型

      3.unfinde和null的区别

        undefined表示变量声明过但并未赋过值,null表示可能未来指向一个空对象,unfinde和null的值相等但是但是类型不等,要用全等来判断不能用双等

      4.js中new操作符做了那事情

        创建一个空对象,设置原型链,绑定this指向执行构造函数,返回这个对象。

      5.浏览优化

        5.1减少http请求:css精灵图,防抖和节流

        5.2使用CDN:cdn是一组分布在多个不同地理位置的web服务器,用于更加有效的向用户发布内容,web服务器离用户越近,http请求的响应意见越短

        5.3压缩代码体积,样式放在头部,脚本放在底部

        5.4减少DNS查找(DNS予解析)缓存

      6.js延迟加载的方式

        js延时加载,有利于提高网页的加载速度,可以通过defer属性、async属性、动态的创建DOM、使用setTimeout延时方法、让js最后加载

      7.es中promis和异步的区别

      8.es新增了let和const和var的区别

      9.js闭包,js还有哪些操作会造成内泄露(不会),let和const出现后还有需要需要闭包。

      10.解决跨域问题,jsonp的原理(不会)

      jsonp的原理:利用script标签的src属性来实现跨域,通过将前端方法作为参数传递到服务器,然后有服务器注入参数之后再返回,实现服务器端向客户端通讯,由于使用script标签src属性,之支持get请求

      11.for in 和object.key的区别:object.key将对象中所有的key值取出来只读取当前对象的key值不会走原型链,而for in会走原型链。forEach和map的区别,map得到一个新数组返回,forEadch方法没有返回值,会改变原数组的值

      12.原型链和作用域链的区别

      13.普通函数的箭头函数的区别

        箭头函数是匿名函数,不能作为构造函数,不能使用new关键字,没有this机制,没有原型属性

      14.vue的优点(答的不全)

        双向数据绑定,组件化,虚拟DOM

      15.vue组件间传值,

        父向子,定义自定属性props接收,子向父,定义自定义事件通过$emit触发这个事件。

        props父组件更新子组件中的数据是否会更新(不会),利用props传参时只在mounted周期中传递了一次,此 可以利用计算属性。

      16.让样式vue只在当前组件中起作用

        在组件中的style前面加上scoped就可以了,但是之一特性存在一个缺陷!如果再子组件的根元素上有一个类已经再这个父元素定义过了,那这个父组件的样式就会泄露到子组件中,因此要避免再父组件中书写和子组件同名的clss类

      17.如果发多个请求,在第一请求发起把logind显示出来,在最后一个返回时(每一个请求的时间都不确定)取消他

        解决方案一、可以定义一个变量变量数等于请求的数量,再每一个变量里让他减减,当变量等于0的时候让他消失。

        解决方案二、利用Promise有一个all方法,接收一参数,这个参数可以传入一个数组,再数组中可以写多个Promise抱起来,然后放到个数组里,all方法石凳数组中所有的Promise加载完成之后才去执行的

        

    console.log('loading效果图旋转中')
        var p1 = new Promise(function(resolve,reject){
            setTimeout(() => {
                console.log('第一个加载完成了');
                resolve();
            }, 1000);
        })
        var p2 = new Promise(function(resolve,reject){
            setTimeout(() => {
                console.log('第三个加载完成了');
                resolve();
            }, 2000);
        })
        var p3 = new Promise(function(resolve,reject){
            setTimeout(() => {
                console.log('第二个加载完成了');
                resolve();
            }, 3000);
        })
        
        Promise.all([p1,p2,p3]).then(function(){
            console.log('loading效果图消失');
        })

      18.get和post的区别

        get请求能被缓存,post请求不能;get请求发送的数据很小,不安全;post请求数据量没有限制相对较安全。

    二、第二家

      1.组件间传值

      2.v-if和v-show共同点和不同点

      3.v-if(v-show)和v-for可以一起使用麽?

      4.为什么data是一个函数

      5.介绍一下深浅拷贝

        引用数据类型,名字存在栈内存里,值存在堆内存中,通过地址引用堆内存中的值。引用数据类型存在深浅拷贝的问题。

      浅拷贝一个对象(直接赋值),赋值后两个变量使用的相同内容,一个操作,另一个也会变化(也有自己的适用场景)。

      深拷贝:1.通过递归的方式实现深拷贝,2.通过JSON对象实现深拷贝,3.展开运算符,4.lodash函数库中的lodash.cloneDeep()实现

      6.介绍一下vuex

      veux是vue项目开发是的状态管理工具,一个数据要在多个页面共同使用时要用到vuex,vuex有五个成员state,mutations,getters,actions,modules,mutations是操作state数据的方法集合,

      7.nextTick的原理()

      8.介绍一下vue-loder插件解决了哪些问题

      vue-loader是webpack下loader插件 可以把.vue文件 输出成组件

      9.vue路由的两种模式

      10.created和monuntd的区别

      11.路由传参

      12.js里的事件循环,js执行机制

      13.计算属性和监听属性的区别和使用场景

      14.webpack的配置优化配值

      15.v-model双向绑定的原理

    三、第三家

      1.css盒模型包括什么

      2.清楚浮动有哪几种方式,为什么要清楚浮动

      3.行元素有哪些

      4.css四种定位的区别

      5.session和localg的区别

      6.vue兄弟组件通讯

      7.vue如何对数据响应式进行处理,数据改变了没有被检测到

      8.vue路由传参区别

      9.windon.onlod和docu.writ的区别

      10.事件委托

      11.基本数据类型

      12.jq随dom增删该

      13.如何遍历一个json对象的key和value

      14.数据库的基本操作

      

      

    勤学似春起之苗,不见其增,日有所长; 辍学如磨刀之石,不见其损,日所有亏!
  • 相关阅读:
    将文件移出版本控制 (Revision Control)
    luogu 1966 火柴排队
    bzoj 1069 最大土地面积
    bzoj 1060 时态同步
    luogu 1901 发射站
    bzoj 1007 水平可见直线
    bzoj 2654 tree
    luogu 2024 食物链
    10.21 模拟赛
    tyvj 1013 找啊找啊找GF
  • 原文地址:https://www.cnblogs.com/qiaozhiming123/p/15104740.html
Copyright © 2020-2023  润新知