首页 > 其他 > 详细

前端面试

时间:2021-01-24 00:49:04      阅读:38      评论:0      收藏:0      [点我收藏+]

变量的类型(8种)

7种原始类型:Boolean、Undefined、Null、String、Number、Symbol(不可修改的)、BigInt(可以超过数字的安全整数限制,2^53)和Object

typeof null === ‘object‘

typeof function fn() {} === ‘function‘

typeof a= [] === ‘object‘

基本数据类型存储在栈里,引用类型存储在堆里

 

深拷贝和浅拷贝

深拷贝和浅拷贝最根本的区别在于是否真正获取一个对象的复制实体,而不是引用。

假设B复制了A,修改A的时候,看B是否发生变化:

如果B跟着也变了,说明是浅拷贝,拿人手短!(修改堆内存中的同一个值)

如果B没有改变,说明是深拷贝,自食其力!(修改堆内存中的不同的值)

什么时候用呢?也就是拷贝完之后是否还要用被拷贝的数据

 

var, let, const区别

let, var, const都是用来声明变量的

var存在声明提升,允许重复定义和赋值的

const 一般用来定义敞亮,值不能被更改,所以在定义时就要赋值,复杂类型不能更改它的地址,如const a = [];她是可以被push的,a[0] = 1;

let和const都只在声明所在的会计作用与有效,不存在变量提升。

let 1.不存在变量声明提升

  2.存在暂时性死区(在代码定义前使用,会报错)

    function(x = y, y =2) {}

  3.不允许重复声明

  4.块级作用域(es5只用全局和函数作用域)

 

解构赋值

从数组和对象中提取值,对变量进行赋值

 

Promise

promise是异步解决方案,对象的状态不受外界的影响

他有三个状态:pender、fullfiled、rejected

promise构造函数接受一个函数做参数,resolve和reject

resolve的作用是将pending->fullfiled

  异步操作的成功时的调用,将异步操作的结果作为参数传递出去

reject的作用是将pending->rejected

  异步操作失败时调用

.then方法是定义在原型对象Promise.prototype上的,返回的是一个新的promise实例,是promise的resolved的一个回调函数

.catch方法也是定义在原型对象Promise.prototype上的,返回的也是一个新的promise实例promise的rejected的一个回调函数

  promise内部的error会被外部的promise吃掉(就是会报错,但是还是会继续执行,这与try/catch不同),因此在可能的情况下,可以写多个catch

async和await的返回都是一个新的promise对象

 

export和export default的区别

export只能输出原来定义的名字,import需要使用原来的名字,而export default可以自定义名称

 

从url输入到页面展现,到底发生了什么?

1.首先要查看缓存(浏览器的缓存->系统缓存->路由器缓存)

2.DNS解析:将域名解析成ip地址

3.TCP链接:TCP三次握手(防止已失效的链接请求报文段,突然又传送到服务器,然后出错)

4.发送HTTP请求

5.服务器处理请求,并返回HTTP报文

6.浏览器解析渲染页面

7.断开链接,TCP四次挥手

 

浏览器中的url包含:http://www.baidu.com:8080/search?queryName="xxx"

http:传输协议(http/https)

www.baidu.com:域名

8080:端口

/search: 文件路径

queryName="xxx":参数

 

HTTP

http包含:请求行、请求头、请求体

http请求包含:TCP握手,http响应信息,关闭TCP连接

请求行:GET、POST、DELET、PUT、OPTIONS等

请求头:host,http1.1中加入了connection: keepalive持久连接,一个连接,多个请求

请求体:可以承载多个请求参数的数据

 

http响应报文

1.响应行包含:协议版本,状态码及状态码描述

2.状态码如下:

  1xx:指示信息-表示请求已接收,继续处理

  2xx:成功-表示请求已经被成功接受,理解

  3xx:重定向-要完成请求必须进行更进一步操作

  4xx:客户端错误-请求有语法错误或请求无法实现

  5xx:服务端错误-服务器未能实现合法请求

  

  常见状态码:

  200:服务器已经成功接受请求并返回

  304:客户端已经拥有该数据

  400:客户端请求的语法错误,服务器无法理解

  401:身份验证失败

  404:服务器无法根据客户端的请求找到资源

  500:服务器内部错误

  502:网关或代理服务器尝试执行请求,去接受无效回应

 

前端面试

原文:https://www.cnblogs.com/zhouyu0001/p/14319125.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!