简单写一个前端面试来记录一下把

补一下前两天的面试,其实我觉得每一次面试都受益匪浅,遇到好的面试官他会像一个老师一样去跟你交流,这次遇到的面试官还是很nice的,不像今天的面试官,很没有礼貌,听他说话都不想进这个公司了emmm

进入正题,顺序可能不对,仅仅凭借我的记忆点来写

1.首先是进行简单的自我介绍

2.问一下你是否知道关于定位的一些东西

position的属性:

absolute:绝对定位 定位后空间释放 相对于最近已定位的祖先元素

relative:相对定位 定位后空间不释放 相对于自己的初始位置

fixed:固定定位 定位后空间释放 相对于浏览器可视窗口

static:默认的定位

sticky:粘性定位 吸顶效果

3.原生ajax的原理:我直接写了一下做了个截图了解一下

4.跨域问题

首先跨域必须要知道的就是同源策略:

同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSFR等攻击。所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源。

解决跨域的方法简单总结一下

     (1)jsonp,主要是通过script标签的src属性来进行

     (2)ifram:不过现在不怎么用了,用iframe标签

     (3)postmessage解决跨域:

postMessage(data,origin)方法接受两个参数,data表示要传递的数据,orgin主要是表明窗口的源

     (4)cors(跨域资源共享)

浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信

    (5)WebSocket协议跨域

    (6)nodejs中间件代理跨域

5.闭包

闭包其实就是函数嵌套函数,内部函数引用外部函数中的局部变量,变量不释放

好处就是:代码模块化,能够让一个变量长期在内存中

缺点:内存泄露

6.es6的新特性

我主要说了一下常见的,比如

   1、let const 块级作用域的问题

   2、箭头函数:书写方便,改变this的指向

   3、字符串书写形式(字符串模板):`${}`

   4、解构:字符串,数组等等

   5、promise:进行异步操作

7.浏览器渲染机制:

将CSS解析成CSSOM树(CSS Rule Tree)

根据DOM树和CSSOM树,来构建Render Tree(渲染树),注意渲染树,并不等于DOM树,因为一些像head或display:none的东西,就没有必要放在渲染树中了。

有了Render Tree,浏览器已经能知道网页中有哪些节点,各个节点的CSS定义,以及它们的从属关系,下一步操作就是Layout,顾名思义,就是计算出每个节点在屏幕中的位置。

Layout后,浏览器已经知道哪些节点要显示,每个节点的CSS属性是什么,每个节点在屏幕中的位置是哪里,就进入了最后一步painting,按照算出来的规则,通过显卡,把内容画到屏幕上。

8.问到了移动端为什么使用translate比使用left之类的反应更加迅速:

这个问题当时我没有反应过来,后来才明白就是重排和重绘的问题,我们都知道在性能优化方面有个技巧就是要减少重排,尽量重绘来提高性能

9.http和https的区别:

HTTP(Hyper Text Transfer Protocol,超文本传输协议)被用于在web浏览器和网站服务器之间传递信息,HTTP协议以明文的方式发送内容,不提供任何方式的数据加密,如果攻击者截取了web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号,密码等支付信息。

HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer,安全套接字超文本传输协议),为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL/TLS,依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。其中SSL(Secure Socket Layer,安全套接层),TLS(Transport Layer Securit,传输层安全协议),SSL 3.0和TLS 1.0差别很小,在HTTPS通信中具体使用哪一个还要看客户端和服务端的支持程度,二者在网络模型中位于哪一层?

区别:

(1)HTTPS协议需要CA申请证书,一般免费证书比较少,所以需要一定费用

(2)HTTP是超文本传输协议,信息室明文传输,HTTPS则是具有安全性的SSL加密传输协议

(3)HTTP和HTTPS使用的是完全不同的连接方式,使用的端口号也不一样,前者是80,后者是443

(4)HTTP连接很简单,是无状态的;HTTPS协议是由HTTP+SSL协议构建的可进行加密传输、身份认证的网络协议,比较安全。

(5)谷歌搜索引擎算法中,比起同等HTTP网站,采用HTTPS加密的网站在搜索结果中排名会更高

10、问了一点vue和react的问题,没有很深入的问,大概是问用vue有什么优点之类的:

优点:轻量级框架、简单易学、双向数据绑定、组件化、视图、数据和结构的分离、虚拟DOM、运行速度快(非官方答案)

11、redux的运行机制

从网上找了一个图感觉还不错

顺便讲一下虚拟dom:

过程:创建虚拟dom树-》生成真实dom树-》绘制界面显示-》(更新界面的时候 getstate()更新状态-》重新创建虚拟dom树-》新旧树比较差异-》更新差异对应真实dom-》局部界面重绘)

其他的知识点有点记不得了emm,今天就到这里把

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值