自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

转载 从js 讲解时间复杂度和空间复杂度

1. 博客背景今天有同事在检查代码的时候,由于函数写的性能不是很好,被打回去重构了,细思极恐,今天和大家分享一篇用js讲解的时间复杂度和空间复杂度的博客2. 复杂度的表示方式之前有看过的,你可能会看到这么一串东西T(n) = O(f(n)) S(n) = O(f(n)) 这个叫做大O表示法,其中的T代表的是算法需要执行的总时间S表示的算法需要的总空间f(n)表示的是代码执...

2019-08-04 15:02:00 288

转载 前端常见本地存储

说一说常用得本地存储方法cookielocalStoragesessionStoragecookiecookie这个东西我觉得对于前端来讲都不会很陌生,浏览器都会支持cookieHTTP cookie 在最初得时候适用于客户端存储会话信息用的,在我们发送http请求得时候,响应头会包含此次会话得会话信息返回给客户端,浏览器回存储这样得会话信息并且在本地有了cooki...

2019-07-28 19:57:00 219

转载 js常用设计模式实现(三)建造者模式

创建型模式创建型模式是对一个类的实例化过程进行了抽象,把对象的创建和对象的使用进行了分离关于创建型模式,已经接近尾声了,还剩下建造者模式和原型模式,这一篇说一说建造者模式建造者模式的定义将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。很官方哈,举个例子,就拿他的名字来说,建房子,你尽管告诉开发商,我有钱我要一个这样的房子,然后开发商就会去找到...

2019-07-14 19:59:00 214

转载 js常用设计模式实现(一)单例模式

前言什么是设计模式设计模式是一种能够被反复使用,符合面向对象特性的代码设计经验的总结,合理的使用设计模式能够让你得代码更容易维护和可靠设计模式的类型共分为创建型模式,结构型模式,行为型模式三种创建型模式创建型模式是对一个类的实例化过程进行了抽象,把对象的创建和对象的使用进行了分离,创建模式有单例模式抽象工厂模式建造者模式工厂模式原型模式单例模式单例模...

2019-07-11 21:14:00 141

转载 js深入(四)万脸懵圈的this指向

作为一个js菜鸡的我而言,在之前讲到过那么多的js链式查找机制,比如说原型链,作用域链等等,想当然的把这个机制带入到了this指向上边,结果就是这个this指向指的我万脸懵逼(标题换字了,担心被河蟹),在经过漫长的通(gou)俗(pi)易(bu)懂(tong)的 ECMAScript规范阅读之后,分享一下我所认知的this指向简而言之,js中this的指向不是在函数定义的时候确定...

2019-07-08 11:13:00 76

转载 js深入(三)作用域链与闭包

在之前我们根绝对象的原型说过了js的原型链,那么同样的js 万物皆对象,函数也同样存在这么一个链式的关系,就是函数的作用域链作用域链首先先来回顾一下之前讲到的原型链的寻找机制,就是实例会先从本身开始找,没有的话会一级一级的网上翻,直到顶端没有就会报一个undefined同样的js的机制就是这样的,函数在执行的时候会先函数本身的上下文的变量对象中查找,没有的话,也会从这个函数被创建...

2019-07-05 11:52:00 62

转载 js深入(二)函数的执行与上下文

这一篇简单的说一说js的函数执行和js的执行上下文的概念,之前在我的博客里边也提到过js的堆栈队列,这一篇打算单独的拿出来说一说是什么是js的执行上下文一段可以执行的代码在被执行的时候,会创建一个函数的执行上下文执行上下文里边有三个重要的属性分别是变量对象作用域链this指向执行上下文是跟函数相关的,执行上下文分为两个阶段创建阶段执行阶段首先创建阶段扫...

2019-07-03 13:27:00 145

转载 js深入(一)从原型理解原型链

构造函数创建一个对象function Person() {}var person = new Person();person.name = 'zhangsan';console.log(person.name) // zhangsan上边这个例子,我们通过构造函数创建了一个实例,从这个实例到他的原型到最后得object,他们之间得关系,就形成了一个原型链prototyp...

2019-06-30 20:13:00 58

转载 初识markdown

什么是markdownMarkdown 是一种轻量级标记语言,创始人是约翰·格鲁伯(John Gruber)。它允许人们 “使用易读易写的纯文本格式编写文档,然后转换成有效的 HTML 文档。markdown 语法首先是标题用#表示标题比如说一个#是一号标题,两个#是二号标题, 以此类推最多到六号## 一级标题### 二级标题#### 三级标题##### 四级标题#...

2019-06-27 21:20:00 76

转载 Http 协议详解

什么是http协议超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标...

2019-06-27 14:24:00 138

转载 javascript 设计模式——状态模式

