码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【秋招面经】全网最全大华前端题目总结


    前言

    本次主要搬运大华和汉得面试的常问问题

    文章目录

    • 前言
          • 本次主要搬运大华和汉得面试的常问问题
    • 问题总结
          • call()、apply()了解吗,应用场景?call、apply、bind的区别?
          • Set和Map?
          • 页面布局有哪些布局?弹性盒模型flex怎么使用的,场景,flex布局常用哪些属性呢?怎么垂直居中?
          • 导航守卫钩子函数?
          • 了解websocket吗?
          • 使用d3.js时遇到了什么困难?
          • css3新特性了解哪些,说一下?CSS3与CSS2的区别?html5有什么新特性?ES5了解吗?ES6你懂哪些?ES5和ES6的区别是什么?
          • null和undefined的区别?null是什么类型?
          • 浏览器缓存(存储)?
          • DOM添加?
          • CSS样式继承、优先级
          • js数据类型 ?
          • SSL?
          • 渲染过程 ?
          • JSON?JSONP?
          • 响应式布局?和css的哪个属性相关?css怎么设置可以实现响应式布局?
          • cookie、sessionStorage、localStorage的特点以及区别?sessionStorage、localStorage在多标签页面里面能够共享吗?
          • 伪类和伪元素区别及属性?
          • 深拷贝和浅拷贝?如何实现深拷贝?
          • 了解ref吗?
          • vue中对于数组和对象的定义有什么不同?
          • 数组遍历的方法 ?数组其他方法?如何删除数组中某个元素?
          • for of 和for in区别 ?for和forEach的区别
          • map和forEach区别?
          • vue2和vue3的区别?
          • proxy遍历对象需不需要递归?proxy怎么进行递归的?
          • 热更新的原理(要具体)?
          • 按需加载import的原理?
          • 定时器setTimeout和setinterval区别,底层原理?js中定时器函数包括哪些?
          • 事件循环?
          • 进程和线程?
          • 栈和队列?栈和堆?
          • 垂直居中怎么设置?
          • 节流防抖区别?
          • http状态码? 304、404?
          • vue父组件调用子组件的方法?
          • 介绍一下promise?promise状态 状态如何改变 方法及参数 方法怎么用?promise和async的联系
          • nexttick如何使用?
          • 宏任务微任务及执行顺序?
          • 两栏布局 左边固定 右边灵活?用flex 实现 不用flex实现 ?
          • watch怎么监听数据?
          • webpack,loader,plugins?
          • 仓库是什么意思 把文件发布到github上的步骤?
          • 迭代器怎么实现?
          • rem em 的区别 再说几个类似的其他单位?
          • $attrs listener中 listener监听的是什么?
          • 为什么js文件放到css文件的后面?
          • 你遇到报错怎么办?
          • js有哪些类型?这些值是放在堆还是放在栈上?怎么判断是数组还是对象?
          • 原型和原型链?手绘原型链?
          • get和post方法的区别?
          • w3c盒子模型和标准盒子模型 ?
          • css行内、内联、外联样式表的区别,你用的是什么?为什么要用外部样式表?
          • vue,你知道vue的底层原理吗?
          • 闭包?优缺点?应用场景?
          • opcity和display和visibility区别?
          • 跨域问题,怎么解决?
          • == 和===?
          • js中0.1+0.2不等于0.3问题
          • vue中methods和computed属性区别?生命周期created和mouted区别?
          • 组件中data为什么是一个函数?
          • v-model原理,另一种方法实现数据绑定效果?
          • Vue生命周期函数?
          • 父子组件通信方法?常用的组件通信的方法?
          • https和http?http1.1和2.0?https建立请求连接过程? http请求过程 ?
          • url输入到渲染页面发生了什么?
          • CA证书的过程?
          • 强缓存和协商缓存?
          • var let const区别?
          • symbol的应用场景
          • vue双向绑定原理?响应式原理?
          • jquery和Vue的区别?jquery中用过什么类选择器?jquery封装过组件吗?jquery为什么可以链式调用?
          • 说一下对css的理解?css的编程规划
          • vue的编码规范?
          • keep-alive的钩子函数?
          • 箭头函数与普通函数有什么区别?
          • 函数调用和原型链调用有什么区别?
          • Ajax和fetch的异同?ajax原理
          • TCP三次握手?
          • 垃圾回收机制?
          • 权限控制的路由是怎么配置的?
          • vue的路由模式?
          • 阻止冒泡?
          • 字符串模板实现?
          • ul li 点击事件,在ul上点击如何捕获li上的事件 ?
          • css动画学过哪些?
          • css居中布局
          • 回流重绘 ?transform与回流重绘?
          • 什么是BFC,BFC的作用,如何开启BFC ?
          • 说说this的理解?this什么时候被绑定
          • v-for key的作用及原理 ?
          • 说说单向数据流的理解
          • vuex和事件总线区别?
          • 请求的方式有哪些 ?说说OPTONS请求
          • 装饰者模式?
          • 内联元素的特性?
          • new操作符做了什么?
          • 左固定,右自适应怎么实现?
          • 如果页面有两个一样的ID,要用哪种选择器一次性获取他们的节点?
          • Jquery选择器有哪些?
          • 手写点击按钮元素隐藏,再点击元素显示的代码?
          • promise如何实现同步,可以实现同步吗?
          • 如何实现不下载图片,但能出现图片?
          • 立即执行函数应用场景,哪些库会用到?
          • webpack打包流程,哪些优化方式?
          • echarts图表如何保证数据最新?
          • 有一个链表如[K"name":“'linda",age":15,"adress":“HKJ怎么获取里面的age然后对它进行排序?
          • 怎么自定义http请求头?
          • 如果状态码错误了,怎么排查他的错误?
          • 冒泡排序怎么排?
          • 数组本身的排序方法有哪些,如何继承一个方法:若存在那个元素就返回true

    问题总结


    call()、apply()了解吗,应用场景?call、apply、bind的区别?

    bind和call、apply有什么作用?它们的区别是什么?

    Set和Map?

    Set 和 Map 的区别

    页面布局有哪些布局?弹性盒模型flex怎么使用的,场景,flex布局常用哪些属性呢?怎么垂直居中?

    前端7大常用布局方式
    flex布局

    导航守卫钩子函数?

    全局路由守卫:只要路由发生了路由变化,守卫就能够监听到。

    • beforeEach :全局前置守卫,
    • beforeResolve: 全局解析守卫,确保在导航被确认之前,同时在所有组件内守卫和异步路由组件被解析之后,解析守卫就被正确调用。
    • afterEach: 全局后置守卫,对于分析、更改页面标题、声明页面等辅助功能以及许多其他事情都很有用。

    路由独享守卫:只负责一条路的守卫,beforeEnter;

    组件路由守卫:只负责单个组件的守卫。

    • beforeRouteEnter (在渲染该组件的对应路由被验证前调用);
    • beforeRouteLeave (在导航离开渲染该组件的对应路由时调用);
    • beforeRouteUpdate(在当前路由改变,但是该组件被复用时调用)。

    应用场景:在在线商城项目中,每一步路由跳转都要判断用户是否登录,只有当用户登录后,才能够跳转到其他页面,如果用户没有跳转,就只能去login页面,这时候就要使用全局路由守卫。如果用户想去查看支付成功的页面,那么必须先去支付页面进行支付,而不能直接从首页跳转到支付成功的页面,这时就要用路由独享守卫。

    了解websocket吗?

    WebSocket是一种在单个TCP连接上进行全双工通信的协议。使得客户端和服务器之间的数据交换变得更加简单,并允许服务端主动向客户端推送数据。要知道在websocket之前服务器只能接收浏览器的请求。注:信息只能单向传送为单工;信息能双向传送但不能同时双向传送称为半双工;信息能够同时双向传送则称为全双工。

    使用d3.js时遇到了什么困难?

    D3代表Data-Driven Documents 。 D3.js是一个用于根据数据操作文档的JavaScript库。 D3.js是一个动态的,交互式的在线数据可视化框架,用于大量网站。 D3.js由Mike Bostock编写,作为早期可视化工具包Protovis的继承者而创建。

    css3新特性了解哪些,说一下?CSS3与CSS2的区别?html5有什么新特性?ES5了解吗?ES6你懂哪些?ES5和ES6的区别是什么?

    CSS3新增了哪些新特性?
    简单来说就是css2有的属性css3都有,但是css3有的属性css2不一定有。 CSS3是最新的版本,效果上CSS2是比不了的,css3可以说是css2的进阶,因为css3是在css2的基础上增加了一些新的属性。css2推荐的是内容和表现效果分离的方式,css3是朝着模块化发展的。

    html5新增的特性:1、语义化标签(header、footer、nav等);2、webStorage储存机制;3、history对象;4、表单类型(email、tell、date等);5、媒体元素video和audio;6、canvas。html5新增了哪些特性

    ECMAScript5,即 ES5,是 ECMAScript 的第五次修订,于 2009 年完成标准化
    作为ECMAScript第五个版本(第四版因为过于复杂废弃了),浏览器支持情况可看第一副图,增加特性如下。

    1. strict模式

    严格模式,限制一些用法,‘use strict’;

    1. Array增加方法

    增加了every、some 、forEach、filter 、indexOf、lastIndexOf、isArray、map、reduce、reduceRight方法

    PS: 还有其他方法 Function.prototype.bind、String.prototype.trim、Date.now

    1. Object方法
      Object.getPrototypeOf
      Object.create
      Object.getOwnPropertyNames
      Object.defineProperty
      Object.getOwnPropertyDescriptor
      Object.defineProperties
      Object.keys
      Object.preventExtensions / Object.isExtensible
      Object.seal / Object.isSealed
      Object.freeze / Object.isFrozen

    ECMAScript6,即 ES6,是 ECMAScript 的第六次修订,于 2015 年完成,也称 ES2015
    ES6 是继 ES5 之后的一次改进,相对于 ES5 更加简洁,提高了开发效率.
    你知道ES5 和 ES6 的区别吗?,能说出说几个 ES6 的新增方法吗?

    null和undefined的区别?null是什么类型?

    undefined和null两种数据类型的区别

    浏览器缓存(存储)?

    ​ 浏览器缓存的全过程:

    浏览器第一次加载资源,服务器返回 200,浏览器从服务器下载资源文件,并缓存资源文件与 response header,以供下次加载时对比使用;
    下一次加载资源时,由于强制缓存优先级较高,先比较当前时间与上一次返回 200 时的时间差,如果没有超过 cache-control 设置的 max-age,则没有过期,并命中强缓存,直接从本地读取资源。如果浏览器不支持HTTP1.1,则使用 expires 头判断是否过期;
    如果资源已过期,则表明强制缓存没有被命中,则开始协商缓存,向服务器发送带有 If-None-Match和 If-Modified-Since 的请求;
    服务器收到请求后,优先根据 Etag 的值判断被请求的文件有没有做修改,Etag 值一致则没有修改,命中协商缓存,返回 304;如果不一致则有改动,直接返回新的资源文件带上新的 Etag 值并返回 200;
    如果服务器收到的请求没有 Etag 值,则将 If-Modified-Since 和被请求文件的最后修改时间做比对,一致则命中协商缓存,返回 304;不一致则返回新的 last-modified 和文件并返回 200;

    DOM添加?

    获取dom节点的五种方式:
    document.getElementById(“标签的id名”) 返回获取到的标签节点对象
    document.getElementsByTagName(“标签名”) 根据标签的名字获取多个 节点对象返回伪数组(伪数组 不能直接进行dom操作 必须取出其中元素才可以操作) 如如获取小li标签
    document.getElementsByClassName(“标签的class名字”);返回伪数组对象
    Html5 推出的document.querySelector(“选择器”) var firstBox = document.querySelector(‘.app’);
    Html5推出的document.querySelectorAll(“选择器”);

    createElement()方法能够根据参数指定的标签名称创建一个新元素,并返回新建元素的引用,用法如下

    var element=document.createElement("tagName");
    
    • 1

    appendChild()方法可向当前节点的子节点列表的末尾添加新的子节点,用法如下

    appendChild(newChild);
    
    • 1
    CSS样式继承、优先级

    关于文字样式的属性,都具有继承性。这些属性包括:color、 text-开头的、line-开头的、font-开头的。
    关于盒子、定位、布局的属性,都不能继承。
    CSS优先级与继承

    js数据类型 ?

    值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol。

    引用数据类型(对象类型):对象(Object)、数组(Array)、函数(Function),还有两个特殊的对象:正则(RegExp)和日期(Date)。

    SSL?

    超文本传输安全协议(英语:HyperText Transfer Protocol Secure,缩写:HTTPS:常称为HTTP over TLS.HTTP over SSL或HTTP Secure)是一种通过计算机网络进行安全通信的传输协议,HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换资料的隐私与完整性,这个协议由网景公司(Netscape)在1994年首次提出,随后扩展到5联

    传输层安全性协议(英语:Transport Layer Security,缩写:TLS)及其前身安全套接层(英语:Secure Sockets Layer,缩写:SSL)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。网景公司(Netscape)在1994年推出首版网页览器·网景导航者时,推出HTTPS协议,以5SL进行加密,这是SSL的起源,IETF将SSL进行标准化。许多网站,如Google、Facebook、Wikipedia等也以这个协议来创健安全连线,发送资料。目前已成为互联网上保密通信的工业标准,SSL包含记录层(Record Layer)和传输层,记录层助议确定传输层数据的封装格式。传输层安全协议使用X.509认证,之后利用非对称加密演算来对通信方做身份认证,之后交换对称密匙作为会谈密匙(Session key)。这个会谈密匙是用来将通信两方交换的资料做边加密,保证两个应用间通信的保密性和可靠性,使客户与服务器应用之间的通信不被攻击者窃听.
    SSL协议原理详解

    渲染过程 ?

    1.根据html文件构建DOM树和CSSOM树。构建DOM树期间,如果遇到JS,阻塞DOM树及CSSOM树的构建,优先加载JS文件,加载完毕,再继续构建DOM树及CSSOM树。

    2.构建渲染树(Render Tree)。

    3.页面的重绘(repaint)与重排(reflow,也有称回流)。页面渲染完成后,若JS操作了DOM节点,根据JS对DOM操作动作的大小,浏览器对页面进行重绘或是重排。

    浏览器如何渲染页面?

    JSON?JSONP?

    JSON是一种纯字符串形式的数据,它本身不提供任何方法(函数),非常适合在网络中进行传输。JavaScript、PHP、Java、Python、C++等编程语言中都内置了处理JSON数据的方法。
    JSON是基于JavaScript(Standard ECMA-2623 rd Edition-December1999)的一个子集,是一种开放的、轻量级的数据交换格式,采用独立于编程语言的文本格式来存储和表示数据,易于程序员阅读与编写,同时也易于计算机解析和生成,通常用于在Wb客户端(浏览器)与Web服务器端之间传递数据。
    Json作为一种通用的数据格式,大家都可以使用json格式来进行数据的传输。

    对象转化为Json

    var jsonStr = JSON.stringify(对象);
    
    • 1

    json转对象

    var jsonObj = JSON.parse(json字符串);
    
    • 1

    什么是JSONP?
    首先提一下JSON这个既念,JSON是一种轻量级的数据传输格式,被广泛应用于当前Wb应用中。JSON格式数据的编码和解析基本在所有主流语言中都被实现,所以现在大部分前后端分斋Q的架构都以JSON格式进行数据的传输。
    那么JSONP是什么呢?
    首先抛出浏览器同源策路Q这个概念,为了保证用户访问的安全,现代这刘览器使用了同源策路,即不允许访问非同源的页面,详细的概念大家可以自行百度。这里大家只要知道,在ajax中,不允许请求非同源的URL就可以了,比如www.a.com下的一个页面,其中的ajax请求是不允许访问www.b.com/c.php这样一个页面的,
    USONP就是用来解决跨域请求问题的,那么具体是怎么实现的呢?

    JSONP原理
    ajax请求受同源策略影响,不允许进行跨域请求,而script标签src属性中的链接却可以访问跨域的s脚本,利用这个特性,服务端不再返回JSON格式的数据,而是返回一段调用某个函数的js代码,在src中进行了调用,这样实现了跨域。

    响应式布局?和css的哪个属性相关?css怎么设置可以实现响应式布局?

    响应式布局是同一页面在不同的屏幕上有不同的布局,即只需要一套代码使页面适应不同的屏幕
    什么是响应式布局?响应式布局有几种方法?

    cookie、sessionStorage、localStorage的特点以及区别?sessionStorage、localStorage在多标签页面里面能够共享吗?

    【秋招面经】之神策数据第一个问题
    localStorage、sessionStorage同一网站下共享问题

    伪类和伪元素区别及属性?

    伪类: 用来选择那些不能够被普通选择器选择的文档之外的元素,比如:hover
    伪类用于当已有元素处于的某个状态时,为其添加对应的样式,这个状态是根据用户行为而动态变化的。
    比如,当用户悬停在指定的元素时,我们可以通过:hover 来描述这个元素的状态。

    虽然它和普通的 css 类相似,可以为已有的元素添加样式,但是它只有处于 dom树无法描述的状态下才能为元素添加样式,所以将其称为伪类

    常见伪类::link,:visited,:hover,:active,:focus,:not(),:first-child,:last-child,:nth-child,:nth-last-child,:only-child,:target,:checked,:empty,:valid

    伪元素:

    伪元素用于创建一些不在文档树中的元素,并为其添加样式。比如说,我们可以通过:before 来在一个元素前增加一些文本,并为这些文本添加样式。虽然用户可以看到这些文本,但是这些文本实际上不在文档树中

    伪元素前面是两个冒号,E::first-line 伪元素。会创造出不存在的新元素,由于 css 对单冒号的伪元素也支持,单双冒号都支持,但实际上现在css3 已经明确规定了伪类单冒号,伪元素双冒号的规则,用于区分它们

    ::before/:before在被选元素前插入内容::after/:after 在被元素后插入内容,其用法和特性与:before相似::placeholder 匹配占位符的文本,只有元素设置了placeholder 属性时,该伪元素才能生效

    对于伪元素 :before和 :after 而言,属性 content 是必须设置的,它的值可以为字符串,也可以有其它形式,比如指向一张图片的 URL

    • 伪类和伪元素都是用来表示文档树以外的"元素"。
    • 伪类和伪元素分别用单冒号:和双冒号::来表示。
    • 伪类和伪元素的区别,最关键的点在于如果没有伪元素(或伪类),是否需要添加- 元素才能达到目的,如果是则是伪元素,反之则是伪类。
    深拷贝和浅拷贝?如何实现深拷贝?

    深拷贝和浅拷贝

    js中实现深拷贝的4种方法

    了解ref吗?

    vue2 中 ref 的使用

    vue中对于数组和对象的定义有什么不同?

    vue遍历数组和对象的方法以及他们之间的区别

    数组遍历的方法 ?数组其他方法?如何删除数组中某个元素?

    【JavaScript总结】之数组

    for of 和for in区别 ?for和forEach的区别

    forEach,for in,for of循环的用法

    map和forEach区别?

    JS中Map和ForEach的区别

    vue2和vue3的区别?

    vue2.0和vue3.0的区别

    proxy遍历对象需不需要递归?proxy怎么进行递归的?

    Proxy可以对整个对象进行代理,不需要像Object.defineProperty()那样递归遍历对象的每一个属性来为它们添加get、set达到监听效果。Vue3使用Proxy代替了Object.defineProperty()实现数据的劫持,优化了代码,减少了大部分性能。

    热更新的原理(要具体)?

    【webpack】详解

    按需加载import的原理?

    按需加载——前端性能优化思想浅析

    定时器setTimeout和setinterval区别,底层原理?js中定时器函数包括哪些?

    使用setTimeout实现setInterval

    事件循环?

    事件循环机制(Event Loop)的基本认知

    进程和线程?

    进程与线程

    栈和队列?栈和堆?

    栈和队列(Stack & Queue)
    一文读懂堆与栈的区别

    垂直居中怎么设置?

    8种垂直居中的方法

    节流防抖区别?

    节流: n 秒内只运行一次,若在 n 秒内重复触发,只有一次生效
    防抖: n 秒后在执行该事件,若在 n 秒内被重复触发,则重新计时
    一个经典的比喻:
    想象每天上班大厦底下的电梯。把电梯完成一次运送,类比为一次函数的执行和响应
    假设电梯有两种运行策略 debounce 和 throttle,超时设定为15秒,不考虑容量限制
    电梯第一个人进来后,15秒后准时运送一次,这是节流
    电梯第一个人进来后,等待15秒。如果过程中又有人进来,15秒等待重新计时,直到15秒后开始运送,这是防抖。

    相同点:
    都可以通过使用 setTimeout 实现
    目的都是,降低回调执行频率。节省计算资源

    不同点:
    函数防抖,在一段连续操作结束后,处理回调,利用clearTimeout和 setTimeout实现。函数节流,在一段连续操作中,每一段时间只执行一次,频率较高的事件中使用来提高性能
    函数防抖关注一定时间连续触发的事件,只在最后执行一次,而函数节流一段时间内只执行一次

    应用场景:
    防抖在连续的事件,只需触发一次回调的场景有:
    • 搜索框搜索输入。只需用户最后一次输入完,再发送请求
    • 手机号、邮箱验证输入检测
    • 窗口大小resize。只需窗口调整完成后,计算窗口大小。防止重复渲染。
    节流在间隔一段时间执行一次回调的场景有:
    • 滚动加载,加载更多或滚到底部监听
    • 搜索框,搜索联想功能

    http状态码? 304、404?

    网络状态响应码用来表示网页服务器HTTP响应状态的3位数字代码。请求状态码如果1开头就是临时相应,2开头一般表示成功,3开头是重定向,4开头是客户端错误,5开头是服务器错误。平时常见的响应状态码包括:200(成功)、301(永久重定向)、302(临时重定向)、400(错误请求)、401(未授权)、403(禁止)、404(未找到)、500(服务器内部错误)、503(服务不可用)

    vue父组件调用子组件的方法?

    vue 父组件调用子组件的方法

    介绍一下promise?promise状态 状态如何改变 方法及参数 方法怎么用?promise和async的联系

    Promise用法小结
    【async和await】深入理解

    nexttick如何使用?

    说说nextTick的使用和原理?

    宏任务微任务及执行顺序?

    【JavaScript】事件循环机制

    两栏布局 左边固定 右边灵活?用flex 实现 不用flex实现 ?

    实现两栏布局

    watch怎么监听数据?

    vue中的watch监听数据变化以及watch中各属性详解

    webpack,loader,plugins?

    【webpack】详解

    仓库是什么意思 把文件发布到github上的步骤?

    github提交步骤

    迭代器怎么实现?

    JS Iterator(迭代器)

    rem em 的区别 再说几个类似的其他单位?

    rem和em的区别

    $attrs listener中 listener监听的是什么?

    $ attrs和$ listeners

    为什么js文件放到css文件的后面?

    css放上面js放下面的原因:1、在加载html生成DOM tree的时候,可以同时对DOM tree进行渲染,这样可以防止闪跳,白屏或者布局混乱;2、javascript加载后会立即执行,同时会阻塞后面的资源加载。

    你遇到报错怎么办?

    前端遇到报错,怎么处理?

    js有哪些类型?这些值是放在堆还是放在栈上?怎么判断是数组还是对象?

    JS中数据对于存储可以分为两种数据类型:基本类型和引用类型
    基本类型:Number,String,Boolean,Null,Undefined
    这些类型的值存放在栈区,函数调用时传递的是变量的值(值)。
    引用类型:Object,Array,Function
    这些类型的对象存放在堆区,对象的地址存放在栈区,函数调用时传递的是对象的地址(址)。
    【JavaScript面试】如何判断变量为对象或数组?

    原型和原型链?手绘原型链?

    原型和原型链

    get和post方法的区别?
    • 应用场景:GET请求是一个幂等请求(不会对服务器的运行状态造成任何的负担与阻塞),一般Get请求用于对服务器资源不会产生影响的场景,比如请求一个网页的资源。而Post不是一个幂等请求,一般用于对服务器资源会产生影响的情景,比如注册用户这一类操作。
    • 是否缓存:浏览器一般会对Get进行缓存,但很少对Post请求缓存。
    • 发送的报文格式:Get请求的报文中实体部分为空,Post请求的报文中实体部分一般为向服务器发送的数据。
    • 安全性:Get请求可以将请求的参数放入url中向服务器发送,这样的做法相对于Post请求来说不太安全,因为url会被保留在历史记录中。
    • 请求长度:浏览器由于对url长度的限制,所以会影响get请求发送数据时的长度。这个限制时浏览器规定的,并不是RFC规定的。
    • 参数类型:post的参数传递支持更多的数据类型。
    w3c盒子模型和标准盒子模型 ?

    搬运大华和汉得前端题目第六题

    css行内、内联、外联样式表的区别,你用的是什么?为什么要用外部样式表?

    CSS三种样式表(内部样式表、行内样式表、 外部样式表)

    vue,你知道vue的底层原理吗?

    面试题:你了解vue的底层原理吗?

    闭包?优缺点?应用场景?

    什么是闭包,闭包的优缺点,闭包的使用场景

    opcity和display和visibility区别?

    CSS之Display、Visibility和Opactity的区别

    跨域问题,怎么解决?

    什么是跨域?跨域解决方法

    == 和===?

    js中==和===区别

    js中0.1+0.2不等于0.3问题

    js中0.1+0.2不等于0.3问题,解决方法

    vue中methods和computed属性区别?生命周期created和mouted区别?

    Vue中methods和computed的区别
    Vue生命周期中mounted和created的区别

    组件中data为什么是一个函数?

    vue中的data为什么是一个函数?起到什么作用?
    组件实例对象data必须为函数,目的是为了防止多个组件实例对象之间共用一个data,产生数据污染。

    v-model原理,另一种方法实现数据绑定效果?

    v-model的原理及三种实现方法

    Vue生命周期函数?

    VUE生命周期

    父子组件通信方法?常用的组件通信的方法?

    父子组件通信常用方法

    父给子:props;
    子给父:自定义事件;
    任意组件通信:全局事件总线;

    ​ 另外,vuex、插槽、路由传参、本地存储都是可以进行组件之间传值的。

    https和http?http1.1和2.0?https建立请求连接过程? http请求过程 ?

    https和http的区别
    http1.0,http1.1和http2.0的区别
    HTTPS建立连接详细过程
    HTTP请求的完全过程

    url输入到渲染页面发生了什么?

    1、浏览器的地址栏输入URL并按下回车
    2、浏览器查找当前URL是否存在缓存,并比较缓存是否过期
    3、DNS解析URL对应的IP
    4、根据P建TC连接(三次握手)
    5、HTTP发起请求
    6、服务器处理请求,浏览器接HTTP响应
    7、渲染页面,构建DOM树
    8、关闭TCP连接(四次挥手)

    CA证书的过程?

    构建CA证书详解过程步骤

    强缓存和协商缓存?

    【浏览器缓存机制】

    var let const区别?

    面试官:说说var、let、const之间的区别

    symbol的应用场景

    javascript中symbol类型的应用场景(意义)和使用方法

    vue双向绑定原理?响应式原理?

    Vue的响应式原理和双向绑定原理

    jquery和Vue的区别?jquery中用过什么类选择器?jquery封装过组件吗?jquery为什么可以链式调用?

    【秋招面经】搬运大华和汉得前端题目

    说一下对css的理解?css的编程规划

    css的理解总结
    css编程规范

    vue的编码规范?

    vue项目编码规范

    keep-alive的钩子函数?

    关于keep-alive的两个钩子函数

    箭头函数与普通函数有什么区别?

    箭头函数与普通函数的区别详解

    函数调用和原型链调用有什么区别?

    JS高级–(原型和原型链,函数四种调用模式,this的指向,箭头函数)

    Ajax和fetch的异同?ajax原理
    TCP三次握手?

    【计算机网络面试】tcp/ip协议三次握手、四次挥手

    垃圾回收机制?

    垃圾回收机制的过程和原理

    权限控制的路由是怎么配置的?

    vue-router路由权限控制的两种实现方案

    vue的路由模式?

    HashRouter的原理:
    通过window.onhashchange方法获取新URL中hash值,再做进一步处理

    HistoryRouter的原理:
    通过history.pushState 使用它做页面跳转不会触发页面刷新,使用window.onpopstate 监听浏览器的前进和后退,再做其他处理

    阻止冒泡?

    JS中阻止冒泡事件的三种方法

    字符串模板实现?

    JS模板字符串的简单实现

    ul li 点击事件,在ul上点击如何捕获li上的事件 ?

    JS如何给ul下的所有li绑定点击事件,点击使其弹出下标和内容

    css动画学过哪些?

    CSS3常见动画有哪些?实现方式?

    css居中布局

    CSS居中布局

    回流重绘 ?transform与回流重绘?

    【浏览器的回流与重绘 (Reflow & Repaint)】
    从重绘重排角度讲解transform的动画性能

    什么是BFC,BFC的作用,如何开启BFC ?

    什么是BFC?作用是什么?怎么开启?

    说说this的理解?this什么时候被绑定

    谈谈对this的理解和绑定原理

    v-for key的作用及原理 ?

    原理:

    1. vue实现了一套虚拟dom,使我们可以不直接操作dom元素,只操作数据就可以重新渲染页面,而隐藏在背后的原理是高效的Diff算法
    2. 当页面数据发生改变,Diff算法只会比较同一层级的节点
    3. 如果节点类型不同,直接干掉前面的节点,再创建并添加新的节点,不会再比较这个节点后面的子节点
      如果节点类型相同,则会重新设置该节点的属性,从而实现节点的更新
    4. 使用key给每个节点做一个唯一标识,Diff算法就可以正确的识别此节点,"就地更新"找到正确的位置区插入新的节点

    作用:

    1. 高效的更新虚拟DOM,提高渲染的性能
    2. 避免数据混乱的情况出现
    说说单向数据流的理解

    当面试官直接问:你是如何理解单向数据流的?

    vuex和事件总线区别?

    Vuex详解以及和事件总线的区别

    请求的方式有哪些 ?说说OPTONS请求

    大华和汉得面经里面有

    装饰者模式?

    javaScript之常用设计模式(工厂模式、单例模式、观察者模式、装饰者模式)

    内联元素的特性?

    css中内联元素(行内元素)的特点及常见的内联元素

    new操作符做了什么?

    大华和汉得面经里面有

    左固定,右自适应怎么实现?

    7种方法实现CSS左侧固定,右侧自适应布局

    如果页面有两个一样的ID,要用哪种选择器一次性获取他们的节点?

    获取dom中多个同名id的元素

    Jquery选择器有哪些?

    jquery选择器有哪些?

    手写点击按钮元素隐藏,再点击元素显示的代码?

    原生JS实现点击显示再次点击隐藏

    promise如何实现同步,可以实现同步吗?

    promise同步处理

    如何实现不下载图片,但能出现图片?
    立即执行函数应用场景,哪些库会用到?

    前端面试之立即执行函数

    webpack打包流程,哪些优化方式?

    webpack从启动到结束会依次执行以下流程:

    • 初始化参数:从配置文件和Shell语句中读取与合并参数,得出最终的参数;
    • 开始编译:用上一步得到的参数初始化Compiler对象,加载所有配置的插件,执行对象的run方法开始执行编译;
    • 确定入口:根据配置中的entry找出所有的入口文件;
    • 编译模块:从入口文件出发,调用所有配置的Loader对模块进行翻译,再找出该模块依赖的模块,再递归本步骤直到所有入口依赖的文件都经过了本步骤的处理;
    • 完成模块编译:再经过第4步使用Loader翻译完所有模块后,得到了每个模块被翻译后的最终内容以及它们之间的依赖关系;
    • 输出资源:根据入口和模块之间的依赖关系,组装成一个个包含多个模块的Chunk,再把每个Chunk转换成一个单独的文件加入到输出列表,这步是可以修改输出内容的最后机会;
    • 输出完成:在确定好输出内容后,根据配置确定输出的路径和⽂件名,把⽂件内容写⼊到⽂件系统。

    优化方式:
    压缩代码:删除多余的代码、注释、简化代码的写法等等⽅式。可以利⽤webpack的 UglifyJsPlugin 和 ParallelUglifyPlugin 来压缩JS⽂件, 利⽤ cssnano (css-loader?minimize)来压缩css
    利⽤CDN加速: 在构建过程中,将引⽤的静态资源路径修改为CDN上对应的路径。可以利⽤webpack对于 output 参数和各loader的 publicPath 参数来修改资源路径
    Tree Shaking: 将代码中永远不会⾛到的⽚段删除掉。可以通过在启动webpack时追加参数 --optimize-minimize 来实现
    Code Splitting: 将代码按路由维度或者组件分块(chunk),这样做到按需加载,同时可以充分利⽤浏览器缓存
    提取公共第三⽅库: SplitChunksPlugin插件来进⾏公共模块抽取,利⽤浏览器缓存可以⻓期缓存这些⽆需频繁变动的公共代码

    echarts图表如何保证数据最新?

    ECharts类图表数据实时更新

    有一个链表如[K"name":“'linda",age":15,“adress”:“HKJ怎么获取里面的age然后对它进行排序?
    怎么自定义http请求头?

    HTTP 自定义报文头

    如果状态码错误了,怎么排查他的错误?

    常见Http错误状态码及其解决方案

    冒泡排序怎么排?

    冒泡排序

    数组本身的排序方法有哪些,如何继承一个方法:若存在那个元素就返回true

    数组排序有哪些方法?
    JavaScript怎样实现继承?js常见的六种继承方式

  • 相关阅读:
    【全网最全】2022最新版前端 -- 面试题
    小程序获取支付api
    CP AUTOSAR标准之CANInterface(AUTOSAR_SWS_CANInterface)(更新中……)
    Linux学习笔记之设备驱动篇(4)_字符设备_理论篇1
    Mac使用sz/rz
    Go:Signal信号量的简介与实践(优雅的退出)
    RPC之 Sekiro 案例
    [C++](21)set和map的模拟实现
    KSF绩效管理
    JAVA+VUE3.0+MINIO 大文件上传(极速上传,分片上传)
  • 原文地址:https://blog.csdn.net/qq_40992225/article/details/127348305
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号