面试官:说说什么是单点登录?如何实现?

2021-03-25
阅读 4 分钟
12.4k
一、是什么单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统SSO 一般都需要一个独立的认证中心(passport),子系统的登录均得通过passport,子系统本身将不参与登录操作当一个系统成功登录以后,...

面试官:JS如何实现下拉刷新和上拉加载!

2021-03-23
阅读 5 分钟
10.2k
本文已被前端面试题库收录一、前言下拉刷新和上拉加载这两种交互方式通常出现在移动端中本质上等同于PC网页中的分页,只是交互形式不同开源社区也有很多优秀的解决方案,如iscroll、better-scroll、pulltorefresh.js库等等这些第三方库使用起来非常便捷我们通过原生的方式实现一次上拉加载,下拉刷新,有助于对第三方库...

面试官:说说 JavaScript 数字精度丢失的问题,解决方案?

2021-03-17
阅读 3 分钟
4.3k
本文已被前端面试题库收录一、场景复现一个经典的面试题 {代码...} 为什么是false呢?先看下面这个比喻比如一个数 1÷3=0.33333333...... 3会一直无限循环,数学可以表示,但是计算机要存储,方便下次取出来再使用,但0.333333...... 这个数无限循环,再大的内存它也存不下,所以不能存储一个相对于数学来说的值,只能存储...

面试官:Vue实例挂载的过程发生了什么?

2021-03-16
阅读 12 分钟
3.5k
本文已被前端面试题库收录一、思考我们都听过知其然知其所以然这句话那么不知道大家是否思考过new Vue()这个过程中究竟做了些什么?过程中是如何完成数据的绑定,又是如何将数据渲染到视图的等等一、分析首先找到vue的构造函数源码位置:src\core\instance\index.js {代码...} options是用户传递过来的配置项,如data、m...

面试官:为什么Vue中的v-if和v-for不建议一起用?

2020-12-23
阅读 3 分钟
12.2k
v-for 指令基于一个数组来渲染一个列表。v-for 指令需要使用 item in items 形式的特殊语法,其中 items 是源数据数组或者对象,而 item 则是被迭代的数组元素的别名

127个常用的JS代码片段,每段代码花30秒就能看懂(上)

2020-02-23
阅读 5 分钟
1.8k
FreeCodeCamp的创始人 Quincy Larson 在最近的一次采访中被问到哪种语言开发人员应该首先学习。他回答:“ JavaScript。”

JS每日一题: 如何理解CSS中BFC?

2019-04-16
阅读 2 分钟
3.8k
定义: 块格式化上下文(Block Formatting Context,BFC) 是Web页面的可视化CSS渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其他元素交互的区域。

JS每日一题:设计模式-如何理解职责链模式?

2019-04-14
阅读 2 分钟
1.1k
定义: 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止

JS每日一题:设计模式-如何理解观察者(发布订阅)模式?

2019-04-11
阅读 2 分钟
1.2k
定义: 观察者模式又叫发布订阅模式(Publish/Subscribe),它定义了一种一对多的关系,让多个观察者对象同时监听某一个主题对象,这个主题对象的状态发生变化时就会通知所有的观察者对象,使得它们能够自动更新自己

JS每日一题:设计模式-如何理解工厂模式?

2019-04-09
阅读 3 分钟
1.6k
需要根据不同参数产生不同实例,这些实例都有相同的行为,这时候我们可以使用工厂模式,简化实现的过程,同时也可以减少每种对象所需的代码量。工厂模式有利于消除对象间的耦合,提供更大的灵活性

JS每日一题:Webpack如何实现一个Loader?

2019-04-02
阅读 3 分钟
1.5k
20190329期 如何实现一个Loader? 我们在上几节有讲过loader,今天我们来深入了解它们,最暴力的方式莫过于动手实现它们 好了,回到正题, 先来回顾一下loader loader定义: 用于对模块的源代码进行转换。loader 可以使你在 import 或"加载"模块时预处理文件 简单使用 {代码...} 回顾了loader的定义及简单使用后,我们再来分...

JS每日一题:Webpack有哪些常见的Plugin?他们是解决什么问题的

2019-03-28
阅读 2 分钟
5.3k
webpack 插件是一个具有 apply 属性的 JavaScript 对象。apply 属性会被 webpack compiler 调用,并且 compiler 对象可在整个编译生命周期访问