状态模式的定义状态模式(State Pattern) :允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。其别名为状态对象(Objects for States),状态模式是一种对象行为型模式。之前的时候我通常会顶一个一个方法,然后往里边传一些变量什么的去控制对应的方法,不过后来我发现这样的话,我得实现的函数,在业务需求增加的时候,会变很难以阅读和难以维护,虽...

2019-06-20 14:18:00 88

转载 js 隐式类型转换

js是一门弱类型的语言,他在声明变量的时候不需要指定类型,对变量赋值也没有类型的检测,所以js是非常的灵活的,但是有时候也会出现一些非常匪夷所思的问题隐式类型转换定义console.log(1+'1')看这句代码 一个数字1 和一个字符串1 他们的类型是不同的 但是我们并没有对他进行任何的操作,但是打印出来的结果是一个11的字符串隐式类型转换就是指,数据的类型在不用人工干预的情况...

2019-06-18 12:52:00 93

转载 跨域与常用解决方法

接触前端有几个月了,今天说一说我对前端跨域的认识和解决方案,其实在之前我对跨域并没有什么概念只是听闻过这个恶名远扬的单词,直到有一天我遇到了他什么是跨域同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。如果两个页面的协议,端口(如果有指定)和主机都相同,则两个页面具有相同的源。我们也可以把它称为“协议/主机/端口 ...

2019-06-15 21:08:00 55

转载 js堆,栈与队列

栈的定义栈是计算机科学中的一种抽象数据类型,只允许在有序的线性数据集合的一端(称为堆栈顶端,英语:top)进行加入数据(英语:push)和移除数据(英语:pop)的运算。因而按照后进先出(LIFO, Last In First Out)的原理运作。(百科全书)栈的常用操作栈中有两个基本的操作推入 :从栈的顶端推入一个数据,依次往下推弹出 :讲栈顶端的数据移除栈的基本提点...

2019-06-11 21:34:00 121

转载 H5踩坑系列(一)

提到移动端适配,首先心里可能会问,我们为什么要做移动端的适配,怎么去做移动端端的适配我们为什么要进行移动端的适配首先一个页面在pc上边打开,是正常显示的,但是我们用手机打开的时候,由于手机的屏幕尺寸并不能完整的吧页面全部显示出来,就算是手动进行缩放也会出现比如说滚动条,页面布局错乱等等各种五花八门的问题,对于用户的体验非常的不好于是乎就有了移动端的适配,移动端适配的目的是在不同尺...

2019-06-02 14:47:00 218

转载 vue render函数进阶学习

上一篇博客我和大家分享了vue render函数的基础使用这篇博客我们来简单讲一讲render函数他是怎么实现得先来一张官方得图在实例初始化得时候,html通过render函数编译生成了一个虚拟dom,视图层会根据虚拟dom生成一个真实dom然后如果响应数据发生变化得时候,render函数会重新调用,在更新得时候render函数会返回一个新的虚拟dom , 这个新的虚拟dom并...

2019-05-30 12:33:00 139

转载 js 的单线程与异步

