没有娃娃菜怎么吃火锅 进来随便坐
一次面试题整理
发布于: 2020-03-26 更新于: 2020-09-04 分类于: 面试 阅读次数: 

第一次电面,基本都是基础知识

1.CSS布局

(可能是前两天刚整理完,这里我就答的flex和grid。

grid布局是一个基于网格的二维布局系统。

还有传统的盒子模型布局(文档流布局、浮动布局、定位布局)

2.flex布局的缺点

浏览器兼容性较差,不能兼容IE8及以下的浏览器。

3.响应式布局

响应式布局就是一个网站能够兼容多个终端,可以根据屏幕的大小自动调整页面的展示方式以及布局。

例:
bootstrap依据栅格系统实现响应式布局(自动分为12列);flex布局

用到的技术:

核心:CSS3@media查询:针对不同的媒体类型定义不同的样式。
重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面。

衍生:自适应布局:不会改变布局结构,只会等比的缩小或放大对应内容的尺寸

rem (根据根元素html 16px)
em(根据父元素)

4.Ajax的主要优势/作用

在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。

5.表单验证form

1获取form表单字段:getElementById

2验证合法性:正则表达式

3提交表单:type:submit

共有的表单字段都支持以下三个事件:

  1blur:当前字段失去焦点时触发

  2change:对于input和textarea元素,值发生改变时触发

  3focus:当前字段获得焦点时触发

6.(偏后端)登录时不能传输明文密码,(防止第三方抓到掉落的密码包)怎么对密码进行加密?前后端交互流程

他说是偏后端的 我怎么觉得像在问我加密问题 ?MD5?这题我没太理解

7.(偏后端)防止大规模点击,用验证码怎么实现?

这个我更没听懂 面试官说这个更偏后端 我还以为他要问我防抖和节流?然后我还没说话他就换了个问题 我现在回听录音也不知道到底要干嘛【捂脸

8.CSS容器定位

static:默认文档流

fixed:相对于浏览器窗口

relative:相对定位,相对其正常位置,文档流内保留

absolute:绝对定位,相对于static定位以外的第一个父元素进行定位

9.ES6箭头函数和普通函数的this指向问题

箭头函数不会创建自己的this,它只会从自己的作用域链的上一层继承this(MDN)

也就是说,箭头函数中的this指向在它被定义的时候就已经确定了,以后也永远不会变了。

普通函数作为对象的方法调用时,this指向它所属的对象。
看这个

10.描述一下js里的变量提升现象

ES5中的函数function及变量var的声明都被提升到函数的最顶部。

这里还要注意一下:
用函数声明创建的函数存在提升现象,而用函数表达式创建的函数不存在提升现象。

ES6中的let、const不存在变量提升。

可以在声明一个函数之前使用该函数,仅提升声明(undefined),赋值留在原地。

11.版本控制系统git拉代码到提交整个过程

git clone 地址

git status //查看仓库状态(修改了哪些文件)

git add . //像暂存区中添加所有的文件

git commit-m”一些描述” //提交到本地仓库

git pull //拉一下 在本地提前解决可能出现的冲突

git push //推送至远程仓库

12.TCP和UDP的区别

TCP和UDP都是传输层的协议

1TCP面向连接,UDP是无连接的,即发送数据之前不需要建立连接

2TCP提供可靠的服务,即通过TCP连接传送的数据无差错、不丢失、不重复,且按序到达;UDP尽最大努力交付,不保证可靠交付。

3TCP面向字节流,UDP是面向报文的,适合一次性传输少量数据的网络应用。

4TCP有拥塞控制,UDP无拥塞控制,适合很多实时应用。

5TCP首部开销20字节,UDP首部开销小,只有8个字节。

6TCP是全双工的可靠信道,UDP则是不可靠信道。

13.TCP和http的区别

TCP是传输层的协议
http是应用层的协议
(这个我都想到了为什么没说 我脑子抽了)

14.栈和队列的应用场景

栈:后进先出。比如字符串的倒序输出;编译器中特殊符号匹配;网站的浏览记录“回到上一页”
队列:先进先出。模拟很多现实的生产环境,比如排队,消息队列,(层序遍历二叉树)

15.进程和线程的区别,同一个进程产生的多个线程之间资源共享吗?进程与进程之间怎么进行通信?

1一个进程可以包含多个线程,线程是轻量级的进程。

2角色方面:进程是操作系统资源分配的基本单位,线程是任务调度和执行的基本单位。

3开销方面:进程切换开销较大,线程较小。

4资源共享方面:同一进程下不同线程间数据很易共享;不同进程下数据很难共享.

5独立性方面:进程在执行过程中拥有独立的内存单元,之间互不影响,而多个线程共享内存。

线程共享所在进程的地址空间和其他资源。同时线程拥有自己的栈和栈指针,程序计数器等寄存器。

进程间通信IPC(InterProcess Communication):进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走。

--- 本文结束 The End ---