您的位置:首页 > 职场人生

web前端面试问题

2017-11-09 14:48 302 查看
1.什么是变量提升,和变量声明。
2.普通函数和箭头函数的区别
3.let 和const的作用域,区别
4.跨域的解决方法
5.闭包的作用域
6.原型
7.如何判断一个单链是一个圆型链
8.TCP和UDP的区别
9.react的生命周期
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画一个三角形
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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: