2019前端面试自我总结js篇

1.数组有什么方法?

  • map((item,index)=>{...})
  • splice(删除元素的起始位置,要删除的个数,替换元素的值)
  • slice(开始的索引,结束的索引) 截取元素
  • join('',") 将数组变成字符串,同字符串的split()方法组合使用
  • concat(数组,数组,数组...)实现数组的拼接
  • push()从后面增加一个元素,pop() 方法用于删除并返回数组的最后一个元素
  • shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。 unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。

2.如何解决地狱回调?

promise  async  generator

3.localStorage和sessionstory区别

  • localStorage生命周期是永久,除非主动清除localStorage信息,否则这些信息将永远存在。存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信。
  • sessionStorage仅在当前会话下有效,关闭页面或浏览器后被清除。存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信。

复杂数据的存储

存储数据前:利用JSON.stringify将对象转换成字符串

获取数据后:利用JSON.parse将字符串转换成对象

4.使用promise

1、基本用法:

(1)、首先我们new一个Promise,将Promise实例化

(2)、然后在实例化的promise可以传两个参数,一个是成功之后的resolve,一个是失败之后的reject

(3)、Promise实例生成以后,可以用then方法分别指定Resolved状态和Reject状态的回调函数

参照 :https://www.cnblogs.com/nelson-hu/p/7777176.html 

2.promise原理:

5.Let和var的区别

  • ES6 新增了let命令,用来声明局部变量。但是所声明的变量,只在let命令所在的代码块内有效,而且有暂时性死区的约束。let不允许在相同作用域内,重复声明同一个变量。

ES6的let让js真正拥有了块级作用域,也是向这更安全更规范的路走,虽然加了很多约束,但是都是为了让我们更安全的使用和写代码。

6. 闭包

一句话可以概括:闭包是有权访问其他作用域的函数,或者子函数在外调用,子函数所在的父函数的作用域不会被释放。

7.类 Class类继承

(1)ES5和ES6的类有什么区别?

ES5的类叫做构造函数,

ES6中的类只是语法糖,它并没有改变类实现的本质。

8.事件冒泡

事件冒泡:事件到达目标节点后,会沿着捕获阶段的路线返回。同样,所有经过的节点都会触发对应的事件

事件捕获:当一个事件触发后,从window对象出发,不断经过下级节点,直到抵达最终目标节点(event.target)。在事件达到目标节点之前就是事件捕获的phrase。所有经过的节点都会触发该事件。

事件委托(代理)l利用事件冒泡

参看:https://blog.csdn.net/weixin_42787326/article/details/100705808

9.Url到浏览器展示页面的都经过了哪些东西

一般会经历以下几个过程:

1、首先,在浏览器地址栏中输入url

2、浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容。若没有,则跳到第三步操作。

3、在发送http请求前,需要域名解析(DNS解析),解析获取相应的IP地址。

4、浏览器向服务器发起tcp连接,与浏览器建立tcp三次握手

5、握手成功后,浏览器向服务器发送http请求,请求数据包

6、服务器处理收到的请求,将数据返回至浏览器

7、浏览器收到HTTP响应

8、读取页面内容,浏览器渲染,解析html源码

9、生成Dom树、解析css样式、js交互

10、客户端和服务器交互

11、ajax查询

 

其中,步骤2的具体过程是:

浏览器缓存:浏览器会记录DNS一段时间,因此,只是第一个地方解析DNS请求;

操作系统缓存:如果在浏览器缓存中不包含这个记录,则会使系统调用操作系统,获取操作系统的记录(保存最近的DNS查询缓存);

路由器缓存:如果上述两个步骤均不能成功获取DNS记录,继续搜索路由器缓存;

ISP缓存:若上述均失败,继续向ISP搜索。

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值