js的单线程从我们第一天接触js的时候我们就知道js是单线程的,且js是异步的,首先来看一下基本概念什么是线程线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。(百度百科)举个最简单的例子 , 在我们电脑的任务管理器中你打开一个应用程序的时候 就会多一个进程,他代表了cpu能处理的单个任务。线程是进程下的执行者,一个进程至少会开启一个线程(主...

2019-05-28 19:46:00 61

转载 vue render函数初级学习使用

render函数的基本使用render函数可以接受三个参数,其中第一个参数是必填的可以是String | Object | Function比如说直接写一个div的字符串render(createElement) { return createElement("div")}上边的代码你在审查代码的时候你会发现他渲染出来了一个div的标签,或者你输入了一个你不认识的字符串...

2019-05-24 20:51:00 203

转载 vue生命周期

接触Vue两个月了,今天说一说vue里边很重要的生命周期,记得最开始接触的时候我问了一下周边的同事,这些生命周期都有什么用,得到的答案是mounted里边可以操作属性,你记住mounted就完事了,于是乎。。。数据请求,mounted() 赋值 mounted(),执行方法,mounted(), 监听更新数据???搞不动了。。。然后最近仔细的看了一遍Vue的生命周期,今天和...

2019-04-23 21:59:00 70

转载 javascript观察者模式

观察者模式的定义观察者模式它定义了对象间的一种一对多的依赖关系,只要当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新与观察者模式类似的还有一个发布订阅是在中间多了一个类似于中转的层观察者模式中有观察者和被观察者两个角色,举个栗子,比如租房子,你(观察者)想租某个地方的房子(被观察者),你去找了中介并留下了手机号(订阅)但是中介告诉你房源紧张,没有房...

2019-04-21 14:13:00 37

转载 es6对象的扩展

对象(object)是 JavaScript 最重要的数据结构之一。object 在es6中新增了很多便利的方法在es6中允许直接写入变量和方法的名称直接作为对象的属性let x =1 ,y=2 const obj ={x,y} console.log(obj) //{x: 1, y: 2} ...

2019-04-04 13:53:00 91

转载 es6数组的扩展

数组扩展运算符 ...(三个点) const demoArr=[0,1,2,3,4] console.log(...demoArr) // 0 1 2 3 4 // 他把一个数组用逗号分隔了出来 // 求和 A function sunA(one,two,three,fo...

2019-03-28 13:56:00 86

转载 vue全局API

一。Vue.extend()顾名思义 extend 继承,官方给出的解释是 (使用基础 Vue 构造器,创建一个“子类”。参数是一个包含组件选项的对象。)Vue构造器是指 vue是一个构造函数, 所以在编写代码的时候被称之为构造器Vue.extend()看起来和new Vue() 有点像 他们的区别在于new Vue是一个实例vue.exten...

2019-03-26 13:53:00 75

转载 javascript原型链

咳咳。。。思考一秒钟怎么开始写第一句话,有点绕嗯。。。。(五分钟后)算了先上个图吧那么这个prototype里边又是什么呢 我比较喜欢画图。。。。。。。。。。。but 我发现object上边貌似还有__proto__,于是乎我打印了一下这可能就是传说中没有对象的野指针吧。。。。不过其实我并不认同有人说__proto__是指针的这个...

2019-03-21 14:06:00 168

转载 简单工厂,工厂方法模式

简单工厂模式:又称为静态工厂方法模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。例如 <script> class work{ go(name){ return "今天坐"+name+"...

2019-03-14 13:32:00 94

转载 promise之我见

在我们平时的方法中有很多方法是promise封装的,有些函数后边跟的then和catch 就是promise的方法,先看一下pormise的特点(1)对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改...

2019-03-13 13:55:00 79

转载 vue-插槽

vue官方文档中介绍了三个插槽一。匿名插槽匿名插槽又叫单个插槽,顾名思义一个组件里边只能存在一个匿名插槽你会发现在父组件输入的112233 根据子组件中slot插槽的位置渲染了出来,下边让我们来看一下放入元素这里插入了一个btn按钮,来看一下他的元素可以看到整个元素被插入到了slot的位置所以我们可以吧插槽看作是子组件的一...

2019-03-11 13:21:00 64

转载 js实现接口隔离

昨天公司培训了接口隔离,简单说一下接口隔离:类间的依赖关系应该建立在最小的接口上。接口隔离原则将非常庞大、臃肿的接口拆分成更小具体的接口,这样客户讲会只需要知道他们感兴趣的方法。接口隔离原则的目的是系统解开耦合,从而容易重构、更改和重新部署。先贴一个错误示范 class animal {//动物类 constructor(name) {...

2019-03-01 13:32:00 255

转载 设计原则之依赖倒置js

依赖倒置定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。(百科全书)这个定义什么意思,太专业 感觉不像人话。。什么叫高层模块,什么叫底层模块,什么叫抽象,什么叫细节,来画图上边这个图是遵守了依赖倒置的,再放一个不遵守的抽象抽象说白了就是对于细节而言比如说交通工具是抽象,而公交车、单车、火车等就是细节了 也叫...

2019-02-27 12:43:00 246

转载 面向对象设计原则—单一、开闭、里氏替换原则

昨天公司培训了面向对象设计原则—单一、开闭、里氏替换原则,听过之后感触很多,因为刚进公司,之前的代码毫无原则可言,乱乱糟糟的,之后按照规范重构,很痛苦,感觉自己的代码就像是一坨翔,赶脚大姨夫捉急的都快提前了,代码规范这四个字真的是给我印象很深刻。一。单一原则定义:单一功能原则(Single responsibility principle)规定每个类都应该有一个单一的功能,...

2019-02-25 13:31:00 316

转载 flex布局实现elment容器布局

一。flex布局是什么flex布局,意为"弹性布局",是一种响应式的布局方法采用 Flex 布局的元素,称为 Flex 容器,它的所有子元素自动成为容器成员。先放上一个element 的组件实现demo用了一些flex布局 ,然后下边有关于flex的详细属性先放效果图贴上代码<div class="box flex"> ...

2019-02-23 09:54:00 267

转载 js 面向对象的三大特性

一。封装所谓封装的概念,是不希望暴露函数中属性或者方法的地址,使外界不能操作,但是可以暴露特有的公有接口,可以利用接口操作。function hello(){  var name='xiaoming';  this.getname=function(){  return name;  }}封装在平日里用的比较多 ,去除了很多的...

2019-02-22 13:10:00 343

转载 javascript抽象工厂模式

一。简单工厂定义:简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。 比如你去专门卖鼠标的地方你可以买各种各样的鼠标function mouse(color,long){    var o = new Object();    o.color= color...

2019-02-21 22:43:00 97

空空如也

空空如也

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

TA关注的人

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