JS每日一题:Webpack有哪些常见的Loader?他们是解决什么问题的?

2019-03-27
阅读 2 分钟
4.1k
20190326期 Webpack有哪些常见的Loader?他们是解决什么问题的? 在回答之前我们先来了解一下Loader 我们在上一节讲过,webpack是属于模块化方案,他能让任意类型的文件都能运行在浏览器中,怎么做到呢?这时就有了loader 定义: loader 用于对模块的源代码进行转换。loader 可以使你在 import 或"加载"模块时预处理文件...

JS每日一题:函数式编程中代码组合(compose)如何理解?

2019-03-19
阅读 2 分钟
2.9k
20190315期 函数式编程中代码组合(compose)如何理解? 定义: 顾名思义,在函数式编程中,Compose就是将几个有特点的函数拼凑在一起, 让它们结合, 产生一个崭新的函数 代码理解: {代码...} pointfree 代码组合中有一个重要的概念pointfree(永远不要说出你的数据), 它的意思是指函数无须提及将要操作的数据是什么样的 ...

JS每日一题:前端性能监控你会监控哪些数据? 如何做?

2019-03-19
阅读 2 分钟
3.2k
20190318期 前端性能监控你会监控哪些数据? 如何做? 开始之前给大家推荐两个检查网页性能的地址 [链接] [链接] 为什么要做性能监控 对于公司来说,性能在一定程度上与利益直接相关 为什么性能会影响公司的收益呢?根本原因还是在于性能影响了用户体验。加载的延迟、操作的卡顿等都会影响用户的使用体验。尤其是移动端,...

JS每日一题:函数式编程中纯函数如何理解?

2019-03-14
阅读 2 分钟
1.7k
20190313期 函数式编程中纯函数如何理解? 概念: 不依赖执行的上下文,也不影响上下文的变量,输出只由输入决定 代码理解一下 {代码...} 纯函数的好处 相信大家发现了,无论是概念还是代码理解都很简单, 那为什么要使用纯函数呢? 下面我们罗列一下使用纯函数的好处 可缓存性 可移植性 可测试性 可缓存性 纯函数可以根据...

JS每日一题:深拷贝与浅拷贝的区别?如何实现一个深拷贝

2019-03-13
阅读 3 分钟
8k
20190311期 深拷贝与浅拷贝的区别?如何实现一个深拷贝 在回答这个问题前,我们先来回顾一下JS中两大数据类型 基本类型 Undefined、Null、Boolean、Number、String 引用类型 Object Array 基本类型 基本类型就是值类型, 存放在栈(stack)内存中的简单数据段,数据大小确定,内存空间大小可以分配 引用类型 引用类型, 存...

JS每日一题:react中类组件和函数式组件中有什么不同?

2019-03-07
阅读 2 分钟
5.6k
20190306期 react中类组件和函数式组件中有什么不同? 在react中创建组件的形式有三种 纯函数式定义的无状态组件 React.createClass 定义的组件 Extends React.Component 定义的组件 今天我们要聊的是纯函数式定义的无状态组件及类组件的到底有什么不同, 分别在什么场景下适合使用 首先我们来看一下用上述方法如何来创建...

JS每日一题:react的生命周期有哪些?有什么需要注意的地方?

2019-03-05
阅读 2 分钟
1.9k
20190304期 react的生命周期有哪些?有什么需要注意的地方? 生命周期是什么这里不再累述了,有兴趣可以点这里 react的生命周期 这里我们以react v16.3为准 先上一张图 从图中我们可以看出来react生命周期分为三个部分 mounting 装载处理 updation 更新处理 ummounting 卸载处理 Mounting Mounting 英译过来叫做装备,装...

JS每日一题:小程序跳转页面有几种方式? 有什么不同?

2019-03-01
阅读 2 分钟
2k
20190228 小程序跳转页面有几种方式? 有什么不同? 在小程序中每个页面可以看成是一个pageModel,pageModel全部以栈的形式进行管理(最多五层) 在说跳转方式之前我们先来温习一下栈和堆的区别 管理方式不同 栈是系统编译器启动管理,不需要程序员手动管理 堆的释放由程序员手动管理,不及时回收容易产生内存泄露 分配方式...

JS每日一题: 小程序页面之间如何通信?

