前端面试题及答案

网友投稿 644 2022-11-22

前端面试题及答案

前端面试题及答案

1.请求 三次握手,完成之后,客户端会向服务器发出请求

2、请求方式 Get (get提交方式会在url上面看到,get有限制,get不安全)

Post(post提交数据会放到header内提交,post没有限制,post安全,表单提交和上传都用post)

3、表单中get 和post 的区别

A、Get是从服务器上获取数据,post是向服务器传送数据

B、所以尽量避免get方式提交表单,因为可能为导致安全问题,利于登录中使用get方式,用户输入用户名和密码就会在地址栏中暴露无疑,但是在分页程序中,用get方式就比post 好。

Options

4、最常用的客户端未能获得授权,这个是在401之后输入了不正确的用户名和密码

404:在指定的位置不准存在所申请的资源

和 的概念 是网上应用最为广泛的一种协议,是一个客户端和服务端请求和应答的标准,用于协议都是未加密的,是加密的

是443

7、Flex 布局 Js

var a = 1;

// 如果在Node的REPL环境,可以写成global.a

// 或者采用通用方法,写成this.a

window.a // 1

let b = 1;

window.b // undefined

//const 生命的变量是不可变得变量

const c = 1;

c=2 //会报错

Es6对象和数组的复制

数组:

let arrA = [1,2,3];

let arrB = […arrA];

对象

let objA = {a:1,b:2,c:3}

let objB = {…objA};

//有了 async await 之后; 当执行到await的时候就会等待timeOut(1);返回值之后再往下执行;

function timeOut(num) {

return new Promise((resolve, reject) => {

setTimeout(() => { resolve(2 * num)}, 2000);

} ) }

async function name() {

let a = await timeOut(1);

let b = await timeOut(2);

console.log(a + b); }

name();

Let 和 var的区别

相同点:都是定义变量关键字。

区别:

作用域只限制与当前代码模块—var的作用域则是函数体function(){}

在相同的作用域下不能有相同的变量,否则会报错 -------var 中则可以出现相同变量名,不会报错

Let和const 区别

相同:都是es6新特性

定义变量关键字

作用域一样

区别点:

Let初始化可以不用赋值,const初始化必须赋值

Se6 中的class 其实就是构造函数的另一种写法

2.什么是闭包?

闭包就是定义就是:定义在一个函数内部的函数。

function fn1 () {

var a = 2 var

b = ‘abc’

function fn2 () {

console.log(a)

}

}

fn1()

闭包的特点: 1. 作为一个函数变量的一个引用,当函数返回时,其处于激活状态。 2. 一个闭包就是当一个函数返回时,一个没有释放资源的栈区。

闭包的用途:

读取函数内部的变量和就是让这些变量的值始终保存在内存中,不会再fn1调用后被自动清除。

闭包缺点:

内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在ie中可能导致内存泄漏,解决办法是,在退出函数之前,将不使用的局部变量全部删除。

mvc与mvvm的区别 Mvvm(angular)真正的意义是将页面和数据逻辑分离的模式,把数据绑定工作放到一个js里面去实现,而这个js的主要目的就是完成数据的绑定。更重要的是双向绑定,更方便的维护页面,而不用手动更新他们。

在mvc中model不依赖view,但是view依赖model,因为业务逻辑代码在view里面实现,导致view更改也是比较困难的,最后业务逻辑是无法重用的。

Mvvm的优点:

低耦合

可重用性

独立开发

可测试性

Js 数组有哪些方法?

Join()

Push() pop()

Shift()unshit()

Splice()slice()

Concat()

Map() forEach()

IndexOf()

Ervery() sort()

js 判断一个对象是否属于某一类1.) typeof

image.png 2.) Instanceof

image.png 3.) constructor 属性 Js 种每个对象属性都有一个constructor属性,

image.png 4.) Object.prototype.toString.call()

image.png 什么是跨域?说出几种解决跨域的办法? 跨域是:指浏览器不能执行其他网站的脚本,它是由浏览器的同源策略造成的,浏览器对js实施的安全限制。

同源是指:域名、协议、端口均为相同。

解决跨域的办法

Jsonp 跨域 只能够实现get请求

PostMessage 跨域

什么是函数防抖和节流? 节流:是指一定时间内js方法只跑一次。例如人的眨眼睛,就是一定时间内眨一次。

防抖:是指频繁触发的情况下,只有足够的空闲时间,才执行代码一次。

Flex 布局和传统布局有什么区别? 传统布局:是基于盒模型,依赖display属性 、position属性、float属性。

Flex 布局:可以渐变、完成、响应式的实现各种页面布局,目前所有浏览器有支持。

举例前端性能优化? A) 减少资源合并和压缩

C) 将外部脚本置底

D) 懒加载

E) 将css放到head 中

F) 避免重复的资源请求

G) 代码优化

H) 图片压缩

原型链和作用域链 作用域链:作用域是针对变量的,先在自己的变量范围中查找,如果找不到,就会沿着作用域往上找。

image.png 原型链: 是针对构造函数的,先创建一个函数, 然后定义一个变量, new这个函数, 那么new 出来的函数就会继承创建出来的那个函数属性,然后访问new出来的这个函数的某个属性,但是我并没有在new出来的函数中定义这个变量,那么它就会一直往上找。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:H5/web前端工程简历中的项目经验
下一篇:Vue实例初始化的选项配置对象详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~