前端面试题总结:模拟面试

1,问:请先自我介绍?

答:略

二,技术知识题

1,问:看你简历有项目经历,那在你之前的项目中,用到的技术栈有哪些?

答:主要使用过vue和微信小程序,其中对vue2使用的更多

2,问:你为什么使用vue呢?

答:vue相较于其他框架,更容易上手。在进行表单处理时,Vue的双向数据绑定非常方便。vue对第三方插件包容性很强,可以扩展vue的功能。

3,问:说一下v-if和v-show的区别?

答:v-if是对DOM操作是添加还是删除,如果条件为真,才会加载显示元素内容;v-show是对css的display属性进行操作,是渲染时的显示和隐藏。

4,问:vue组件之间的通信?

答:

父到子:在父组件中用v-bind赋值,在子组件中用props接收数据

子到父:在父组件中注册事件,在子组件中触发事件,并把数据当做参数传递过去,父组件处理事件并获取数据

相邻组件:先声明一个空的vue实例bus,在A中给bus注册事件,并监听事件处理程序,在B中触发bus上的事件,并把值当成参数传递,组件A通过事件处理程序获取数据

5,问:你怎么理解vue的数据双向绑定?

答:vue使用MVVM的模式,实现数据双向绑定,在改变视图的时候会更新数据,改变数据的时候会更新视图。

6,问:你举例实现一下数据双向绑定?

答:

