自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

白天不懂夜的黑

喜欢前端,对知识有着浓厚的兴趣和追求!不断学习前沿知识,走在成为大佬的路上!

  • 博客(69)
  • 收藏
  • 关注

原创 node版本如何降级

(1)安装node版本管理模块nsudo npm install n -g下边步骤请根据自己需要选择(2)安装稳定版sudo n stable(3)安装最新版sudo n latest(4) 版本降级/升级sudo n 版本号//例如:sudo n 9.1.7...

2019-11-08 19:10:25 3894

原创 gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2

gyp ERR! build errorgyp ERR! stack Error: `make` failed with exit code: 2gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23)gyp ERR! st...

2019-11-07 10:02:14 17869

原创 新版vscode打开分栏的settings设置界面

新版vscode打开分栏的settings设置界面左下角点击齿轮打开设置(setting)搜索栏搜索 use split在如下的项目上打上对勾点击Ctrl+Shift+P,在弹框中输入setting,选择打开设置然后我们就可以看到分栏的setting界面了...

2019-11-06 19:40:14 2331

原创 解决输入git branch 进入编辑状态,mac下出现END,无法返回

在终端设置(输入下面的代码)git config --global core.pager mor

2019-11-05 20:39:23 845 1

原创 npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules

MAC下这种情况就是没有权限,需要获取root权限在npm前面加sudo 然后输入密码sudo npm install xxxx

2019-10-19 12:07:14 104

原创 写一个加法函数sum同时支持sum(x,y)sum(x)(y)

