11 2020 档案
面试题:promise
摘要:1.什么是promise 1、主要用于异步计算 2、可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果 3、可以在对象之间传递和操作promise,帮助我们处理队列 2、promise的使用方法: var fn = function (num) { return new Promise(f 阅读全文
posted @ 2020-11-30 18:57 liumcb 阅读(93) 评论(0) 推荐(0)
this的总结:默认绑定、隐式绑定、显式绑定、new绑定、箭头函数绑定
摘要:this绑定,在面试的时候被问到的频率几乎是百分之百。今天面试的时候,被问到了什么是显示绑定和隐式绑定(懵逼),还有解释各种不同绑定的问题,还有笔试题。所以弄懂this绑定特别重要。 this可以分为默认绑定,显示绑定,隐式绑定,new绑定,箭头函数绑定等。 1.默认绑定: this默认绑定我们可以 阅读全文
posted @ 2020-11-30 16:32 liumcb 阅读(461) 评论(0) 推荐(0)
bind绑定过一次,第二次bind会改变this指向吗?
摘要:今天的面试中,被问到了一个问题: 如果一个函数被bind绑定了,我再次绑定bind,会改变this指向吗? 我当时回答的是会,现在回头看一塌糊涂。 现在把bind绑定的知识点总结一下: MDN文档中讲解this与bind方法中写道: “ECMAScript 5 引入了 Function.protot 阅读全文
posted @ 2020-11-30 15:48 liumcb 阅读(1162) 评论(0) 推荐(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 阅读(86) 评论(0) 推荐(0)
react性能优化
摘要:一。为什么要进行性能优化? React是一个用于构建用户界面的JavaSctiput库,主要负责将数据转换为视图,保证数据和视图的统一。 react通过重新render来保证数据和视图的统一,但当数据并没有变化时,视图需要重新渲染,就会造成不必要的性能浪费。 例如:父组件调用子组件的时候,如果父组件 阅读全文
posted @ 2020-11-27 19:00 liumcb 阅读(110) 评论(0) 推荐(0)
前端路由跳转基本原理
摘要:什么是前端路由? 前端路由,就是一个前端不同页面的状态管理器,可以不向后台发送请求而直接通过前端技术实现多个页面的效果。 单页路由跳转模式有两种: 哈希模式(利用hashchange 事件监听 url的hash 的改变) history模式(使用此模式需要后台配合把接口都打到我们打包后的index. 阅读全文
posted @ 2020-11-27 14:45 liumcb 阅读(801) 评论(0) 推荐(0)
块级作用域 let const var的区别
摘要:1.JS作用域 JS中作用域有:全局作用域、函数作用域。没有块作用域的概念。ECMAScript 6(简称ES6)中新增了块级作用域。 块作用域由 { } 包括,if语句和for语句里面的{ }也属于块作用域。 2.var在块级作用域 一: 通过var定义的变量可以跨块作用域访问到。 { var a 阅读全文
posted @ 2020-11-27 13:45 liumcb 阅读(134) 评论(0) 推荐(0)
变量提升:函数表达式 和 函数声明在变量提升时的差异
摘要:1.什么是变量提升? JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。 JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。 例如:先使用后声明 console.log(a) // undefined var a = 2 相当于: var a; conso 阅读全文
posted @ 2020-11-27 10:14 liumcb 阅读(212) 评论(0) 推荐(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 阅读(99) 评论(0) 推荐(0)
面试题:react(三)
摘要:1、什么是合成事件? react为了解决跨平台,兼容性问题,自己封装了一套事件机制,代理了原生的事件,像在react中常见的onClick,onChange等这些都是合成事件。 2、什么是非原生事件? 原生事件是指非react合成事件,原生自带的事件监听 addEventListener ,或者也可 阅读全文
posted @ 2020-11-25 18:57 liumcb 阅读(60) 评论(0) 推荐(0)
面试题:汇总
摘要:1、js是单线程还是多线程? js 是单线程。只能同一时间执行同一段代码。 就比如说: 我这一句循环代码需要5s来执行 ,那么后面所有的代码都要等着我这个循环结束才能继续执行 。 为什么要单线程? 这是因为跟这门语言的用途有关。JavaScript作为浏览器脚本语言,主要用途是与用户互动,以及操作D 阅读全文
posted @ 2020-11-25 14:10 liumcb 阅读(111) 评论(0) 推荐(0)
面试:react(三)
摘要:1. react中setState是同步还是异步?什么时候同步?什么时候异步? setState既可以同步,也可以异步。在合成事件和声明周期函数中,setState是异步;原生事件和 setTimeout 中都是同步的。 合成事件:就是react 在组件中的onChange,onClick,onTo 阅读全文
posted @ 2020-11-24 16:31 liumcb 阅读(114) 评论(0) 推荐(0)
面试题(一)
摘要:1、CDN缓存? CDN: content delivery network 内容分发网络。 CDN加速:一般指网站加速,或者用户下载资源加速。 CDN的优势: 1.CDN节点解决了跨运营商和跨地域访问的问题,访问延时大大降低; 2.大部分请求在CDN边缘节点完成,CDN祈祷了分流的作用,减轻了源站 阅读全文
posted @ 2020-11-12 19:50 liumcb 阅读(122) 评论(0) 推荐(0)
面试题:es6(一)
摘要:1、es6的箭头函数和普通函数的区别? 箭头函数和普通函数最重要的区别就是this的指向: 普通函数:this指向函数被调用的对象,在严格模式下,如果没有直接调用者,那么this指向undefined;在非严格模式下,如果没有直接调用者,this指向window。 es6:箭头函数中没有自己的thi 阅读全文
posted @ 2020-11-12 15:20 liumcb 阅读(91) 评论(0) 推荐(0)
面试题:react(二)
摘要:1、react中key的作用? key是react用于追踪哪些值被修改,增加,删除的辅助标识。 我们需要保证key在同级元素中具有唯一性。在React diff算法中,react会借助元素的key值来判断该元素是新创建还是移除的元素,从而减少不必要元素的渲染。 2、调用setState之后发生了什么 阅读全文
posted @ 2020-11-10 22:27 liumcb 阅读(141) 评论(0) 推荐(0)
面试题:react生命周期
摘要:一:挂载卸载 1、constructor: react数据的初始化,他接收2个参数,props和context。如果要使用这两个参数,就要使用super(),否则会造成this指向错误。 2、componentWillMount 用在服务端渲染时使用。组件已经经历了constructor初始化数据, 阅读全文
posted @ 2020-11-10 17:04 liumcb 阅读(1370) 评论(0) 推荐(0)
面试题:react(一)
摘要:1、react性能优化方案? 1.重新shouldComponentUpdate方法,来避免不必要的操作: 我们可以通过shouldComponentUpdate方法返回的布尔值,来判断当前组件是否需要更新。 比较当前的state和之前的state是否相同,也可以判断某个值更新了来更新组件。 2.使 阅读全文
posted @ 2020-11-09 19:22 liumcb 阅读(151) 评论(0) 推荐(0)
面试题:JavaScript(一)
摘要:1、什么是闭包? js的变量可以分为 全局变量 和 局部变量。 全局变量:函数内部可以访问到全局变量; 局部变量:函数内部的变量,外部访问不到。 闭包:就是能够读取其他函数内部变量的函数。 最大用处有两个,一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。 例子: f 阅读全文
posted @ 2020-11-09 16:27 liumcb 阅读(97) 评论(0) 推荐(0)
面试题:css(二)
摘要:1、浮动引起的问题和解决办法? 浮动引起的问题? 父元素的高度无法被撑开,影响与父元素同级的元素; 与浮动元素同级的元素会紧跟其后; 若非第一个浮动元素,则该元素之前的元素也要浮动,否则会影响页面的展示效果 解决办法? 1.额外标签法 在浮动元素后添加一个</div> 添加clear:both 2. 阅读全文
posted @ 2020-11-09 16:25 liumcb 阅读(75) 评论(0) 推荐(0)
面试题:css(一)
摘要:1、清除浮动的几种方式? 为什么要清除浮动? float布局会脱离文档流,对页面的布局造成影响,比如造成父级的高度坍塌等问题。清除浮动后,便不会影响文档流。 给父级添加height; 在结尾处添加一个空的div,并设置属性 clear:both; 父级设置overflow:hidden; 给父级定义 阅读全文
posted @ 2020-11-08 21:26 liumcb 阅读(103) 评论(0) 推荐(0)
面试:HTML(二)
摘要:1、HTML5 的离线储存怎么使⽤,⼯作原理能不能解释⼀下? 离线缓存有2种方法: HTML5 的离线存储.appcache文件【废弃】 service-worker 的标准 方法一:使用.appcache 机制 原理: HTML5 的离线存储是基于⼀个新建的 .appcache ⽂件的缓存机制(不 阅读全文
posted @ 2020-11-08 14:51 liumcb 阅读(119) 评论(0) 推荐(0)
websocket
摘要:参考 阮一峰:http://www.ruanyifeng.com/blog/2017/05/websocket.html 1、什么是websocket? 服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话(全双工通信),属于服务器推送技术的一种。 其他特点包括: 阅读全文
posted @ 2020-11-07 17:34 liumcb 阅读(141) 评论(0) 推荐(0)
面试题:HTML篇(一)
摘要:1、如何实现浏览器内多个标签页之间的通信? 数据存储有2种方式,服务器存储 和 本地存储。本地存储也就是 cookie和localstorage; 第一种——调用localStorage 存储方式:window.localStorage.setItem("name", name); 获取方式:win 阅读全文
posted @ 2020-11-07 17:11 liumcb 阅读(111) 评论(0) 推荐(0)
HTML5遗忘知识点(一)
摘要:1、<!DOCTYPE>声明:告诉浏览器解析成什么语言,这样浏览器才能获知文档类型。 charset='UTF-8': 指定 UTF-8 编码,否则中文会出现乱码的情况 2、SGML HTML XML的区别? SGML:是标准通用标记语言; HTML:是超文本标记语言,主要是用于规定怎么显示网页;标 阅读全文
posted @ 2020-11-07 14:23 liumcb 阅读(61) 评论(0) 推荐(0)