![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
酒慰风尘
这个作者很懒,什么都没留下…
展开
-
每天一点面试题(18)------首屏加载时间的优化策略
1、尽可能的缩小webpack或者其他打包工具生成的包的大小2、使用服务端渲染的方式3、使用预渲染的方式4、使用gzip减小网络传输的流量大小5、按照页面或者组件分块懒加载6、代理缓存7、使用CDN8、添加Expires头9、压缩组件10、代理缓存1、尽可能的缩小webpack或者其他打包工具生成的包的大小为了做到这一点,需要做到尽可能的减少生产环境下依赖的库数量,尽可能的按需引用,减少无用...原创 2020-04-13 23:07:58 · 613 阅读 · 0 评论 -
每天一点面试题(17)--------JS 高阶函数定义和函数表达式有什么区别?
在 ES 规范中,有一个内部函数 IsAnonymousFunctionDefinition()用来判断一个函数是否为匿名函数,但是这个函数只在规范中使用,通过 JS 代码并不能调用,很多 JS 引擎会在内部实现这个函数(非强制要求)。当我们谈到匿名函数时,其实有 2 种不同的含义:函数没有名字函数的 name 属性是 “anonymous”由于函数的 name是继承自 Function....原创 2020-04-09 22:09:22 · 345 阅读 · 0 评论 -
每天一点面试题(16) ---------React 渲染过程
1.程序假设有如下 jsxclass Form extends React.Component { constructor() { super(); } render() { return ( <form> <input type="text"/> </form> ); ...原创 2020-04-09 21:13:08 · 240 阅读 · 0 评论 -
每天一点面试题(16)--------虚拟DOM
JSX的背后这个过程一般在前端会称为“转译”,但其实“汇编”将是一个更精确的术语。React开发人员敦促你在编写组件时使用一种称为JSX的语法,混合了HTML和JavaScript。但浏览器对JSX及其语法毫无头绪,浏览器只能理解纯碎的JavaScript,所以JSX必须转换成JavaScript。这里是一个div的JSX代码,它有一个class name和一些内容:<div clas...原创 2020-04-09 00:38:15 · 1521 阅读 · 0 评论 -
Git
一1.创建分支git branch develop2.查看本地分支:git branch注:名称前面加* 号的是当前的分支3.查看远程分支:加上-a参数可以查看远程分支,远程分支会用红色表示出来(如果你开了颜色支持的话)git branch -a4.切换分支git checkout branch_name5.删除本地分支git branch -d branch_name6...原创 2020-02-17 13:11:04 · 340 阅读 · 0 评论 -
为什么尽量别用 setInterval
为什么尽量别用setInterval在开发一个在线聊天工具时,经常会有过多少毫秒就重复执行一次某操作的需求。“没问题”,大家都说,“用setInterval好了。”我觉得这个点子很糟糕。原因之一:setInterval无视代码错误setInterval有个讨厌的习惯,即对自己调用的代码是否报错这件事漠不关心。换句话说,如果setInterval执行的代码由于某种原因出了错,它还会持续不断(不...原创 2020-02-11 17:35:30 · 238 阅读 · 0 评论 -
单页面路由的基本原理
1. Hash1.1 相关 ApiHash 方法是在路由中带有一个 #,主要原理是通过监听 # 后的 URL 路径标识符的更改而触发的浏览器 hashchange 事件,然后通过获取 location.hash 得到当前的路径标识符,再进行一些路由跳转的操作,参见 MDNlocation.href:返回完整的 URLlocation.hash:返回 URL 的锚部分location.pa...原创 2020-02-08 19:25:56 · 470 阅读 · 0 评论 -
JavaScript 函数式编程
我认为函数式编程可以理解为,以函数作为主要载体的编程方式,用函数去拆解、抽象一般的表达式与命令式相比,这样做的好处在哪?主要有以下几点:语义更加清晰可复用性更高可维护性更好作用域局限,副作用少 基本的函数式编程// 数组中每个单词,首字母大写 // 一般写法const arr = ['apple', 'pen', 'apple-pen'];for(const i in ...原创 2020-02-05 23:20:57 · 106 阅读 · 0 评论 -
JS类的static
static类(class)通过 static 关键字定义静态方法。不能在类的实例上调用静态方法,而应该通过类本身调用。这些通常是实用程序方法,例如创建或克隆对象的功能。语法static methodName() { ... }描述静态方法调用直接在类上进行,不能在类的实例上调用。静态方法通常用于创建实用程序函数。调用静态方法从另一个静态方法静态方法调用同一个类中的其他静态方法,...原创 2020-01-30 19:29:04 · 14690 阅读 · 1 评论 -
短轮询、长轮询和web socket定义及其实现
短轮询定义:其实就是普通的轮询。指在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP request,然后由服务器返回最新的数据给客户端的浏览器。应用场景:传统的web通信模式。后台处理数据,需要一定时间,前端想要知道后端的处理结果,就要不定时的向后端发出请求以获得最新情况。优点:前后端程序编写比较容易。缺点:请求中有大半是无用,难于维护,浪费带宽和服务器资源;响应的结果没有顺序...原创 2020-01-21 17:42:12 · 340 阅读 · 0 评论 -
什么是同构渲染
首先写一个React 16的 remderToNodeStream方法的使用。// An highlighted blockvar foo = 'bar';import express from 'experss';import React from 'react';import { renderToNodeStream } from 'react-dom/server';import ...原创 2020-01-19 19:26:30 · 581 阅读 · 0 评论 -
每天一点面试题(14) ------------Redux-saga
5 weppack7 用到的中间键8 trunk9 react16之前版本和16之后版本原创 2019-12-23 20:28:23 · 849 阅读 · 0 评论 -
每天一点面试题(13)------redux-trunk
react和jq一起用有什么问题由于react 每次调用render时dom结构都会被重新绘制,因为jQuery是方便操作的DOM的库,当jQuery和REACT同时对DOM进行操作时jQuery会出现各种问题,如果实际情况需要操作DOM ,那么在shouldComponentUpdate函数中返回false如果外部的DOM不是React组建的,那么React没法去管理。第一,思想不一样。...原创 2019-12-15 23:50:38 · 548 阅读 · 0 评论 -
每天一点面试题(十二) --------------map补充 没什么用 看了记下来
1.[JS] Map中keys的有序性1. 背景mdn: Map是ES6中的内置全局对象,其中保存了多个键值对映射关系。它的key 和value 都可以是js中的任意对象。例如,const m = new Map;const objectKey1 = {};const objectKey2 = {};const stringKey3 = '';const numberKey4 =...原创 2019-12-15 21:25:24 · 116 阅读 · 1 评论 -
每天一点面试题(11) --------setstate
3 react和jq一起用有什么问题4 redux5 weppack6 在map中key的作用7 用到的中间键8 trunk9 react16之前版本和16之后版本原创 2019-12-10 00:16:56 · 610 阅读 · 0 评论 -
每天一点面试题(10) ------- flax布局
3 react和jq一起用有什么问题4 redux5 weppack6 在map中key的作用7 用到的中间键8 trunk9 react16之前版本和16之后版本10 flax布局转载 2019-12-06 11:19:39 · 252 阅读 · 0 评论 -
每天一点面试题(9) ------记一次面试经验
1 函数 纯函数2 mep set3 跨域4 redux5 weppack6 在map中key的作用7 用到的中间键8 trunk9 react16之前版本和16之后版本原创 2019-12-05 19:01:55 · 127 阅读 · 0 评论 -
每天一点面试题(8) ------------diff算法详解
diff算法的作用计算出Virtual DOM中真正变化的部分,并只针对该部分进行原生DOM操作,而非重新渲染整个页面。传统diff算法通过循环递归对节点进行依次对比,算法复杂度达到 O(n^3) ,n是树的节点数,这个有多可怕呢?——如果要展示1000个节点,得执行上亿次比较。。即便是CPU快能执行30亿条命令,也很难在一秒内计算出差异。React的diff算法(1)什么是调和?将...原创 2019-12-02 21:57:07 · 3189 阅读 · 0 评论 -
每天一点面试题(7) --------react组件传参
父子组件 (父–>子)在父组件中:import React from 'react'import ChildCom from './childCom.js'class ParentCom extends React.Component { render() { return ( <div> <h1>父组件</h1> ...原创 2019-12-01 21:11:06 · 212 阅读 · 0 评论 -
每天一点练习题(6) -------unll,undefined,undeclared(defind)
例行写点没有的话,最近也在做面试官。心里会有感觉,在面试的时候把问题回的精彩了可能只需要几个问题就能通过面试,如果被问的特别广的时候肯定是看看是不是可以拿到更高的薪资。所以像标题这种很基础的面试题更应该答精彩,就像搞对象不就是从相互吸引开始?另外如果这个问题写到最后篇幅不长会把JS判断数据类型的方法加上,它们也是有关系的。用typeof的判断转数字null在进行数字运算时可以转换成0,...原创 2019-11-28 11:09:21 · 144 阅读 · 0 评论 -
每天一点面试题(5) -------原型继承部分
对于原型继承 快到0202年了 基本已经用的很少了 但是在源码中还有很多需要实现底层构架的情况下还是会用到 所以一定要学好这部分 虽然学好了不常用也会忘记说到继承必须说原型 所以原型部分会在JS分类里写清楚想要继承,就必须要提供个父类(继承谁,提供继承的属性)一. 原型继承重点:让新实例的原型等于父类的实例。特点:1、实例可继承的属性有:实例的构造函数的属性,父类构造函数属性...原创 2019-11-27 16:00:25 · 175 阅读 · 0 评论 -
真正理解/玩转柯里化函数和反柯里化
一. 在最初 去网上查了相关资料 很有意思一点就是 看到了这个函数在数学中的定义:函数柯里化currying的概念最早由俄国数学家Moses Schönfinkel发明,而后由著名的数理逻辑学家Haskell Curry将其丰富和发展,currying由此得名。currying又称部分求值。一个currying的函数首先会接受一些参数,接受了这些参数之后,该函数并不会立即求值,而是继续返回另...原创 2019-11-25 21:38:16 · 197 阅读 · 0 评论 -
每天一点面试题(4)
1.写一个完整的深拷贝简易版及问题 const a = {val:2}; a.target = a;拷贝a会出现系统栈溢出,因为出现了无限递归的情况。无法拷贝一写特殊的对象,诸如 RegExp, Date, Set, Map等。无法拷贝函数。因此这个api先pass掉,我们重新写一个深拷贝,简易版如下: const deepClone = (target) => {...原创 2019-11-22 01:30:54 · 112 阅读 · 0 评论 -
每天一点面试题(3)
1.模拟实现一个 bind 的效果实现bind之前,我们首先要知道它做了哪些事情。1. 对于普通函数,绑定this指向2. 对于构造函数,要保证原函数的原型对象上的属性不能丢失Function.prototype.bind = function (context, ...args) { // 异常处理 if (typeof this !== "function") { ...原创 2019-11-21 01:19:34 · 238 阅读 · 6 评论 -
每天一点面试题(2)
1.什么是高阶函数概念: 一个函数就可以接收另一个函数作为参数或者返回值为一个函数,这种函数就称之为高阶函数。那对应到数组中的方法?1. map参数:接受两个参数,一个是回调函数,一个是回调函数的this值(可选)。其中,回调函数被默认传入三个值,依次为当前元素、当前索引、整个数组。创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果,对原来的数组没有影...原创 2019-11-19 21:39:06 · 109 阅读 · 0 评论 -
每天一点面试题(1)
1.函数的arguments为什么不是数组?如何转化成数组?argument是一个对象,只不过它的属性从0开始排,依次为0,1,2…最后还有callee和length属性。我们也把这样的对象称为类数组。常见的类数组还有:1.用getElementByTagName/ClassName/Name()获得的HTMLCollection2.用querySlector获得的nodeList转成数...原创 2019-11-17 23:34:07 · 119 阅读 · 0 评论