web前端面试问题

1.什么是变量提升,和变量声明。

变量提升 只是提升变量的声明,并不会把赋值也提升上来

2.普通函数和箭头函数的区别

在箭头函数中调用 this 时,仅仅是简单的沿着作用域链向上寻找,找到最近的一个 this 拿来使用
箭头函数在定义之后,this 就不会发生改变了,无论用什么样的方式调用它,this 都不会改变;

3.let 和const的作用域,区别

4.跨域的解决方法

5.闭包的作用域

6.原型

7.如何判断一个单链是一个圆型链

8.TCP和UDP的区别

TCP:面向连接、传输可靠(保证数据正确性,保证数据顺序)、用于传输大量数据(流模式)、速度慢,建立连接需要开销较多(时间,系统资源)。

UDP:面向非连接、传输不可靠、用于传输少量数据(数据包模式)、速度快。

9.react的生命周期

https://www.jianshu.com/p/4784216b8194

10.vue双向绑定的原理

11.什么是事件委托,什么是事件冒泡

12.session,cookie,localstorage,sessionstorage,的区别.localstorage可以怎么去除.

 

1.http请求的方法

2.node中express中间件的原理

3.vue双向绑定的原理

4.数组去重

5.如何遍历二叉树

 

 

1.说一下关系型数据库与键值型数据库的区别

2.上传文件很多的时候,如何优化上传的速度

3.如果报网络超时的错误应如何解决

4.图片加载特别慢,应该如何解决

5.从输入域名后的响应流程是什么

1.状态码的种类及含义

2.h5存储方法

3.css盒子模型及选择器

4.h5,css3新增元素

5.跨域问题,如何解决,https://zhuanlan.zhihu.com/p/28562290,协议,域名,端口不同就叫跨域

6.看什么网站学习

7.position的属性

8.浏览器的内核

IE:Trident ;safari chrome:webkit;FireFox:Gecko

9.call函数实现继承   https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/call

10.深拷贝与浅拷贝

对于字符串类型,浅复制是对值的复制,对于对象来说,浅复制是对对象地址的复制,并没 有开辟新的栈,也就是复制的结果是两个对象指向同一个地址,修改其中一个对象的属性,则另一个对象的属性也会改变,而深复制则是开辟新的栈,两个对象对应两个不同的地址,修改一个对象的属性,不会改变另一个对象的属性。

 

var cloneObj = function(obj){

 var str, newobj = obj.constructor === Array ? [] : {};

 if(typeof obj !== 'object'){ return; } 

else if(window.JSON){ str = JSON.stringify(obj), //系列化对象 

 newobj = JSON.parse(str); //还原 }

 else { for(var i in obj){ newobj[i] = typeof obj[i] === 'object' ? cloneObj(obj[i]) : obj[i]; } }

 return newobj;};

 

 

 

 

 

笔试题目:

基础图:

1.用css画一个三角形

.sanjiaoxing{

height: 0;

width: 0;

border: 30px solid transparent;

border-top-color: red

}

2.正则表达式

3.如何判断一个元素是否在可视化区域

4.js的基本类型有哪些

5.解释一下css盒子重叠部分

问答题:

1.箭头函数的一些输出结果

2.如何处理行内块级元素的缝隙

3.http的常见状态码

4.domready和onload的区别

编程题

1.4次隔3毫秒就弹出一个弹窗结束

 


function timeout(ms) {
  return new Promise((resolve, reject) => {
    setTimeout(resolve, ms, 'done');
  });
}

timeout(100).then((value) => {
  console.log(value);
});

timeout方法返回一个Promise实例,表示一段时间以后才会发生的结果。过了指定的时间(ms参数)以后,Promise实例的状态变为resolved,就会触发then方法绑定的回调函数。

 

 

 

2.用js实现二叉树及遍历

面试:

1.cookier和session的区别

1),session 在服务器端,cookie 在客户端(浏览器)

2),session 默认被存在在服务器的一个文件里(不是内存)

3),session 的运行依赖 session id,而 session id 是存在 cookie 中的,也就是说,如果浏览器禁用了 cookie ,同时 session 也会失效(但是可以通过其它方式实现,比如在 url 中传递 session_id)

4),session 可以放在 文件、数据库、或内存中都可以。

5),用户验证这种场合一般会用 session

因此,维持一个会话的核心就是客户端的唯一标识,即 session id

2.http的方法有哪些,get和post的区别,发送参数的分别放在哪个地方

3.原型继承的_proto_属性,用图画出原型

对象__proto__属性的值就是它所对应的原型对象:

var one = {x:1};

var two =newObject();

one.__proto__===Object.prototype// true

two.__proto__===Object.prototype// true

one.toString===one.__proto__.toString// true

prototype

不像每个对象都有__proto__属性来标识自己所继承的原型,只有函数才有prototype属性。

构造函数,通过prototype来存储要共享的属性和方法,也可以设置prototype指向现存的对象来继承该对象。

 

4.异步的方法,手写一个promise的方法

5.跨域如何解决 https://github.com/wengjq/Blog/issues/2

6.css3IE盒子模型与标准盒子模型的区别

IE盒子模型的content包括padding与border  可用box-sizing设置

box-sizing:content-box 标准盒模型,默认的

box-sizing:border-box IE盒模型

7.vue的组件之间的通信,如何把子组件的消息传递到父组件

8.js如何设置一个私有属性

9.如何实现深拷贝,浅拷贝

10.call,apply,bind方法的区别

就是为了改变函数体内部 this 的指向。bind方法返回的仍然是一个函数,

11.http的事务

一.域名解析

二.发起TCP的3次握手

三.建立TCP连接后发起http请求

四.服务器端响应http请求,浏览器得到html代码

五. 浏览器解析html代码,并请求html代码中的资源.

六.浏览器对页面进行渲染呈现给用户

12.js基本数据类型和引用型数据类型的区别

JSON.parser()JSON.stringify()

秋招:

杭州有赞

1)数组去重

2)优化keydown,keyup事情发ajax请求

抖动与节流

3)二叉树的深度优先遍历

百度第一面

手写数组统计出现次数最多的数字,并返回相应的index

arr = [1,[2,[3,4,5]]];

返回一个数组

封装一个ajax请求

vue与react父子组件传递的方式,这两者的区别

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值