2019-02-28
阅读 2 分钟
1.7k
20190227 小程序页面之间如何通信? 首先将通信的模型列举出来, 分为以下几种 兄弟页面间通信 父路径页面向子路径页面通信 子路径页面向父路径页面通信 通信的方式 localStorage 本地存储 globalData 全局对象 eventBus 发布订阅 PageModel 缓存整个pageModel至globalData LocalStorage 利用onShow/onHide激活方法,通过l...

JS每日一题:Vue中的diff算法?

2019-02-27
阅读 2 分钟
7.4k
为什么vue,react这些框架中都会有diff算法呢? 我们都知道渲染真实dom的开销是很大的,这个跟性能优化中的重绘重排意义类似, 回到正题来, 有时候我们修改了页面中的某个数据,如果直接渲染到真实DOM中会引起整棵数的重绘重排, 那么我们能不能只让我们修改的数据映射到真实DOM, 做一个最少化重绘重排呢,说到这里你应该对...

JS每日一题: Vue中mixin怎么理解?

2019-02-25
阅读 3 分钟
2.1k
mixin是为了让可复用的功能灵活的混入到当前组件中,混合的对象可以包含任意组件选项(生命周期,指令之类等等), mixin翻译过来叫混合,高级的词汇可以叫插件入侵

JS每日一题: 请简述一下vuex实现原理

2019-02-22
阅读 4 分钟
15.3k
20190221 请简述一下vuex实现原理 对vuex基础概念有不懂的可以点这里 vuex实现原理我们简单过一遍源码 地址 [链接] 首先我们例出几个问题进行思考 store是怎么注册的? mutation,commit 是怎么实现的? 辅助函数是怎么实现的? store是怎么注册的 看了下面的源码就很清楚了, 我们看到vuex在vue 的生命周期中的初始化钩子...

JS每日一题:什么情况下适合使合vuex?Vuex使用中有几个步骤?

2019-02-21
阅读 3 分钟
3.4k
20190121 什么情况下适合使合vuex?Vuex使用中有几个步骤? 开始之前先简单了解一下vuex 定义: vuex是一个状态管理机制,采用集中式存储应用所有组件的状态 嗯,就是一句话能说明白的,没明白的,我们用代码再理解一下什么叫集中式式存储 比如下面这段代码,同时需要用到username,那么我们首先能想到就是在两个组件内都...

JS每日一题:Vue-router有哪些钩子?使用场景?

2019-02-19
阅读 2 分钟
4.3k
前面我们用大白话讲过什么是钩子,这里在重复一下,就是在什么什么之前,什么什么之后,英文叫hooks,专业点叫生命周期,装逼点可以叫守卫...

JS每日一题:简述一下Vue.js的template编译过程?

2019-02-18
阅读 2 分钟
3.7k
20190215问 简述一下Vue.js的template编译过程? 先上一张图大致看一下整个流程 从上图中我们可以看到compile是从mount后开始进行中, 整体逻辑分为三个部分 解析器(parse) - 将 模板字符串 转换成 element ASTs 优化器(optimize) - 对 AST 进行静态节点标记,主要用来做虚拟DOM的渲染优化 代码生成器(generate) - 使用 e...

JS每日一题:new Vue()中发生了什么?

2019-02-15
阅读 3 分钟
5k
20190214问 new Vue()中发生了什么? 先从语法上分析,new关键字在js语言中代表实例化一个对象, 而Vue实际上是一个类, 我们简单看一下源码 源码地址 [链接] {代码...} 接着我们追踪至_init函数 源码地址 [链接] {代码...} 从上面的代码我们看见_init很清淅的干了几件事, 合并相关配置, 初始化生命周期,初始化事件中心,...

JS每日一题:vue中keepalive怎么理解?

2019-02-14
阅读 2 分钟
2.7k
我们平时开发中, 总有部分组件没有必要多次init, 我们需要将组件进行持久化,使组件状态维持不变,在下一次展示时, 也不会进行重新init

JS每日一题:Es6中新增的数据类型有哪些?使用场景?

2019-01-26
阅读 2 分钟
2.8k
es6中新增一种原始数据类型Symbol,最大的特点是唯一性,Symbol值通过Symbol函数生成, 在es5中对象的属性都是字符串,我们使用他人定义的对象,然后去新增自己的属性,这样容易起冲突覆盖原有的属性, Symbol也可以看成为一个字符串,不过这个字符能保证是独一无二的