function sum(){ var num = arguments[0]; if(arguments.length==1){ return function(sec){ return num+sec; } }else{ var num = 0; for(var i = 0;i<...

2019-09-24 15:49:13 1015

原创 UDP和TCP

面试题TCP和UDP有哪些区别?UDP协议是面向无连接的,TCP是面向连接的所谓建立连接,是为了客户端和服务端维护连接,而建立一定的数据结构来维护双方交互的状态,用这样的数据结构来保证所谓的面向连接的特性。面向无连接也就是说不需要在正式传递数据之前先连接双方。UDP具体的说就是:在发送端,应用层将数据传递给传输层的UDP协议,UDP只会给数据增加一个UDP头部标识,然后就传递给网...

2019-03-31 19:22:07 207

原创 HTTP方法的详解

GET 系列请求GETGET方法用来请求访问已被URL识别的资源DELETE从服务器上删除某些资源文件HEAD只想获取服务器返回的响应头信息(响应主体内容不需要获取)POST系列请求POSTPUT 向服务器中增加指定的资源文件不管是哪一种请求方式,客户端都可以把信息传递给服务器,服务器也可以把信息返回给客户端,只是GET系列一般以获取为主(给的少,拿的多)而POST系列一般以...

2019-03-31 19:20:52 116

原创 HTTP和HTTPS

HTTPHTTP请求有三部分组成:请求行GET/images/logo.gif HTTP/1.1 基本由请求方法,URL,协议版本组成首部请求首部和响应首部实体HTTP/2HTTP/2相比HTTP/1 大幅度提高了网页的性能在HTTP/1 中,为了性能考虑,我们会引入雪碧图,将小图内联,使用多个域名等等的方式,这一些是因为浏览器限制了同一域名下的请求数量(Chrome下一般是限...

2019-03-31 19:19:47 106

转载 前端性能优化之雅虎35条军规

页面内容(1) 减少HTTP请求数Web前端80%的响应时间花在图片,样式,脚本等资源上,最直接的方式是减少页面所需的资源,但并不现实,所以减少HTTP请求数主要途径是:1 合并JS/CSS 文件,服务器CDN自动合并,通过把所有的脚本放在一个文件中来减少请求数2 使用CSS雪碧图,合成一个文件 通过background-image和background-position控制3 行...

2019-03-18 09:28:31 118

转载 关于模块化立即执行函数和ESModule的详解

立即执行函数在了解立即执行函数之前,先明确一下函数声明,函数表达式以及匿名函数的形式function test(){//函数声明 console.log('test')}var test=function(){//函数表达式 console.log('test')}function(){//匿名函数 console.log('test')}什么是立即执行函数...

2019-03-01 15:44:51 3585

转载 理解Object.defineProperty的作用

对象是由多个名/值对组成的无序的集合。对象中每个属性对应任意类型的值。定义对象可以使用构造函数或字面量的形式:var obj = new Object; //obj = {}obj.name = "张三"; //添加描述obj.say = function(){}; //添加行为除了以上添加属性的方式,还可以使用Object.defineProperty定义新属性或修改原有的属性...

2019-02-26 20:55:44 3757

原创 从URL输入到页面展示发生了什么

总的来说就是下面几个过程:DNS解析:将域名解析成IP地址TCP连接:TCP的三次握手发送HTTP请求服务器处理请求并返回HTTP报文浏览器解析渲染页面断开连接:TCP四次挥手URL到底是啥URL(Uniform Resource Locator)统一资源定位符,用于定位互联网上资源,俗称网络.遵循以下语法规则:scheme://host.domain:port/path/fi...

2019-02-25 15:56:23 565

原创 浏览器缓存机制

缓存可以说是性能优化中简单有效的方式之一,它可以显著减少网络传输所带来的损耗.对于一个数据请求来说,可以分为发送网络请求,后端处理,浏览器响应三个步骤。浏览器缓存可以帮助我们在第一和第三步骤中优化性能。比如说直接使用缓存而不发送请求,或者是发送了请求但后端存储的数据和前端一直,那么就没有必要在将数据会传过来,这样就减少了数据响应。下面从三部分来讨论浏览器缓存机制缓存位置缓存策略实际场...

2019-02-24 17:11:47 111

原创 布局

涉及的范围页面布局 CSS盒模型 DOM事件 HTTP协议 面向对象 原型链通信 算法 安全一面/二面页面布局1 假设高度已知,请写出三栏布局,其中左栏,右栏宽度各位300px,中间自适应题目的延伸1 每个方案的优缺点写在代码下面2 假设把高度去掉,考虑纵向,哪个方案不适用?定位和表格能用3 兼容性,真正在业务中,使用哪种?看情况!!浮动布局&lt;!DOC...

2019-02-23 19:54:21 112

原创 scrollWidth,clientWidth,offsetWidth的区别

scrollWidth:对象的实际内容的宽度,不包边线宽度,会随对象中内容超过可视区后而变大。clientWidth:对象内容的可视区的宽度,不包滚动条等边线,会随对象显示大小的变化而改变。offsetWidth:对象整体的实际宽度,包滚动条等边线,会随对象显示大小的变化而改变。clientWidth和clientHeigh 、 clientTop和clientLeftclientWid...

2019-02-23 11:52:14 660

原创 详解异步编程

我们知道JavaScript语言的执行环境是单线程,也就是一次只能完成一个任务。如果有多个任务就必须排队,前面一个任务完成,再执行后面的一个任务这种模式虽然实现起来简单,执行环境相对单纯,但是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。常见的有的浏览器无响应(假死,往往就是因为某一段JS代码长时间运行(比如死循环),导致整个页面卡在这个地方,其他任务无法执行。为了解...

2019-02-22 22:43:34 621

原创 手写call,apply,bind函数

涉及面试题call,apply,bind函数内部实现是怎样的?考虑两点:第一个参数为undefined或null的时候,那么会转变为window改变了this执行,让新的对象可以执行该函数。callFunction.prototype.myCall = function(context) { if (typeof context === "undefined" || c...

2019-02-22 19:37:25 7872 2

原创 Proxy

proxy 代理 ES6 增强 对象和函数(方法) 生命周期 预处理就是在函数执行之前先预处理一下语法let p = new Proxy(target, handler);target就是你要处理的函数或者是对象,handler就是你要对该函数或者对象进行的操作target:let target={ add:function(val){ return va...

2019-02-22 18:30:08 215

原创 模块化

涉及的面试题什么是模块化?为什么要使用模块化?都有哪几种方式可以实现模块化,各有什么特点?什么是模块化?模块化就是为了减少系统的耦合度,提高高内聚,减少资源循环依赖,增强系统框架设计让开发者便于维护,同时让逻辑相同的部分可复用模块化开发:针对JS,CSS以功能或业务为单元组织代码。JS方面解决独立作用域,依赖管理,api暴露,按需加载与执行,安全合并等问题,CSS方面解决依赖管理,...

2019-02-22 15:51:08 709

原创 call,apply,bind

callcall和apply就是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向。function a(name) { console.log(name, 111) console.log(this, 222) }a('fanfei')使用call改变this ...

2019-02-22 11:54:43 75

原创 BFC详解

BFC的基本概念块级格式化上下文BFC布局规则=&gt;BFC的原理(渲染原理)1.内部的Box会在垂直方向上一个接一个放置2.Box垂直方向的距离由margin决定,属于同一个BFC的两个相邻的Box的margin会发生重叠。3.每个元素的margin box的左边,与包含块border box的左边相接触4.BFC的区域不会与float box重叠5.BFC是页面上的一个隔离...

2019-02-10 22:17:54 150

原创 使用typeof并不能判断obj是否是一个对象的问题

涉及的笔试题使用typeof obj==='object’潜在问题,并不能确定obj是否是一个对象?当初我看到这个题的时候,我的第一反应就是使用instanceof,其实这是错误的,这里让判断的就是object类型,并没有让你判断详细的对象类型(Array,String之类)其实这里主要是为了区分null和对象,因为使用typeof 来判断null,返回的结果也是object。这里提供...

2019-02-10 12:10:07 1411

原创 原型继承和Class继承

涉及的面试题原型如何实现继承?CLass如何实现继承?Class本质是什么?首先讲一下class,当初我学习ES6的时候,出现class的时候,我蛮开心的,因为我有JAVA的基础,对class可是非常的理解。后来发现,其实JS中还是没有类的存在的,class只是一个语法糖其本质函数还是函数class Person {}console.log(typeof Person) //func...

2019-02-09 22:27:28 1322

原创 JavaScript实现十大排序算法

排序算法是数据结构与算法中最基本的算法之一排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序。而外部排序是因为排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存关于时间复杂度平方阶(O(n²))排序:直接插入,直接选择,冒泡排序线性对数阶(O(logn))排序:快速排序,堆排序,归并排序O(N)排序:基数排序,桶排序,箱排序关于稳定性稳...

2019-02-03 18:48:47 154

原创 原型和原型链

涉及的面试题instanceof的原理A instanceof Binstanceof的运算符的第一个变量是一个对象,暂时称为A,第二个变量一般是一个函数,暂时称为Binstanceof的判断规则:沿着A的__proto__这条线来找,同时沿着B的prototype这条线来找,如果两个线能找到同一个引用,即同一个对象,那么就返回true。如果找到终点还未重合,则返回false。按照...

2019-02-03 12:29:47 112

原创 border.css移动端边框问题

@charset "utf-8";.border,.border-top,.border-right,.border-bottom,.border-left,.border-topbottom,.border-rightleft,.border-topleft,.border-rightbottom,.border-topright,.border-bottomleft {...

2019-01-27 20:51:32 1624

原创 移动端的reset.css

/**Eric Meyer’s Reset CSS v2.0 (http://meyerweb.com/eric/tools/css/reset/)http://cssreset.com*/html, body, div, span, applet, object, iframe,h1, h2, h3, h4, h5, h6, p, blockquote, pre,a, abbr, ...

2019-01-27 20:50:41 961

原创 JavaScript的拷贝(克隆)问题

let _ = require('lodash');let obj2 = { a: [1, 2, 3], b: { c: 2, d: 3 }}let obj3 = _.cloneDeep(obj2)obj3.b.c = 1console.log(obj2)

2019-01-25 21:37:10 5370

原创 闭包详解

涉及的面试题什么是闭包?函数A内部有一个函数B,函数B可以访问到函数A中的变量,那么函数B就是闭包function A() { let a = 1; window.B = function() { console.log(a) }}1. 如何产生闭包?当一个嵌套的内部(子)函数引用了嵌套的外部(父)函数的变量(函数)时, 就产生了闭包...

2019-01-25 17:21:11 219

原创 Vue的非父子组件传值

解决方案BUS总线/发布订阅代码:&lt;!DOCTYPE html&gt;&lt;html lang="en"&gt;&lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;meta name="viewport" content="width=device-width, initial-scale=1.

2019-01-24 20:06:41 112

原创 Vue的父子组件通信(十种)

设计的面试题Vue中父子组件通信有哪些方式?概述通信方式无外乎就那几种:Prop 常用$emit 组件封装用的较多.sync 语法糖 (较少)$attrs和$listeners(组件封装用的较多)provide和inject(高阶组件/组件库用的较多)其他方式通信详情1 Prop我们用的最多方式,可以通过Prop向子组件传递数据。用一个形象的比喻来说,父...

2019-01-24 17:25:00 26195 2

原创 this问题

涉及面试题:如何正确判断this?箭头函数的this是什么?说明this的几种不同使用场景this必须是在要执行时才能确认值,定义时无法确定.1.作为构造函数属性执行2.作为对象属性执行3.作为普通函数执行4.call apply bind我们先看几个函数调用的场景function fn() { console.log(this.a)}var a = 1fn()c...

2019-01-23 19:53:04 365

原创 Cookie和Session的区别

Cookie (存储在用户本地终端上的数据)Cookie指某些网站为了辨别用户身份,进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。Cookie实际上是指小量信息,是由Web服务器创建的,将信息存储在用户计算机上的文件.场景当我们浏览器以前访问过的网站时,网页中可能会出现:你好XXX。这会让我们感到很亲切,就像是吃了小甜品一样。这其实是通过访问主机上的一个文件来实...

2019-01-23 17:47:54 85

原创 前端网络安全防范详解

借鉴了很多文章,参考很多资料浅谈CSRFXSS涉及的面试题 什么是XSS攻击?如何预防XSS攻击1 基础概念XSS(Cross Site Scripting)攻击全称跨站脚本攻击是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户...

2019-01-22 20:35:27 6376

原创 跨域详解

同源策略协议 域名 端口 都一样就是同源同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要机制跨源网络访问同源策略控制了不同源之间的交互,例如在使用XMLHttpRequest或标签时则会收到同源策略的约束。这些交互通常分为三类:1.通常允许跨域写操作(Cross-origin writes)。例如链接(Links),重定向以...

2019-01-22 18:33:16 222

原创 DNS域名解析全过程

面试题: DNS寻址过程或者DNS解析过程二种方式解析1 递归查询主机向本地域名服务器的查询一般都是采用递归查询。所谓递归查询就是:如果主机所查询的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询的请求报文(即替该主机继续查询),而不是该主机自己进行下一步的查询,因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报...

2019-01-21 18:37:46 4183 2

原创 封装一个DOM查询

//面试可以写的继承实例//写一个封装DOM查询的例子function Elem(id) { this.elem = document.getElementById(id)}Elem.prototype.html = function(val) { var elem = this.elem if (val) { elem.innerHTML = v...

2019-01-20 22:28:19 302

原创 进程线程和并行并发

定义进程进程是具有一定独立功能的程序,关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。一个进程要是能独立运行,它必须拥有一定的资源,包括用于存放程序正文,数据的磁盘和内存地址空间,以及它在运行时所需的I/O设备,已打开的文件,信号量等。进程同时又是一个可独立调度和分派的基本单位,一个进程要是能独立运行,它还必须是一个可独立调度和分派的基本单位。线程线程是进程...

2019-01-17 16:37:40 2769

原创 透明度问题

实现透明的三种方法1 CSS3的opacity(不透明)取值是在0-1(表示完全透明,1表示完全不透明)2 rgba(red,green,blue,alpha)alpha的取值0-13 IE专属滤镜filter:Alpha(opacity=x)x的取值从0到100,例如:filter:Alpha(opacity=80)opacity兼容性:IE6,7,8不支持设置opacity元素的所...

2019-01-17 14:34:29 290

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除