前端面试题汇总(JS/Http/es6)

21 篇文章 1 订阅

1、什么是oop,你对他是怎么理解的

什么是oop,你对他是怎么理解的_木头没有瓜的博客-CSDN博客

2、js 三大特性

(1)、继承  JS继承_木头没有瓜的博客-CSDN博客

(2)、封装  js 封装_木头没有瓜的博客-CSDN博客_js封装

(3)、多态  js 封装_木头没有瓜的博客-CSDN博客_js封装

3、什么是构造函数  js构造函数_木头没有瓜的博客-CSDN博客

4、JS如何实现重载和多态 JS如何实现重载和多态

5、es6 的 特性

(1)、class      es6 class_木头没有瓜的博客-CSDN博客
(2)、promise    es6 promise_木头没有瓜的博客-CSDN博客_es6 promise
(3)、proxy 和 reflect   es6 proxy 和 reflect_木头没有瓜的博客-CSDN博客

6、JS设计模式 JS常见的四种设计模式 - 乐逍遥_1992 - 博客园

7、JSON.parse(JSON.stringify())的优缺点  JSON.parse(JSON.stringify(obj))实现深拷贝的弊端

8、V8引擎如何运行JS 了解V8引擎如何运行JS - 简书

9、undefined和ReferenceError: xxx is not defined undefined和ReferenceError

10、web 常见攻击  XSS 和 CSRF简述及预防措施_我的博客-CSDN博客_csrf xss

11、http 缓存 http缓存_木头没有瓜的博客-CSDN博客

12、快排 js冒泡排序之快排_木头没有瓜的博客-CSDN博客

13、http 状态码  HTTP的状态码_木头没有瓜的博客-CSDN博客

14、JS数据类型  js数据类型类型 - 乘风破浪的哥哥 - 博客园

15、js怎样添加、移除、移动、复制、创建和查找节点

添加、移除、替换、之前插入、之后插入、复制  appendChild() removeChild()  replaceChild()  insertBefore() insertAfter() cloneNode() 

var para=document.createElement("p"); //创建新的 <p> 元素
var node=document.createTextNode("这是新段落。"); //创建了一个文本节点
para.appendChild(node); //向 <p> 元素追加这个文本节点

16、一次完整的HTTP事务是怎样一个过程?

域名解析 --> 发起TCP的3次握手 --> 建立TCP连接后发起http请求 --> 服务器响应http请求,浏览器得到html代码 --> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) --> 浏览器对页面进行渲染呈现给用户

17、AJAX的理解、AJAX交互过程、如何中断ajax请求   AJAX的理解以及交互过程

18、vue 怎么实现seo  vue 怎么实现seo_木头没有瓜的博客-CSDN博客_vue如何实现seo

19、null 和 undefined   null和undefined的区别 - 简书

console.log(null==undefined);    //true  因为两者都默认转换成了false
console.log(typeof undefined);    //"undefined"  
console.log(typeof null);       //"object"  
console.log(null===undefined);    //false   "==="表示绝对相等,null和undefined类型是不一样的,所以输出“false”

null表示没有对象,即该处不应该有值;null 默认转成 0

undefined表示缺少值,即此处应该有值,但没有定义;undefined 默认转成 NaN

20、用link和@import有什么区别? 深入理解link和@import到底有什么区别? - 浅笑· - 博客园

21、观察者和发布订阅的区别  观察者和发布订阅的区别_木头没有瓜的博客-CSDN博客

22、如何阻止事件冒泡和默认事件

  • w3c的方法是e.stopPropagation(),IE则是使用e.cancelBubble = true
  • w3c的方法是e.preventDefault(),IE则是使用e.returnValue = false;

23、箭头函数  ES6之箭头函数深入理解 - 盗将行 - 博客园

24、介绍下 Set、Map的区别?前端 js中 set, map区别

25、for in 和 for of 的区别   for in 和 for of 的区别_木头没有瓜的博客-CSDN博客

26、进程和线程   线程和进程_木头没有瓜的博客-CSDN博客

27、节流和防抖的实现   用代码实现防抖和节流_木头没有瓜的博客-CSDN博客

28、js创建对象   js 创建对象的几种方式_木头没有瓜的博客-CSDN博客

29、仿照抖音红心点赞效果 仿照抖音直播点击飘心效果_木头没有瓜的博客-CSDN博客

30、描述对象的4个属性:

1.configurable:表示能否通过delete删除此属性,能否修改属性的特性,或能否修改把属性修改为访问器属性,如果直接使用字面量定义对象,默认值为true
2.enumerable: 表示该属性是否可枚举,即是否通过for-in循环或Object.keys()返回属性,如果直接使用字面量定义对象,默认值为true
3.writable: 能否修改属性的值,如果直接使用字面量定义对象,默认值为true
4.value: 该属性对应的值,默认为undefined

31、argument 的理解,与之对应的重载  arguments 的理解_木头没有瓜的博客-CSDN博客_arguments[i]

32、import 和 require 的区别    import和require的区别_木头没有瓜的博客-CSDN博客

