一年前端近期面试总结

目录

一、关于js的

1、数组的常用方法以及迭代方法,对于push、pop可能会问到返回值

2、js如何减少操作DOM

3、post和get的区别,ajax请求超时如何处理

4、es6新增了哪些特性,你常用哪些

5、对promise的理解

6、js 的eventloop

7、关于js基本类型和引用类型的存储方式

8、关于原型和原型链,原型链最终指向的是什么(null)

9、箭头函数的特点,let和const,var的区别

10、对于如下两次函数调用,参数 test 函数的函数体内 a,b,c 的值分别是什么?

11、创建两个数组[1,2,3,4],[3,’4’,5,6],求两个数组的并集/交集.,并写出他们的结果.

12、一个假期旅游团有十八人,[{name: 张,age:16},{name:章,age:15}…].请给出旅游团平均年龄的算法.我们该如何判断旅游团内是否有人年龄小于14,以便需要监护人同意.现在旅游团要两两结伴做游戏,如何将前一半人与后一半人按顺序结伴.

13、按顺序写出下面程序的打印值。

14、如何判断数据类型

15、防抖和节流

二、关于HTML和css的

1、使块级元素&行级元素垂直居中的几种办法

2、常见的布局方式,比如上div固定高度,下div自使用; 左中右布局,左右固宽,中自适应

3、什么是BFC,特点以及如何触发

4、重绘和重排,标准盒子模型和怪异盒子模型

5、rem实现原理

三、关于vue

1、vue的生命周期,created和mounted的区别,在beforeCreate中可以做什么

2、vue路由的两种模式history和哈希

3、vue父子组件的生命周期

4、组件之间的通信

5、computed和watch的区别以及watch的属性(deep和immediate、handler)

6、vue的优化方法

7、vue的路由懒加载

8、vue的一些底层原理(双向数据的绑定原理、v-model实现原理,虚拟DOM)

9、 v-for 中key的作用

10、vuex 的五个属性,以及适用场景

11、 vue脚手架搭建过程

四、其他

1、git常用命令

2、git和svn的区别

3、http常用方法,http2.0,以及http常见状态码

4、401和403的区别

5、协商缓存和强缓存(体现在状态码中就是304:协商缓存,200:强缓存)

6、做项目的流程以及出现bug如何调试

 


曾就职于某上市外包公司,由于种种原因辞职,开启了面试之旅。在这里给大家一个建议,对于一些刚毕业的最好不要去外包公司,一是待遇低,活多,二是跳槽不好跳,大部分公司会歧视外包公司出来的,懂的都懂。

约了九家公司,面试了四家公司,两家达成意向发了offer,一家面试体验极差。在投简历过程中大家要有耐心,前几天回复的人可能比较少,后面就会好啦。再有就是应聘者和面试官是平等的,是一个双向选择的过程,大家面试一定要自信,遇到高高在上,处处刁难你的面试官不要气馁。

下面来总结一些面试题,因为毕竟工作经验不多,所以面试题还是比较基础比较简单的。

一、关于js的

1、数组的常用方法以及迭代方法,对于push、pop可能会问到返回值

2、js如何减少操作DOM

        a. 用修改class名的方法替代

        b. 需要大量修改DOM时,先缓存在统一进行修改

        c. 采用虚拟DOM的方式

3、post和get的区别,ajax请求超时如何处理

1.相对post请求是安全的,get请求会暴露在url中

2.get请求参数放在url后,post放在http请求主体里面

3.get请求有长度限制,而post请求没有限制

ajax的请求超时

设置一个timeout,利用ajax的complete方法,complete是ajax请求完成的回调,无论成功或失败都会触发

var ajaxTimeoutTest = $.ajax({

 

  url:''//请求的URL

  timeout : 1000, //超时时间设置,单位毫秒

  type : 'get'//请求方式,get或post

  data :{},  //请求所传参数,json格式

  dataType:'json',//返回的数据格式

  success:function(data){ //请求成功的回调函数

    alert("成功");

  },

  complete : function(XMLHttpRequest,status){ //请求完成后最终执行参数

    if(status=='timeout'){ //超时,status还有success,error等值的情况

       ajaxTimeoutTest.abort();

       alert("超时");

    }

  }

});

status的取值
success"、 "notmodified"、"nocontent"、"error"、"timeout"、 "abort"、"parsererror"

4、es6新增了哪些特性,你常用哪些

5、对promise的理解

https://blog.youkuaiyun.com/qq_38974956/article/details/109035460

6、js 的eventloop

       这里是阮一峰的一些讲解 : http://www.ruanyifeng.com/blog/2014/10/event-loop.html

       由此题会引申出一些输出顺序的问题,网上有好多例子,多练习一下就会啦

7、关于js基本类型和引用类型的存储方式

         基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象。(也就是栈和堆)

         引用数据类型在内存中会有一个内存地址,对应着数据值,我们引用是只是引用的内存地址(也就是浅拷贝)   

         这里可能会引申一道浅拷贝和深拷贝的题,要注意一下,尤其是数组,不能大意

   var a=[ ]

 var b=a

 a[2]=2

b[3]=3

请写出下面的输出结果

a.length    a       b    b.length

结果:4        Array(4) [ undefined, undefined, 2, 3 ]        Array(4) [ undefined, undefined, 2, 3 ]     4

这道题就是一道引用类型的浅拷贝当b=a时,这里只是进行了浅拷贝,在修改b时修改的是修改堆内存中的同一个值

 这里是关于深拷贝和浅拷贝的一些总结   https://blog.youkuaiyun.com/qq_38974956/article/details/109034790

8、关于原型和原型链,原型链最终指向的是什么(null)

          https://blog.youkuaiyun.com/qq_38974956/article/details/109187713

9、箭头函数的特点,let和const,var的区别

10、对于如下两次函数调用,参数 test 函数的函数体内 a,b,c 的值分别是什么?

function test(a,b,...c) {/*a,b,c*/}

test(1,2,3,4,5) 与 test();

结果:

1,2,[3,4,5]

Undefined,undefined,[ ]

这里考察点是剩余参数

11、创建两个数组[1,2,3,4],[3,’4’,5,6],求两个数组的并集/交集.,并写出他们的结果.

         var a = [1, 2, 3, 4]

        var b = [3, '4', 5, 6]

        a.forEach(item => {

            b.forEach(itemB => {

                if (item === itemB) {

                    console.log(item);

                }

            })

        })

并集:3    这道题比较简单,注意4和‘4’不一样就可以,===和==的区别

12、一个假期旅游团有十八人,[{name: 张,age:16},{name:章,age:15}…].请给出旅游团平均年龄的算法.我们该如何判断旅游团内是否有人年龄小于14,以便需要监护人同意.现在旅游团要两两结伴做游戏,如何将前一半人与后一半人按顺序结伴.

var arr = [{

            name: '张',

            age: 16

        },

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值