<div id="app"><input v-model="msg"><br/>{{msg}}</div>
........var vue=new Vue({el:"#app",//需要被vue模版化管理的dom结构是哪个data(){return{msg:''}},}

7,问:MVVM和MVC区别?

答:m:model. v:view. vm:viewmodel
数据模型双向绑定原理。通过viewmodel控制。view负责接受反馈用户操作,model数据模型. 并且model和view是相互的。一方改变另一方也跟着改变。当用户操作vue. viewmodel感知到变化,然后通知model发生改变。反之model发生改变,viewmodel感知到变化,也会通知view发生改变。
m:model. v:view. c:control
用户操作—view(接收用户的输入操作)—control(用户逻辑处理)—model(数据model)—view(反馈给客户)

8,问:vue的生命周期?

答::一个vue实例从实例化到销毁所经历的各个状态,这个周期就叫做生命周期。

挂载之前会初始化:初始化生命周期,事件,props,methods,data,computed,watch等。此时最重要的部分是Object.defineProperty设置setter和getter函数来实现响应式和数据依赖。

三个流程:挂载流程(4个钩子函数)

beforeCreate():在实例化之后,此时不能获取data中数据,也不能使用methods中的方法 created():此时可以调用methods中的方法,也可以获取data中的数据,一般用在发送请求获取数据的时候。

beforeMounted():在挂载开始前调用

mounted():此时vue实例已经被挂载到页面中,可以操控页面中的dom元素

更新流程(2个钩子函数)

beforeUpdate( ):数据更新时被调用,可以在这个时候进一步更改状态

updated():此时组件dom已经更新,可以执行依赖于dom的操作 销毁流程(2个钩子函数)beforeDestroy():在实例销毁之前调用,此时实例还可以使用,会释放一些资源,比如:清除定时器

Destroyed():vue实例销毁之后调用,此时会解绑实例,清除监听器,销毁所有子实例。

9,问:有没有使用过什么自动化测试框架?

答:暂时对这个没有了解

10,问:有没有用过其他js框架?

答:我在实习的时候,有用过Taro+react联合开发可多端运行的小程序,其中对react有一点了解,希望在未来的工作中,有机会可以深入学习。

三、js基础知识题

1,问:js数据类型?

答:分为基本数据类型:number,string,undefined,null,boolean,symbol,bigint

和引用数据类型:object

2,问:js中的==和===的区别?

答:==是比较数值是否相等,

===是先比较数值是否相等,再比较类型是否相等

3,问:js深拷贝和浅拷贝的区别?

答:js浅拷贝是只拷贝值,不拷贝存储地址,当原值数值改变时,复制的值也会改变。

深拷贝是拷贝值和地址,当原值改变时,不会影响新值。

追问:深拷贝怎么实现?

答:JSON.parse(JSON.stringify(obj))

4,问:对原型,构造函数,实例怎么理解的?(问的原型链)

答:构造函数实例化会得到实例对象,每一个构造函数都有一个原型对象,构造函数通过prototype属性访问原型上的方法和属性,而原型的constructor可以指向它的构造函数,实例对象也可以通过__proto__访问原型上的属性和方法。如图:

 5,问:怎么理解闭包?

答:函数嵌套,比如函数a中定义了一个函数b,函数b可以访问函数a中的变量和参数,这就是闭包,好处:保护函数b中的变量不被污染,坏处:函数b引用函数a中的变量不会被销毁,容易造成内存消耗,泄漏等问题,解决办法:变量引用后可以手动设为null。

6,问:你对js中的this怎么看?

答:this一般是指向当前对象,比如,在一般函数方法中使用 this 指代全局对象;作为对象方法调用,this 指代上级对象;作为构造函数调用,this 指代new 出的对象;也可以使用call,apply和bind改变this指向。

7,问:有遇到跨域问题吗?怎么解决的?

答:我在vue项目中使用过跨域,因为是前后端分离的项目,在解决方面,是使用webpack自带的跨域机制,配置的api。对于跨域的解决办法,我也有了解过,可以使用jsonp包裹数据传输,或者在服务器端配置CORS(CORS 是跨域资源分享(Cross-Origin Resource Sharing)的缩写。它是 W3C 标准,属于跨源 AJAX 请求的根本解决方法)。

8,问:请详述一些http请求过程?

答:1,在地址栏输入url,DNS域名解析系统会解析出ip地址,2,然后浏览器和服务器建立Tcp连接,3,浏览器发送HTTP请求,4,服务器响应请求,浏览器获取html代码,5,浏览器解析HTML代码,获取HTML中的资源,比如图片,样式等资源6,关闭TCP连接,浏览器渲染页面,把内容展示给用户。

9,问:你知道的web前端的优化策略?

答:1,减少http请求,2,图片懒加载,在未到达图片可视区时,不给src赋值,3,把一些css,js放在外部文件里,使用时引入。4,压缩图片大小,可以使用base64.

四,html,css基础知识

1,问:div和p都是块级标签,请问他们有什么区别?

答:1,div是布局标签,p是段落标签2,div的margin为0,两个div直接没有间隔,p标签有一定的margin值,两个p标签会有间隔,3,div一般用来框架布局,而p一般用于内容布局,4,一般可以在div里写p标签,不在p标签里写div

2,问:说一下css的盒子模型?

答:每一个HTML元素都可以看做一个盒子,它包括margin,border,padding,content,其中margin,border,padding都是可以通过css属性控制,所以叫css盒子模型。

盒子模型分为两种:W3C标准盒子模型:设置的宽高是content的宽高,如果再设置padding,margin,border,那实际的宽高需要加上这些属性值,不改变content的宽高。

IE盒子模型(怪异盒子):它认为元素是一个整体,所以给content设置宽高,如果再设置padding,margin,border,它会挤压content的宽高,使整体的宽高不变。

3,问:说几个水平垂直居中的方法?

答:1,已知宽高,设置possion:aboulate,top:50%,left:50%,margin-top:-高度/2;margin-left:-宽度/2

2,未知宽高,设置possion:aboulate,top:50%,left:50%,transform:translate(-50%,-50%)

4,问:清除浮动的方式?

答:1,额外标签法(在最后一个浮动标签后,新加一个标签,给其设置clear:both;)(不推荐)2,父级添加overflow属性(父元素添加overflow:hidden)(不推荐)3,使用after伪元素清除浮动(推荐使用)4,使用before和after双伪元素清除浮动

5,问:重绘和回流的区别?

答:回流必将引起重绘,而重绘不一定会引起回流。比如:只有颜色改变的时候就只会发生重绘而不会引起回流
当页面布局和几何属性改变时就需要回流
比如:添加或者删除可见的DOM元素,元素位置改变,元素尺寸改变——边距、填充、边框、宽度和高度,内容改变

6,问:说说你对响应式布局的理解?

答:响应式布局的关键技术是CSS3中的媒体查询,监测设备屏幕大小,通过css媒体查询来有针对性的更改页面的布局,这样做出的网站可以在三个不同的设备使用,一般用于网页简单的页面。

7,问:有使用过什么css框架吗?

答:bootstrap:栅格系统,实现响应式布局。

五,综合问题

1,问:说一说,项目中遇到的坑?

2,问:你觉得自己在项目中的亮点是什么?

3,问:有了解过package.json文件的作用吗?

答:管理npm的包依赖,配置项目信息,比如名字,版本等

4,问:你对webpack有什么优化建议吗?

答:1.如何优化构建速度:减少不必要的模块依赖;多线程构建;热更新
2.如何优化打包后的文件:(文件尽可能少文件尽可能小)模块手动分离,减少公共代码;模块懒加载,使用插件实现。

5,问:你的学习计划?

6,问:未来规划?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/350953.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

模拟面试题回顾

模拟面试题回顾 1.servlet里面有哪些关键的方法&#xff1f; 讲到它的方法&#xff0c;就不可避免地去了解servlet的运行过程(也可以说是生命周期)&#xff0c;如下图所示&#xff1a; 它的四个过程&#xff1a; ​ (1).当客户端第一次发送请求后&#xff0c;由容器&#xf…

java-模拟面试

讲一下快速排序算法 通过一次排序将数列分为两部分&#xff0c;一部分比另一部分数字都小 时间复杂度O(nlogn) 空间复杂度O(1) 先确定一个中间比较值&#xff0c;确定一个左指针&#xff08;从头开始&#xff09;&#xff0c;右指针&#xff08;从尾部开始&#xff09; while循…

如何模拟面试?

我是艾木&#xff1a; 1.从学生到职场 当初毕业找工资的场景&#xff0c;至今还记忆犹新。 当时的自己还是学生的身份&#xff0c;正处于找工作的浪潮中&#xff0c;当时的校园招聘如火如荼&#xff0c;工作岗位也琳琅满目。一时间仿佛置身于百货商场之中&#xff0c;每个人都在…

微信小程序 | 基于ChatGPT实现模拟面试小程序

Pre:效果预览 ① 选择职位进行面试 ② 根据岗位职责进行回答 一、需求背景 这两年IT互联网行业进入寒冬期,降本增效、互联网毕业、暂停校招岗位的招聘,各类裁员、缩招的情况层出不穷!对于这个市场来说,在经历了互联网资本的疯狂时代,现在各大需要的时候更多能实实在在挣…

ChatGPT专业应用:模拟求职面试

正文共 663 字&#xff0c;阅读大约需要 3分钟 应届毕业生求职面试必备&#xff0c;您将在3分钟后获得以下超能力&#xff1a; 1.专属面试导师 2.掌握高频面试题回答要点 Beezy评级&#xff1a;B级 *经过简单的寻找&#xff0c; 大部分人能立刻掌握。主要节省时间。 推荐人 …

Python入门教程+项目实战-13.2节-集合的操作方法

目录 13.2.1 集合的常用操作方法 13.2.2 集合的查找 13.2.3 集合的添加 13.2.4 集合的删除 13.2.4 集合运算 13.2.5 知识要点 13.2.6 系统学习python 13.2.1 集合的常用操作方法 集合类型是一种抽象数据类型&#xff0c;抽象数据类型定义了数据类型的操作方法&#xff…

谈谈互联网广告拍卖机制的发展:从GSP到DeepAuction

广告作为各互联网公司收入的大头&#xff0c;其拍卖机制设计因此也是关乎营收最为核心的方面。所谓的广告拍卖机制设计是指如何将有限的广告位分配给合适的广告&#xff0c;从而达到客户、平台以及用户三方的价值最优。 当前的广告拍卖被建模为暗拍的形式&#xff0c;即N个广告…

音乐人解密:究竟是如何一步一步成为音乐人的?

音乐人解密&#xff1a;究竟是如何一步一步成为音乐人的&#xff1f; 音乐是人类伟大的产物&#xff0c;近些年来越来越多的人都开始尝试学习音乐&#xff0c;成为一名音乐人。而艺术高考等途径也为许多想要学习音乐、成为职业歌手或者编曲师的人群提供了途径。然而想要成为一名…

C++学习之旅 - 指针

文章目录 指针的基本概念指针的定义与使用指针占用的内存空间空指针野指针cont修饰指针指针&数组访问数组中第一个元素(访问&指针)如何访问数组中的第二个字节 指针和函数 指针的基本概念 指针的作用: 可以通过指针间接访问内存 内存编号是从0开始记录的&#xff0c;一…

linux find命令格式及find命令详解

本文详细介绍了linux find命令格式及find命令案例&#xff0c;希望对您的学习有所帮助。1、find命令的一般形式为&#xff1b; find pathname -options [-print -exec -ok ...]2、find命令的参数&#xff1b; pathname: find命令所查找的目录路径。例如用.来表示当前目录&#…

app渗透-常见问题及绕过

app渗透-常见问题及绕过 6.app常见问题和绕过前言6.1反代理操作前言6.1.1判断6.1.2实例演示-探探6.1.3绕过1-r0capture6.1.4绕过2-proxifier6.1.5绕过3-小黄鸟 6.2证书校验前言6.2.1判断6.2.2浏览器校验和解决6.2.3桡过证书单项校验-xp框架6.2.3绕过证书双向校验 6.app常见问题…

findIndex的使用

1. findIndex:没有符合条件的元素返回-1 2. 当findIndex符合元素的条件时会返回元素的索引位置 eg:权限管理中查找item中的每一项对数据中存在的某项固定存在的值进行对比。 代码&#xff1a;

Linux下使用find命令查找文件

0、find 命令&#xff0c;查找目录下以2022开头的文件 find / -name "2022*" 1、find 命令&#xff0c;查找类型为文件并且文件名称以2022开头的文件 find . -type f -name "2022*" 2、find命令统计查找出来的文件总数量 find . -type f -name "…

Linux find命令详解

基础打印操作 find命令默认接的命令是-print&#xff0c;它默认以\n将找到的文件分隔。可以使用-print0来使用\0分隔&#xff0c;这样就不会分行了。但是一定要注意&#xff0c;-print0针对的是\n转\0&#xff0c;如果查找的文件名本身就含有空格&#xff0c;则find后-print0仍…

find()和findIndex()函数详解

今天我在拿数组中的存在的某一项索引时&#xff0c;我用了filter()&#xff0c;结果折腾了半天还是没求出索引&#xff0c;结果询问同事&#xff0c;他说你直接用findIndex()就可以了&#xff0c;一语点醒梦中人&#xff0c;可能平时ES6的这些函数用的少&#xff0c;根本就想不…

linux find -size参数,Linux find 常用命令

Linux find 常用命令 (2012-10-24 11:32:52) 标签&#xff1a; linux shell 说明&#xff1a; 以下内容&#xff0c;若标注在 [ ] 中括号内的均可省略&#xff0c;除非做特别说明。 但严格来说&#xff0c;若缺少 [ ] 中括号内的内容&#xff0c;在命令呈现的语义和返回结果上&…

二、linux find命令详解

目录 2. find【擅长在目录下找文件】 2.1 常用查询选项option 2.1.1 -name&#xff1a;根据名称匹配 2.1.2 -iname&#xff1a;忽略文件名称大小写 2.1.3 -user&#xff1a;根据所属用户组进行查询 2.1.4 -type&#xff1a;根据文件类型进行查找 2.1.5 -size&#xff1a;根据…

Linux的find命令

find 查找命令 -name 查找某个文件&#xff0c;文件名为name 例如&#xff1a; find /etc/ -name passwd 查找/etc/目录下名为passwd的文件并输出 find /etc -name *.conf 查找/etc/目录下所有以.conf结尾的文件 -user name 查找某个文件所有人为use…

Linux 命令----find:查找指定的文件

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是「奇点」&#xff0c;江湖人称 singularity。刚工作几年&#xff0c;想和大家一同进步&#x1f91d;&#x1f91d; 一位上进心十足的【Java ToB端大厂…

Linux下find命令详解

find命令格式&#xff1a; find path -option 【 -print 】 【 -exec -ok |xargs |grep 】 【 command {} \; 】 find命令的参数&#xff1a; 1&#xff09;path&#xff1a;要查找的目录路径。 ~ 表示$HOME目录 . 表示当前目录 / 表示根目录 2&…