- 博客(31)
- 收藏
- 关注
原创 Nginx常用配置-反向代理-https重定向-端口转发
如果不写/,当访问example.com/api/index.php时,会代理到example.com:4433/api/index.php。如前端是https://example.com/index.html,调用的接口是https://example.com:4433。这里不能写作,因为是正则匹配的意思,用了正则就不能再proxy_pass段配置URI了,所谓URI就是4433端口后面的/。如果想让你的非标准https端口,如2083支持HTTP跳转HTTPS访问,请参照如下配置。
2023-06-01 09:37:31
3643
原创 eslint忽略某一行、某一段代码校验
关闭段落校验/*eslint-disable */js code/*eslint-disable */关闭当前校验js code //eslint-disable-line关闭下一行校验// eslint-disable-next-linejs code
2021-07-28 11:43:10
5192
转载 原型链与原型浅析
与大部分面向对象的语言不同,javascript在ES6之前并没有引入class(类)的概念。javascript并不是通过类而是通过构造函数来创建实例。在介绍原型和原型链之前,我们有必要先复习一下构造函数的知识。1、构造函数 构造函数模式的目的就是为了创建一个自定义类,并且创建这个类的实例。构造函数模式中拥有了类和实例的概念,并且实例和实例之间是相互独立的,即实例识别。构造函数就...
2019-09-05 15:11:14
144
原创 http1.0 http1.1 http2.0区别
简单版回答:HTTP/2 复用 TCP 连接,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一对应。举例来说,在一个TCP连接里面,服务器同时收到了A请求和B请求,于是先回应A请求,结果发现处理过程非常耗时,于是就发送A请求已经处理好的部分, 接着回应B请求,完成后,再发送A请求剩下的部分。历史原因解释:1、HTTP/1.0 版本该版本主要缺点是,...
2019-08-26 18:54:17
168
原创 用 async/await 来处理异步
先说一下async的用法,它作为一个关键字放到函数前面,用于表示函数是一个异步函数,因为async就是异步的意思, 异步函数也就意味着该函数的执行不会阻塞后面代码的执行。 写一个async 函数async function timeout() { return 'hello world';}语法很简单,就是在函数前面加上async关键字,来表示它是异步的,那怎么调用呢?async...
2019-08-23 10:57:19
637
原创 前端跨域的几种方式
1 引言概念首先什么是跨域,简单地理解就是因为JavaScript同源策略的限制,a.com 域名下的js无法操作b.com或是c.a.com域名下的对象,也就是不同域名之间相互访问。比如我们在本地访问一个其他服务器上的接口时往往出现下面的情况:这就说明出现了跨域问题。下面我先说明几个概念同源策略同源策略(Same origin policy)是一种约定,它是浏览器最核心...
2019-08-22 18:31:49
694
转载 js继承的几种方式
(1) 属性拷贝就是将对象的成员复制一份给需要继承的对象// 创建父对象var superObj = { name: 'Li', age: 25, friends: ['小明', '小李', '小赵'], showName: function(){ alert(this.name); }}// 创建需要继承的子对象var subObj = {};...
2019-08-12 18:08:16
84
原创 浅谈闭包
1、什么是闭包?闭包的优缺点?闭包(closure)是javascript的一大难点,也是它的特色。很多高级应用都要依靠闭包来实现。1、变量作用域要理解闭包,首先要理解javascript的特殊的变量作用域。变量的作用域无非就两种:全局变量和局部变量。javascript语言的特别之处就在于:函数内部可以直接读取全局变量,但是在函数外部无法读取函数内部的局部变量。注意点:在...
2019-08-02 19:13:02
98
原创 手动实现promise.all promise.race
Promise的原理Promise其实内部也有一个defers队列存放事件,.then的事件就在里面,程序开始执行的时候,.then就已经放入下一个事件,然后后面当异步操作完成时,resolve触发事件队列中的事件,便完成了一个.then操作, 其实到这里我们就可以很快地想出一种解决方案,每次异步操作完成通过resolve触发事件并将事件从事件队列中移除,通过事件队列中的事件的resolve使...
2019-08-01 11:24:41
489
原创 理解和使用ES6中的Symbol
ES6中引入了一种新的基础数据类型:Symbol,不过很多开发者可能都不怎么了解它,或者觉得在实际的开发工作中并没有什么场景应用到它,那么今天我们来讲讲这个数据类型,并看看我们怎么来利用它来改进一下我们的代码。这是一种新的基础数据类型(primitive type)Symbol是由ES6规范引入的一项新特性,它的功能类似于一种标识唯一性的ID。通常情况下,我们可以通过调用Symbol()函...
2019-07-31 16:15:36
84
转载 深拷贝与浅拷贝的区别
转自:https://www.cnblogs.com/echolun/p/7889848.html如何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝,自食其力。此篇文章中也会简单阐述到栈堆,基本数据类型与引用数据类型,因为这些概念能更好的让你理解深拷贝与浅拷贝。我们来举个浅拷贝例...
2019-07-24 11:24:30
146
转载 Vue双向数据绑定浅析
1、数据 ————> Dom通过compile解析指令和数据,为其添加watcher watcher触发对于的get方法,使其进行依赖收集,把对应的watcher进行收集 当数据发送变化的时候,触发set方法,使其通知watcher进行视图更新2、Dom ————> 数据通过compile解析指令和数据 监听Dominput等更新动作,当触发dom更新时,在对应回调...
2019-07-22 18:20:31
126
转载 call, apply, bind的内部实现原理
call, apply, bind都是改变函数执行的上下文,说的直白点就是改变了函数this的指向。不同的是:call和apply改变了函数的this,并且执行了该函数,而bind是改变了函数的this,并返回一个函数,但不执行该函数。看下面的例子1:var doThu = function(a, b) { console.log(this) console.log(th...
2019-07-19 16:41:36
218
转载 async await setTimeout promise 的异步流程是什么?先后顺序是?
async function async1() { console.log('async1 start'); await async2(); console.log('async1 end');}async function async2() { console.log('async2');}console.log('script start');setT...
2019-07-12 11:19:12
243
原创 JS的异步执行机制-浅析
S 主线程拥有一个执行栈(同步任务)和 一个任务队列(microtasks queue),主线程会依次执行代码,当遇到函数(同步)时,会先将函数入栈,函数运行结束后再将该函数出栈; 当遇到task任务(异步)时,这些 task 会返回一个值,让主线程不在此阻塞,使主线程继续执行下去,而真正的task任务将交给浏览器内核执行,浏览器内核执行结束后,会将该任务事先定义好的回调函数加入相...
2019-07-11 17:26:51
346
原创 Math.round() Math.ceil() Math.floor() 区别
Math.round() round字面意思 “附近 周围”小数点后第一位<5正数:Math.round(11.46)=11负数:Math.round(-11.46)=-11小数点后第一位>5正数:Math.round(11.68)=12负数:Math.round(-11.68)=-12小数点后第一位=5正数:Math.round(11....
2019-07-10 15:28:51
158
转载 js 常用算法总结
1、判断一个单词是否是回文?回文是指把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环的情趣,叫做回文,也叫回环。比如 mamam redivider .很多人拿到这样的题目非常容易想到用for 将字符串颠倒字母顺序然后匹配就行了。其实重要的考察的就是对于reverse的实现。其实我们可以利用现成的函数,将字符串转换成数组,这个思路很重要,我们可以拥有更多的自由度去进行字符串的一...
2019-07-08 18:06:47
160
原创 小程序组件swiper-如何修改面板指示点样式
官方文档里,swiper的指示点默认是圆形,且只能修改其颜色。如果要修改形状,有两种思路:1.隐藏官方的面板指示点(官方有提供属性可以隐藏),自己用view重写组件 (个人觉得这个比较麻烦 此篇文章不做讲解)2.弄清swiper里控制指示点的类,并对其中样式进行修改。第二种方法怎么修改指示点样式呢?首先 : 我们需要了解几个classswiper里控制指示点的类1....
2019-05-28 18:29:50
5893
2
转载 详解Vue使用 Swiper 在 iOS 小于 11 时出现错误
前言swiper这是一个很强大的轮播展示工具,但往往也会有一些未知BUG,尤其是在手机端,由于性能局限,会导致效果和PC测试的时候有完全不一样的效果在H5项目中,需要用到翻页效果,通过 Swiper 来实现,安装 Swipernpm install swiper --save-dev但是实际使用中,发现低版本 iOS < 11 会出现下面这个错误:SyntaxError...
2019-05-14 17:07:57
816
原创 vue mixins和extends的区别
混合mixins和继承extends看看官方文档怎么写的,其实两个都可以理解为继承,mixins接收对象数组(可理解为多继承),extends接收的是对象或函数(可理解为单继承)。继承钩子函数 const extend = { created () { console.log('extends created') } } const...
2019-02-25 18:54:12
4914
转载 vue之mixin理解与使用
常见场景 有两个非常相似的组件,他们的基本功能是一样的,但他们之间又存在着足够的差异性,此时的你就像是来到了一个分岔路口:我是把它拆分成两个不同的组件呢?还是保留为一个组件,然后通过props传值来创造差异性从而进行区分呢? 两种解决方案都不够完美:如果拆分成两个组件,你就不得不冒着一旦功能变动就要在两个文件中更新代码的风险,这违背了 DRY 原则。反之,太多的prop...
2019-02-23 15:35:15
420
原创 浅析正则
特殊字符:所谓特殊字符,就是一些有特殊含义的字符如上面说的 runoo*b 中的 *,简单的说就是表示任何字符串的意思。如果要查找字符串中的 * 符号,则需要对 * 进行转义,即在其前加一个 \: runo\*ob 匹配 runo*ob。许多元字符要求在试图匹配它们时特别对待。若要匹配这些特殊字符,必须首先使字符"转义",即,将反斜杠字符\ 放在它们前面。下表列出了正则表达式中的特殊字符...
2018-12-04 17:43:54
83
原创 浅析flex布局
一、flex布局是什么Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为Flex布局。.box{ display: flex;}行内元素也可以使用Flex布局。.box{ display: inline-flex;}Webkit内核的浏览器,必须加上-webkit前缀。.box{ d...
2018-10-18 17:22:19
110
原创 JavaScript 数组(Array)对象的相关方法
concat() 连接两个或更多的数组,并返回结果。join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。pop() 删除并返回数组的最后一个元素。shift() 删除并返回数组的第一个元素。unshift() 向数组的开头添加一个或更多元素,并返回新的长度。reverse() 颠倒数组中元素的顺序。slice() 从某个已有的数组返回选定的元素。...
2018-09-22 21:30:32
97
原创 如何理解闭包?
1、定义和用法:当一个函数的返回值是另一个函数,而返回的那个函数如果调用了其父函数内部的其它变量,如果返回的这个函数在外部被执行,就产生了闭包。2、表现形式:使函数外部能够调用函数内部定义的变量。3、实例如下:(1)、根据作用域链的规则,底层作用域没有声明的变量,会向上一级找,找到就返回,没找到就一直找,直到window的变量,没有就返回undefined、 这里明显count 是函数...
2018-09-22 20:52:57
319
转载 比较typeof与instanceof
相同点:JavaScript 中 typeof 和 instanceof 常用来判断一个变量是否为空,或者是什么类型的。typeof 的定义和用法:返回值是一个字符串,用来说明变量的数据类型。细节:(1)、typeof 一般只能返回如下几个结果:number, boolean, string,function,object,undefined。(2)、typeof 来获取一个变量是...
2018-09-22 20:47:21
105
原创 this的典型应用场景
1)、在html元素事件属性中使用,如:<input type=”button” onclick=”showInfo(this);” value=”点击一下”/>(2)、构造函数function Animal(name, color) { this.name = name; this.color = color;}(3)、input点击,获取值<...
2018-09-19 11:48:14
366
原创 怎样添加、移除、移动、复制、创建和查找节点?
1)创建新节点 createDocumentFragment() //创建一个DOM片段 createElement() //创建一个具体的元素 createTextNode() //创建一个文本节点2)添加、移除、替换、插入 appendChild() //添加 removeChild() //移除 replaceChild() //替换 insertBefor...
2018-09-19 10:38:46
186
原创 js 对字符串操作函数
1、concat() – 将两个或多个字符的文本组合起来,返回一个新的字符串。2、indexOf() – 返回字符串中一个子串第一处出现的索引。如果没有匹配项,返回 -1 。3、charAt() – 返回指定位置的字符。4、lastIndexOf() – 返回字符串中一个子串最后一处出现的索引,如果没有匹配项,返回 -1 。5、match() – 检查一个字符串是否匹配一个正则表达...
2018-09-19 10:36:51
442
原创 如何获取浏览器URL中查询字符串中的参数?
废话不多说,直接看代码!var url = 'http://www.runoob.com/jquery/misc-trim.html?channelid=12333&name=xiaoming&age=23'; function URL(){ var sHref = window.location.href; va...
2018-09-19 10:29:07
463
原创 vue 事件修饰符
Vue.js 为 v-on 提供了事件修饰符来处理 DOM 事件细节,如:event.preventDefault() 或 event.stopPropagation()。Vue.js通过由点(.)表示的指令后缀来调用修饰符。.stop .prevent .capture .self .once <!-- 阻止单击事件冒泡 --><a v-on:clic...
2018-09-15 10:59:35
98
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人