前端面试

1、闭包:

什么是闭包?

闭包就是指有权访问另一个函数作用域中的变量的函数。

把函数执行,形成私有上下文,并且保存和保护私有变量的机制,称之为“闭包” ,它是一种机制

它有三个特性:函数嵌套函数    函数内部可以引用函数外部的参数和变量   函数和变量不会被垃圾回收机制回收

好处:

1.保护函数内的变量安全 ,实现封装,防止变量流入其他环境发生命名冲突

2.在内存中维持一个变量,可以做缓存(但使用多了同时也是一项缺点,消耗内存)

3.匿名自执行函数可以减少内存消耗

坏处:就是被引用的私有变量不能被销毁,增大了内存消耗,造成内存泄漏,解决方法是可以在使用完变量后手动为它赋值为null;

闭包的使用场景

1.匿名自执行函数,不用在全局对象中添加一个变量,创建一个匿名函数并且立即执行它,执行完后很快会被释放,且不会污染全局对象

2.可以封装对象的私有属性和方法

3.函数做为回调函数返回

2、存储

1.cookie

cookie是为了解决解决http无状态的方案。

http是无状态的协议,就是当我们需要向同一个服务器发送两次相同的请求时,在发送过一次之后,服务器并不会记住我们,当我们第二次请求的时候,服务器还是要在验证一下。cookie的诞生就是为了弥补这个缺陷,客户端第一次请求服务器的时候,服务器会在返回信息中夹带cookie,客户端会将返回的cookie存储,下次发请求时将cookie信息带上。服务器端收到客户携带的cookie会检索自身的cookie信息,来分辨用户。

特点:

1.cookie的存储量较小,cookie只能存储大概4kb的数据。

2.不设置过期时间的cookie会在页面关闭时销毁,并且该cookie不存放在本地文件中,而是存放在内存中,这种cookie被称为会话cookie。设置时间的cookie会被保存在本地文件中,这种cookie可以被浏览器的多个进程共享。

2.localStorage

localStorage用于长久保存数据,存储在本地,除非手动删除,否则不会消失。

查看localStorage:window.localStorage

写入localStorage:直接像为对象添加属性一样window.localStorage.name = value;

删除指定localStorage:window.localStorage.removeItem("name");

清空localStorage:window.localStorage.clear();

3.sessionStorage

sessionStorage用于临时会话存储,当页面关闭时,自动清除。

window.sessionStorage

保存数据语法:

sessionStorage.setItem("key", "value");

读取数据语法:

var lastname = sessionStorage.getItem("key");

删除指定键的数据语法:

sessionStorage.removeItem("key");

删除所有数据:

sessionStorage.clear();

三者的异同:

生命周期:

cookie:可设置失效时间,没有设置的话,默认是关闭浏览器后失效

localStorage:除非被手动清除,否则将会永久保存。

sessionStorage: 仅在当前网页会话下有效,关闭页面或浏览器后就会被清除。

存放数据大小:

cookie:4KB左右

localStorage和sessionStorage:可以保存5MB的信息。

http请求:

cookie:每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题

localStorage和sessionStorage:仅在客户端(即浏览器)中保存,不参与和服务器的通信

3、从输入URL到页面加载发生了什么(HTTP请求全过程详解)

加载过程

1、浏览器根据输入网址进行DNS域名解析

(1)先到浏览器的DNS缓存中查询是否有对应记录,如有则直接返回ip地址,完成解析,

(2)接着判断:浏览器是否进行域名直接查询,如果有的话,会直接连到服务商提供的DNS服务器上,并返回IP;如果没有,则继续查询操作系统的缓存

(3)最后查看本地host文件,如果这里也没有的话就需要到本地dns服务器上查找了

2.浏览器获得域名对应的ip地址后 ,与WEB服务器建立TCP连接(TCP三次握手)

通俗一点的讲,TCP 就是一个双方通信的一个规范标准(协议)

进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备

刚开始客户端处于 Closed 的状态,服务端处于 Listen 状态。

1.第一次握手,客户端发送请求报文将syn=1同步序列号和初始序列号seq = x发送给服务端,然后客户端处于syn_send状态

2.服务器端收到SYN报文请求后,如果同意建立连接会将自己的同步序列号syn=1(服务器端)、初始化序列号seq=y和确认序列号ack=x+1以及确认号ACK = 1报文作为应答,服务器为SYN_Receive确认接收状态。

3.客户端接收到服务端的syn+ACK之后知道可以发送下一序列号的数据包了,然后发送同步序列号ack = y + 1和数据包的序列号seq = x + 1以及确认号ACK = 1确认包作为应答,客户端转为established状态。

3.tcp连接建立完成后,浏览器会给服务器发送一个http请求

4.服务器端响应HTTP请求,返回HTTP报文

渲染过程

根据HTML结构生成DOM树

根据CSS生成CSSDOM

将DOM和CSSOM整合形成RenderTree

根据RenderTree开始渲染和展示

解析过程中,如果遇到<linkhref="...">和<scriptsrc="...">这种外链加载CSS和JS的标签,浏览器会异步下载,下载过程和上文中下载HTML的流程一样。只不过,这里下载下来的字符串是CSS或者JS格式的。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容