33、Symbol 的理解   Symbol 的简单理解_木头没有瓜的博客-CSDN博客

34、如何实现for循环内定时器依次输出123   如何实现for循环内定时器依次输出123_木头没有瓜的博客-CSDN博客_for循环定时器输出

35、typeOf 和 instanceOf 的区别  typeof 和 intanceOf 的区别_木头没有瓜的博客-CSDN博客

36、async 和 promise 的区别  async 和 promise 的区别_木头没有瓜的博客-CSDN博客

37、nginx 负载均衡   nginx 负载均衡_木头没有瓜的博客-CSDN博客

38、cookie和session的区别有哪些 cookie和session的区别有哪些_木头没有瓜的博客-CSDN博客

39、js 值引用和地址引用   js 值引用和地址引用_木头没有瓜的博客-CSDN博客

40、实现微前端有哪些方案  实现微前端有哪些方案_木头没有瓜的博客-CSDN博客

41、ABCD*4=DCBA 求A.B.C.D.的值  ABCD*4=DCBA 求A.B.C.D.的值(四个数字不同_作业帮

42、DNS解析过程 及 TCP/IP 协议  DNS解析详细过程是什么?_木头没有瓜的博客-CSDN博客

43、call 和apply的作用与区别  骗子cd call 和apply的作用与区别

44、什么是会话cookie,什么是持久cookie?   答: cookie是服务器返回的,指定了expire time(有效期)的是持久cookie,没有指定的是会话cookie

45、target、currentTarget的区别?

currentTarget当前所绑定事件的元素

target当前被点击的元素

46、new 操作符具体干了什么? 风雨后见彩虹 - 博客园

47、闭包的理解  闭包的理解_木头没有瓜的博客-CSDN博客

48、js 自定义事件实现

1. 原生提供了3个方法实现自定义事件

2. createEvent,设置事件类型,是 html 事件还是 鼠标事件

3. initEvent 初始化事件,事件名称,是否允许冒泡,是否阻止自定义事件

4. dispatchEvent 触发事件

// 创建一个支持冒泡且不能被取消的look事件
var ev = new Event("look", {"bubbles":true, "cancelable":false});
document.dispatchEvent(ev);
// 事件可以在任何元素触发,不仅仅是document
myDiv.dispatchEvent(ev);

49、浅拷贝和深拷贝的问题

1. 深拷贝和浅拷贝是只针对Object和Array这样的复杂类型的

2. 也就是说a和b指向了同一块内存,所以修改其中任意的值,另一个值都会随之变化,这就是浅拷贝

3. 浅拷贝, "Object.assign() 方法用于将所有可枚举的属性的值从一个或多个源对象复制到目标对象.它将返回目标对象

4. 深拷贝,JSON.parse()和JSON.stringify()给了我们一个基本的解决办法.但是函数不能被正确处理

50、宏任务和微任务  宏任务与微任务?宏任务和微任务面试题

宏任务:DOM渲染后触发,如:setTimeout,setInterval,Ajax,DOM事件 
微任务:DOM渲染前触发,如:Promise,async/await
​​​​​​​微任务执行时机要比宏任务要早

51、网页从输入网址到渲染完成经历了哪些过程? HTML渲染过程详解 - 木的树 - 博客园

52、CommonJS与EsModule  CommonJS与EsModule - 简书

53、BFC及其应用   BFC及其应用_木头没有瓜的博客-CSDN博客

54、解决跨域原理
a、jsonp解决跨域原理:其本质是利用了标签具有可跨域的特性,由服务端返回预先定义好的javascript函数的调用,并且将服务端数据以该函数参数的形式传递过来。缺点:   jsonp跨域的原理以及优缺点_晴天有点孤单-CSDN博客_jsonp跨域的缺点
b、proxyTable原理:浏览器是禁止跨域的,但是服务端不禁止,在本地运行npm run dev等命令时实际上是用node运行了一个服务器,因此proxyTable实际上是将请求发给自己的服务器,再由服务器转发给后台服务器,做了亦曾代理,因为不会出现跨域问题。

55、cdn 加速原理以及实现方式   cdn 加速原理_木头没有瓜的博客-CSDN博客

56、JavaScript 中 undefined 和 not defined 的区别

JavaScript 未声明变量直接使用会抛出异常:var name is not defined,如果没有处理异常,代码就停止运行了。但是,使用typeof undeclared_variable并不会产生异常,会直接返回 undefined

var x; // 声明 x
console.log(x); //output: undefined 

console.log(z); // 抛出异常: ReferenceError: z is not defined

57、原型和原型链,原型链继承,各继承方式   原型(prototype)、原型链和原型继承  

58、作用域链   作用域链_木头没有瓜的博客-CSDN博客_作用域链

59、图片懒加载原理   滚动加载图片(懒加载)实现原理 - flyromance - 博客园

60、四种常用类型判断方法  四种常用类型判断方法 - 简书

61、http 和 https的区别 

Http与Https的基本概念和他们的区别_木头没有瓜的博客-CSDN博客

HTTP与HTTPS的区别 - 爱笑的蛙蛙 - 博客园

62、解释一下什么是箭头函数?

箭头函数是在es6或更高版本中编写函数表达式的简明方法。箭头函数不能用作构造函数,也不支持this,arguments,super或new.target关键字,它最适合非方法函数。 通常,箭头函数看起来像 const function_name =()=> {}。

const greet=()=>{console.log('hello');}
 greet();

63、死锁是什么
当两个以上的运算单元,双方都在等待对方停止运行,以获取系统资源,但是没有一方提前退出时,就称为死锁。 

64、计算机网络TCP/IP 四层结构 计算机网络TCP/IP 四层结构_木头没有瓜的博客-CSDN博客

65、DOM事件流和事件委托 DOM事件流和事件委托_木头没有瓜的博客-CSDN博客

66、setTimeout的工作原理 setTimeout的工作原理_木头没有瓜的博客-CSDN博客

67、前端页面结构组成 前端页面结构组成_木头没有瓜的博客-CSDN博客

68、ES6 数组some()和every()使用   ES6 数组some()和every()使用

69、javascript实现单例模式 javascript实现单例模式_木头没有瓜的博客-CSDN博客

70、Http2和Http1.X的区别 Http2和Http1.X的区别 - 开始认识 - 博客园

71、HTTP2如何使用Nginx 配置 HTTP2 教程——如何使用Nginx 配置 HTTP2 - 简书

72、移动端 常见兼容性问题  ios、android、h5、小程序等安卓苹果兼容问题

73、es6方法数组去重

arr=[...new Set(arr)];
function dedupe(array) {
  return Array.from(new Set(array));       //Array.from()能把set结构转换为数组
}

74、get 和 post的区别  GET和POST两种基本请求方法的区别 - 在途中# - 博客园

75、匿名函数this指向以及变量提升 匿名函数this指向问题_木头没有瓜的博客-CSDN博客

76、promise缺点  promise的三个缺点

77、JavaScript浅析 -- 原生对象、内置对象、宿主对象   原生对象、内置对象、宿主对象

78、DOM 中 Property 和 Attribute 的区别   DOM 中 Property 和 Attribute 的区别 

79、Promise.all和Promise.race  理解和使用Promise.all和Promise.race - 简书

80、promise原理之实现链式调用  promise原理之实现链式调用 - 简书

81、“use strict”? 好处和坏处?   什么是 “use strict”? 使用它的好处和坏处是什么?

82、JS如何实现重载和多态  JS如何实现重载和多态

83、instanceof的底层实现原理  彻底了解instanceof的底层实现原理 - 知乎

84、js动画和 CSS3 动画有什么区别  css3动画与js动画的区别 - 暖暖的心窝子 - 博客园

85、XMLHttpRequest对象​​​​​​​  XMLHttpRequest对象中readyState与status的几种常见状态 

86、什么是nodeJS ? 一种javascript的运行环境,能够使得javascript脱离浏览器运行。

87、Event Loop的过程?promise 定义时传入的函数啥时候执行?          Event Loop的过程?promise 定义时传入的函数啥时候执行?

88、package-lock.json 有什么作用  package-lock.json的作用 - 苍青浪 - 博客园

89、nginx缓存  nginx缓存设置_linux运维的技术博客_51CTO博客

        dns缓存  什么是dns缓存-前端问答-PHP中文网

90、canvas画布污染的问题  解决canvas画布污染的问题

91、canvas的基本属性​​​​​​​  canvas(1) -- canvas的基本属性

92、HTTPS建立连接详细过程  HTTPS建立连接详细过程   使用http与https协议建立连接的过程

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
2021年的Web前端面试题汇总内容广泛,既包含基础知识点,也涉及到最新的前端技术和趋势。以下是一些可能会在2021年的Web前端面试中遇到的问题: 1. HTML、CSS和JavaScript是Web前端的三大基础技术,对于这三个技术的理解和应用灵活性有了更高的要求。 2. ES6和TypeScript是目前前端开发中常用的语言,考察对它们的掌握程度和用法。 3. 关于前端框架,React、Vue和Angular是最常用的三个框架,要求掌握框架的基本原理以及常见的使用场景。 4. CSS预处理器(如Sass、Less)和CSS模块化(如CSS Modules)也是被提及的重要话题。 5. 前端性能优化,包括代码压缩、图片优化、懒加载等,是面试中常见的问题。 6. 移动端开发和响应式设计是近年来前端发展的重点,了解相关技术和适配方案也是必备的知识。 7. 前端工程化方面的知识,如自动化构建工具的使用、模块化开发和代码规范等问题也会涉及。 8. 前端安全性和网络安全的相关问题,如跨站脚本攻击(XSS)和跨站请求伪造(CSRF)等,也是热门考点。 另外,根据个人工作经验和项目经历,还可能会有针对具体技术栈和框架的问题。针对这些问题,应当事先准备好,深入了解和熟悉相关内容,以便在面试时能够清楚、流利地回答和展示自己的能力。同时,也要注重实际项目经验,可以准备一些有关自己在项目中遇到的具体问题及解决方案的案例,以证明自己的经验和能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值