面试题比较好的网站
摘要:https://www.cnblogs.com/langqq/p/10484499.html
阅读全文
posted @
2020-12-02 14:30
liumcb
阅读(136)
推荐(0)
前端性能优化
摘要:从输入URL到页面加载完成的过程: 1.首先通过DNS(域名解析),把URL解析为对应的IP地址; 2.然后与该IP地址确定的服务器建立起TCP链接(三次握手四次挥手); 3.然后客户端向服务器发送HTTP请求; 4.服务器处理完HTTP请求,然后把目标数据放到HTTP响应里面呈现给客户端; 5.客
阅读全文
posted @
2020-12-02 11:13
liumcb
阅读(89)
推荐(0)
web缓存
摘要:web缓存分为服务端缓存 和 客户端缓存。 服务端缓存:CDN缓存; 客户端缓存:浏览器缓存。 浏览器缓存: 浏览器缓存分为强缓存和协商缓存: 1、强缓存:浏览器在加载资源时,先根据这个资源的一些http header判断它是否命中强缓存。强缓存如果命中,浏览器直接从子集的缓存中读取资源,不会发送请
阅读全文
posted @
2020-12-01 18:34
liumcb
阅读(233)
推荐(0)
面试题:promise
摘要:1.什么是promise 1、主要用于异步计算 2、可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果 3、可以在对象之间传递和操作promise,帮助我们处理队列 2、promise的使用方法: var fn = function (num) { return new Promise(f
阅读全文
posted @
2020-11-30 18:57
liumcb
阅读(82)
推荐(0)
this的总结:默认绑定、隐式绑定、显式绑定、new绑定、箭头函数绑定
摘要:this绑定,在面试的时候被问到的频率几乎是百分之百。今天面试的时候,被问到了什么是显示绑定和隐式绑定(懵逼),还有解释各种不同绑定的问题,还有笔试题。所以弄懂this绑定特别重要。 this可以分为默认绑定,显示绑定,隐式绑定,new绑定,箭头函数绑定等。 1.默认绑定: this默认绑定我们可以
阅读全文
posted @
2020-11-30 16:32
liumcb
阅读(449)
推荐(0)
bind绑定过一次,第二次bind会改变this指向吗?
摘要:今天的面试中,被问到了一个问题: 如果一个函数被bind绑定了,我再次绑定bind,会改变this指向吗? 我当时回答的是会,现在回头看一塌糊涂。 现在把bind绑定的知识点总结一下: MDN文档中讲解this与bind方法中写道: “ECMAScript 5 引入了 Function.protot
阅读全文
posted @
2020-11-30 15:48
liumcb
阅读(1139)
推荐(0)
this指向问题
摘要:经常在代码中使用this,但是没有总结过this指向的问题。 var name = "Jake"; function testThis() { this.name = 'jakezhang'; this.sayName = function () { return this.name; } } co
阅读全文
posted @
2020-11-30 15:03
liumcb
阅读(73)
推荐(0)
react性能优化
摘要:一。为什么要进行性能优化? React是一个用于构建用户界面的JavaSctiput库,主要负责将数据转换为视图,保证数据和视图的统一。 react通过重新render来保证数据和视图的统一,但当数据并没有变化时,视图需要重新渲染,就会造成不必要的性能浪费。 例如:父组件调用子组件的时候,如果父组件
阅读全文
posted @
2020-11-27 19:00
liumcb
阅读(100)
推荐(0)
前端路由跳转基本原理
摘要:什么是前端路由? 前端路由,就是一个前端不同页面的状态管理器,可以不向后台发送请求而直接通过前端技术实现多个页面的效果。 单页路由跳转模式有两种: 哈希模式(利用hashchange 事件监听 url的hash 的改变) history模式(使用此模式需要后台配合把接口都打到我们打包后的index.
阅读全文
posted @
2020-11-27 14:45
liumcb
阅读(787)
推荐(0)
块级作用域 let const var的区别
摘要:1.JS作用域 JS中作用域有:全局作用域、函数作用域。没有块作用域的概念。ECMAScript 6(简称ES6)中新增了块级作用域。 块作用域由 { } 包括,if语句和for语句里面的{ }也属于块作用域。 2.var在块级作用域 一: 通过var定义的变量可以跨块作用域访问到。 { var a
阅读全文
posted @
2020-11-27 13:45
liumcb
阅读(122)
推荐(0)
变量提升:函数表达式 和 函数声明在变量提升时的差异
摘要:1.什么是变量提升? JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。 JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。 例如:先使用后声明 console.log(a) // undefined var a = 2 相当于: var a; conso
阅读全文
posted @
2020-11-27 10:14
liumcb
阅读(188)
推荐(0)
面试题:es6(一)
摘要:1、es6中的let const var的区别? let和var的区别: 1.var在js中是支持预解析的,而let不支持预解析,也就是变量提升的区别;2.var可以重复定义一个变量,但是let不可以;3.let可以形成块级作用域;4.var定义的全局变量会被挂载到window上,可以使用windo
阅读全文
posted @
2020-11-26 16:44
liumcb
阅读(89)
推荐(0)
面试题:react(三)
摘要:1、什么是合成事件? react为了解决跨平台,兼容性问题,自己封装了一套事件机制,代理了原生的事件,像在react中常见的onClick,onChange等这些都是合成事件。 2、什么是非原生事件? 原生事件是指非react合成事件,原生自带的事件监听 addEventListener ,或者也可
阅读全文
posted @
2020-11-25 18:57
liumcb
阅读(56)
推荐(0)
面试题:汇总
摘要:1、js是单线程还是多线程? js 是单线程。只能同一时间执行同一段代码。 就比如说: 我这一句循环代码需要5s来执行 ,那么后面所有的代码都要等着我这个循环结束才能继续执行 。 为什么要单线程? 这是因为跟这门语言的用途有关。JavaScript作为浏览器脚本语言,主要用途是与用户互动,以及操作D
阅读全文
posted @
2020-11-25 14:10
liumcb
阅读(107)
推荐(0)
面试:react(三)
摘要:1. react中setState是同步还是异步?什么时候同步?什么时候异步? setState既可以同步,也可以异步。在合成事件和声明周期函数中,setState是异步;原生事件和 setTimeout 中都是同步的。 合成事件:就是react 在组件中的onChange,onClick,onTo
阅读全文
posted @
2020-11-24 16:31
liumcb
阅读(103)
推荐(0)
面试题(一)
摘要:1、CDN缓存? CDN: content delivery network 内容分发网络。 CDN加速:一般指网站加速,或者用户下载资源加速。 CDN的优势: 1.CDN节点解决了跨运营商和跨地域访问的问题,访问延时大大降低; 2.大部分请求在CDN边缘节点完成,CDN祈祷了分流的作用,减轻了源站
阅读全文
posted @
2020-11-12 19:50
liumcb
阅读(110)
推荐(0)
面试题:es6(一)
摘要:1、es6的箭头函数和普通函数的区别? 箭头函数和普通函数最重要的区别就是this的指向: 普通函数:this指向函数被调用的对象,在严格模式下,如果没有直接调用者,那么this指向undefined;在非严格模式下,如果没有直接调用者,this指向window。 es6:箭头函数中没有自己的thi
阅读全文
posted @
2020-11-12 15:20
liumcb
阅读(87)
推荐(0)
面试题:react(二)
摘要:1、react中key的作用? key是react用于追踪哪些值被修改,增加,删除的辅助标识。 我们需要保证key在同级元素中具有唯一性。在React diff算法中,react会借助元素的key值来判断该元素是新创建还是移除的元素,从而减少不必要元素的渲染。 2、调用setState之后发生了什么
阅读全文
posted @
2020-11-10 22:27
liumcb
阅读(125)
推荐(0)
面试题:react生命周期
摘要:一:挂载卸载 1、constructor: react数据的初始化,他接收2个参数,props和context。如果要使用这两个参数,就要使用super(),否则会造成this指向错误。 2、componentWillMount 用在服务端渲染时使用。组件已经经历了constructor初始化数据,
阅读全文
posted @
2020-11-10 17:04
liumcb
阅读(1348)
推荐(0)
面试题:react(一)
摘要:1、react性能优化方案? 1.重新shouldComponentUpdate方法,来避免不必要的操作: 我们可以通过shouldComponentUpdate方法返回的布尔值,来判断当前组件是否需要更新。 比较当前的state和之前的state是否相同,也可以判断某个值更新了来更新组件。 2.使
阅读全文
posted @
2020-11-09 19:22
liumcb
阅读(133)
推荐(0)