07 2019 档案
摘要:题目:随机生成一个长度为 10 的整数类型的数组,例如 [2, 10, 3, 4, 5, 11, 10, 11, 20],将其排列成一个新数组,要求新数组形式如下,例如 [[2, 3, 4, 5], [10, 11], [20]]。答案: function formArray(arr) { cons
阅读全文
摘要:为什么reducer最好是纯函数? 首先你得看看文档怎么说reducer的作用的,‘接收旧的 state 和 action,返回新的 state’,他起的是一个对数据做简单处理后返回state的作用。 为什么只起这个作用? 因为redux把reducer设计成只负责这个作用,所以reducer的职责
阅读全文
摘要:来个奇淫技巧 利用CSS动画的样式优先级高于!important的特性
阅读全文
摘要:display: none (不占空间,不能点击)(场景,显示出原来这里不存在的结构) visibility: hidden(占据空间,不能点击)(场景:显示不会导致页面结构发生变动,不会撑开) opacity: 0(占据空间,可以点击)(场景:可以跟transition搭配、自定义图片上传按钮)
阅读全文
摘要:Object.defineProperty本身有一定的监控到数组下标变化的能力:Object.defineProperty本身是可以监控到数组下标的变化的,但是在 Vue 中,从性能/体验的性价比考虑,尤大大就弃用了这个特性。具体我们可以参考 《记一次思否问答的问题思考:Vue为什么不能检测数组变动
阅读全文
摘要:Number.prototype.add = function (number) { if (typeof number !== 'number') { throw new Error('请输入数字~'); } return this.valueOf() + number; }; Number.prototype.minus = function (num...
阅读全文
摘要:避免跨域(img 天然支持跨域) 利用空白gif或1x1 px的img是互联网广告或网站监测方面常用的手段,简单、安全、相比PNG/JPG体积小,1px 透明图,对网页内容的影响几乎没有影响,这种请求用在很多地方,比如浏览、点击、热点、心跳、ID颁发等等, 图片请求不占用 Ajax 请求限额 GIF
阅读全文
摘要:在严格模式下确实有问题,解决方案: https://vuex.vuejs.org/zh/guide/forms.html
阅读全文
摘要:如上题所示,输出结果为一个类数组 判断的过程:
阅读全文
摘要:层叠上下文是 HTML 中的一个三维的概念,每个层叠上下文中都有一套元素的层叠排列顺序。页面根元素天生具有层叠上下文,所以整个页面处于一个“层叠结界”中。 层叠上下文的创建: 页面根元素:html z-index 值为数值的定位元素 其他 css 属性 opacity 不是 1 transform
阅读全文
摘要:BFC的概念 块格式化上下文(Block Formatting Context,BFC) 是Web页面的可视化CSS渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其他元素交互的区域。 它是一个独立的渲染区域,只有块级元素参与,它规定了内部的Block level Box如何布局,并且与这
阅读全文
摘要:这个题目考察==的隐式转换 利用toString 利用valueOf 数组这个就有点妖了(数组的toString通常调用join) ES6的symbol
阅读全文
摘要:下面的代码打印什么内容,为什么? 针对这题,在知乎上看到别人的回答说: 实际上,有点类似于以下代码,但不完全相同,因为使用const不管在什么模式下,都会TypeError类型的错误 几个例子: 所以严格模式下能看到错误:Uncaught TypeError: Assignment to const
阅读全文
摘要:附上尤大的回答链接链接:https://www.zhihu.com/question/31809713/answer/53544875
阅读全文
摘要:方法一 原理: 利用 setTimeout 函数的第三个参数,会作为回调函数的第一个参数传入 利用 bind 函数部分执行的特性 代码 1: for (var i = 0; i < 10; i++) { setTimeout(i => { console.log(i); }, 1000, i) }
阅读全文
摘要:今天才发现setTimeout还有第三个参数。
阅读全文
摘要:startsWith() 方法用来判断当前字符串是否以另外一个给定的子字符串开头,并根据判断结果返回 true 或 false const str1 = 'Saturday night plans'; console.log(str1.startsWith('Sat')); // expected
阅读全文
摘要:VM 主要做了两件微小的事情: 从 M 到 V 的映射(Data Binding),这样可以大量节省你人肉来 update View 的代码(将数据绑定到view) 从 V 到 M 的事件监听(DOM Listeners),这样你的 Model 会随着 View 触发事件而改变 (view改变的时候
阅读全文
摘要:cookie: 登陆后后端生成一个sessionid放在cookie中返回给客户端,并且服务端一直记录着这个sessionid,客户端以后每次请求都会带上这个sessionid, 服务端通过这个sessionid来验证身份之类的操作。所以别人拿到了cookie拿到了sessionid后,就可以完全替
阅读全文
摘要:在ES5中,顶层对象的属性和全局变量是等价的,var 命令和 function 命令声明的全局变量,自然也是顶层对象。 但ES6规定,var 命令和 function 命令声明的全局变量,依旧是顶层对象的属性,但 let命令、const命令、class命令声明的全局变量,不属于顶层对象的属性。 在哪
阅读全文
摘要:模块化主要是用来抽离公共代码,隔离作用域,避免变量冲突等。 IIFE: 使用自执行函数来编写模块化,特点:在一个单独的函数作用域中执行代码,避免变量冲突。 (function(){ return { data:[] } })() AMD: 使用requireJS 来编写模块化,特点:依赖必须提前声明
阅读全文
摘要:观察者模式中主体和观察者是互相感知的,发布-订阅模式是借助第三方来实现调度的,发布者和订阅者之间互不感知 联系 发布-订阅模式是观察者模式的一种变体。发布-订阅只是把一部分功能抽象成一个独立的ChangeManager。 意图 都是某个对象(subject, publisher)改变,使依赖于它的多
阅读全文
摘要:1. 浏览器渲染机制 浏览器采用流式布局模型(Flow Based Layout) 浏览器会把HTML解析成DOM,把CSS解析成CSSOM,DOM和CSSOM合并就产生了渲染树(Render Tree)。 有了RenderTree,我们就知道了所有节点的样式,然后计算他们在页面上的大小和位置,最后
阅读全文
摘要:有以下 3 个判断数组的方法,请分别介绍它们之间的区别和优劣Object.prototype.toString.call() 、 instanceof 以及 Array.isArray() 1. Object.prototype.toString.call() 每一个继承 Object 的对象都有
阅读全文
摘要:1. npm 模块安装机制: 发出npm install命令 查询node_modules目录之中是否已经存在指定模块 若存在,不再重新安装 若不存在 npm 向 registry 查询模块压缩包的网址 下载压缩包,存放在根目录下的.npm目录里 解压压缩包到当前项目的node_modules目录
阅读全文
摘要:先给出答案: 有时表现出异步,有时表现出同步 1.setState只在合成事件和钩子函数中是“异步”的,在原生事件和setTimeout 中都是同步的。 2.setState 的“异步”并不是说内部由异步代码实现,其实本身执行的过程和代码都是同步的,只是合成事件和钩子函数的调用顺序在更新之前, 导致
阅读全文
摘要:TCP三次握手: 1、客户端发送syn包到服务器,等待服务器确认接收。 2、服务器确认接收syn包并确认客户的syn,并发送回来一个syn+ack的包给客户端。 3、客户端确认接收服务器的syn+ack包,并向服务器发送确认包ack,二者相互建立联系后,完成tcp三次握手。 四次握手就是中间多了一层
阅读全文
摘要:在 HTTP/1 中,每次请求都会建立一次HTTP连接,也就是我们常说的3次握手4次挥手,这个过程在一次请求过程中占用了相当长的时间,即使开启了 Keep-Alive ,解决了多次连接的问题,但是依然有两个效率上的问题: 第一个:串行的文件传输。当请求a文件时,b文件只能等待,等待a连接到服务器、服
阅读全文
摘要:今天看到这样一道面试题: 这道题主要考察的是事件循环中函数执行顺序的问题,其中包括async ,await,setTimeout,Promise函数。下面来说一下本题中涉及到的知识点。 任务队列 首先我们需要明白以下几件事情: JS分为同步任务和异步任务 同步任务都在主线程上执行,形成一个执行栈 主
阅读全文
摘要:有这样的需求,父组件绑定v-model,子组件输入更改父组件v-model绑定的数值。是怎么实现的呢? 实际上v-model 只是语法糖而已。 <input v-model="inputValue" /> <input v-bind:value="inputValue" v-on:input="in
阅读全文
摘要:这样直接写的话,编译时会直接给你计算了,这时到浏览器上的calc里面的值是不准确的。改为下面这样写就解决了 在前面加~符号,后面加引号包上,为什么会这样,我暂时还没查到,有知道的朋友可以解答我一下。
阅读全文
摘要:打开chorme的扩展程序(设置——>更多工具——>扩展程序)chrome://extensions 选择开发者模式 拖拽.crx至Chrome的扩展程序列表 安装失败 报错为:程序包无效:"CRX_HEADER_INVALID" 选择加载已解压的扩展程序 成功安装的操作如下: 成功安装 简而言之,
阅读全文