自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

amyleeYMY的博客

一只努力向上冲的程序圆呐

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

原创 let到底会不会造成变量提升

let到底会不会造成变量提升呢?关于这个问题,大家可以先在心中想想现在自己的答案,我们继续往下看:今天有个群里有人提了这个问题,大部分人都说不会,但是在我的印象里是觉得会的,但是太多不同的声音,让我也开始怀疑自己,到底会不会提升呢?于是我又翻起了红宝书,在红宝书(第四版)第26页,有这么一句话:let 与 var 的另一个重要的区别,就是 let 声明的变量不会在作用域中被提升。但是在往后翻翻,在第92页又写了这么一句话:严格来讲,let 在 JavaScript 运行时中也会被提升,但由

2022-01-18 13:33:21 1980 1

原创 gitlab CI Job is stuck

之前一直能正常跑的CI,这几天突然就不行了,报错Job is stuck. Check runners。找运维确认后,是gitlab-runner 升级了,升级之后.gitlab-ci.yml必须要配置tags才行,需要指定是哪个runner。更改之后就正常啦image: alpine:latestpages: stage: deploy tags: - yourRunner script: - echo 'Nothing to do...' artifacts:

2021-09-18 11:07:29 2706 1

原创 JS reduce基本使用及高阶函数compose

先介绍下reduce基本用法:reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值array.reduce(function(total, currentValue, currentIndex, arr), initialValue)这里注意,reduce() 方法接受一个函数作为累加器。先看两个例子,理解下是否设置初始值的情况:var arr = [1, 2, 3, 4];var sum = arr.reduce(function(prev,

2021-08-30 15:24:59 302

原创 在 chrome 调试工具中,Form Data 和 Request Payload 有什么区别?

前端和后端,都是通过XHRHttpRequest对象来进行数据传输,并通过setRequestHeader()来改变Content-Type。Request Payload如果希望看到 Request Payload,需要设置请求头部 Content-Type: application/json,再将数据经过 JSON.stringify 序列化后发送。后端接到 http 请求后,就是截取空行后的这个请求体解析,因为我们传了 Content-Type: application/json,所以后端知道请

2021-06-28 16:36:44 2516

原创 yarn安装依赖包,报错error Incorrect integrity when fetching from the cache

yarn安装依赖包,报错error Incorrect integrity when fetching from the cache执行:sudo yarn cache clean再 yarn install试试

2020-09-21 16:54:47 454

原创 document.execCommand(‘copy‘) 复制不成功 不同浏览器兼容问题

前几天遇到了一个js复制在不同浏览器下行为不同问题,花了几个小时看问题,最后发现竟然是js在ajax中执行剪切板操作会有问题。场景是这样的:复制的内容是可配置的,所以进行复制操作前需要进行请求。具体问题:复制操作在chrome浏览器和360浏览器上是正常的,在QQ浏览器和UC浏览器上复制不成功。实现复制主要代码:// for ieif (window.clipboardData) { window.clipboardData.clearData(); window.clipboardData.

2020-09-14 14:32:42 13642 4

原创 正则表达式(三)—— 正则的匹配原理

正则的匹配原理正则引擎的分类正则引擎主要可以分为三类:DFA、传统NFA(Traditional NFA)和POSIX NFA。用了这么久的正则,js属于哪一种呢?测试引擎的类型是否是传统型NFA首先看看忽略优先量词是否得到支持?如果是,基本就能确定就是NFA。忽略优先量词是DFA不支持的,在POSIX NFA中也没有意义。只需要用/nfa|nfa not/去匹配“nfa not”。如...

2019-10-12 19:05:37 480

原创 正则表达式(二)—— 入门示例拓展

入门示例拓展分组模式在正则中,我们使用“()”来进行分组,一对圆括号括起来的表达式就是一个分组。捕获组捕获组就是把正则表达式中子表达式匹配的内容,保存到内存中以数字编号或显式命名的组里,方便后面引用。当然,这种引用既可以是在正则表达式内部,也可以是在正则表达式外部。一般一个小括号括起来就是一个捕获组。捕获组可以进行嵌套。以深度优先进行编号,在js中编号从1开始。var reg = /...

2019-10-12 19:05:10 155

原创 正则表达式(一)—— 正则表达式入门

正则表达式入门完整的正则表达式由两种字符构成。特殊字符称为“元字符”,其他称为“文字”或者是普通文本字符。为了便于理解,我们可以把正则表达式想象为普通的语言,普通字符对应普通语言中的单词,而元字符对应语法。根据语言的规则,按照语法把单词组合起来,就会得到能传达思想的文本。特殊字符正则表达式记忆方式换行符\nnew line换页符\fform feed...

2019-10-12 19:04:15 370

原创 js实现复制图片到剪切板&下载图片

完整需求是这样的:生成一个二维码,然后提供复制和下载按钮。如果你是页面上已有一个图片,可以直接跳过前面的部分。生成二维码,可以用qrcode。http://cdn.staticfile.org/jquery.qrcode/1.0/jquery.qrcode.min.jsgithub地址:https://github.com/davidshimjs/qrcodejs$('#code').qr...

2019-08-12 17:44:37 7439 1

原创 jQuery的attr和prop区别

本文的开始,我们先看一个例子:<!DOCTYPE html><html><body> <input type="checkbox" />test <script src="http://libs.baidu.com/jquery/1.6.1/jquery.min.js"></script> &lt...

2019-06-10 19:09:23 200

原创 自调用匿名函数

开发中有时候需要我们自己封装api,这时候就会用到自调用匿名函数。那么自调用匿名函数是什么呢?(function(){ // code})()包围函数(function(){}) 的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回的未命名函数,括号内为匿名函数的参数。通过定义一个匿名函数,创建了一个“私有”的命名空间,该命名空间的变量和方法,不会破坏全局的命名空间。例如:...

2019-05-16 16:12:41 405

原创 vscode 折叠展开全部代码快捷键

折叠:Ctrl/Command + k + 0展开:Ctrl/Command + k + j

2019-05-15 16:53:38 17630

转载 从输入URL到页面加载的过程

先梳理下主干流程:从浏览器接收url到开启网络请求线程 开启网络线程到发出一个完整的http请求 从服务器接收到请求到对应后台接收到请求 后台和前台的http交互 缓存问题,http的缓存 浏览器接收到http数据包后的解析流程 CSS的可视化格式模型 JS引擎解析过程1. 从浏览器接收url到开启网络请求线程多进程的浏览器浏览器是多进程的,有一个主控进程,以及每一个t...

2019-03-12 16:42:09 277

原创 【JS】《你不知道的JavaScript》 之 强制类型转换

值类型转换将值从一种类型转换为另一种类型通常称为类型转换,这是显示的情况;隐式的情况称为强制类型转换。JS中的强制类型转换总是返回 标量基本类型值,如字符串、数字和布尔值,不会返回对象和函数。也可以这样区分:类型转换发生在静态类型语言的编译阶段,而强制类型转换则发生在动态类型语言的运行时(runtime)。var a = 42var b = a + '' // 隐式强制类型...

2018-12-14 16:34:39 241

原创 【JS】《你不知道的JavaScript》 之 类型

内置类型js中有七种内置类型:null undefined boolean number string object symbol我们可以用 typeof 运算符来查看值的类型,它返回的是类型的字符串值。下面我们看看几种特殊情况:(1)typeof 对 null 的处理有问题:typeof null === "object" //true这是js中的b...

2018-12-12 10:26:01 158

原创 vue2之v-for详解

了解vue的应该都知道v-for指令是用来遍历 数组、对象的,但是vue居然还能遍历整数!!!第一眼看到遍历v-for整数的代码我觉得是写错了。。。好吧,是我太菜了。接下来我们一起来看看。(1)遍历数组&lt;ul id="example-1"&gt; &lt;li v-for="(item, index) in items" :key="index"&gt; {{ item...

2018-12-10 15:18:53 7987

原创 【JS】《你不知道的JavaScript》 之 原型

js中的对象有一个特殊的[[Prototype]]内置属性,其实就是对于其他对象的引用。var anotherObj = {a:2}var myObject = Object.create(anotherObj)myObject.a // 2Object.create()会创建一个对象并把这个对象的[[Prototype]]关联到指定的对象。属性设置和屏蔽给一个对象设置属...

2018-11-20 10:39:02 223

原创 【JS】《你不知道的JavaScript》 之 对象

简单基本类型(string、boolean、number、null、undefined)本身并不是对象,但是typeof null时会返回字符串‘object’。但实际上,null本身是基本类型。原理是这样的。不同的对象在底层都表示二进制,在js中二进制前三位都为0的话会被判断为object,null的二进制表示全部为0,自然前三位也是0。所以执行typeof时会返回‘object’。数组...

2018-11-19 16:02:58 179

原创 【JS】《JavaScript设计模式》 之 JS继承

以前在准备面试的时候经常会看到面试题里有js实现继承的相关题,总觉得很少用的到,也没有太理解为什么要那么写,只是硬记下来了。最近在看《JavaScript设计模式》,里面有一节很详细的讲到了js继承,后面的模式里也经常用到,在这里记录下。1.子类的原型对象——类式继承// 声明父类function SuperClass() { this.superValue = true}...

2018-11-12 14:36:22 515

原创 addEventListener多次触发,removeEventListener不生效问题

这两天写了个小功能封装成api供别人使用,在开发中遇到了些问题,记录下。项目情况是有地方触发多次执行这部分代码,所以我想在每次add前先remove掉。用addEventListener绑定事件,但是addEventListener可以给同一元素多次绑定同一事件,导致多次触发。然后就想到用removeEventListener来移除之前绑定的事件。但是,一切都没有那么顺利...第一...

2018-10-26 09:42:34 11516 4

原创 【CSS】flex布局实际运用及理解

最近项目中经常这种布局,如下图所示:1高度固定,2高度不确定,根据内容变化,3撑满可视区剩下高度。这里我们可以用flex布局。先给父元素加上:display: flex;flex-direction: column;高度撑满的3元素加上:flex: 1; /* auto也可以 */完整布局代码如下:&lt;!DOCTYPE html&gt;&lt;h...

2018-09-29 13:32:34 470

原创 localStorage、sessionStorage、cookie的区别、用法及使用场景

参考文章:https://segmentfault.com/a/1190000004556040                  https://segmentfault.com/a/1190000012057010#articleHeader0webStorage是本地存储,存储在客户端,包括localStorage和sessionStorage。localStoragelo...

2018-09-21 11:20:05 1099

原创 【数字逻辑】理解位运算符

&lt;&lt;、&gt;&gt;、&gt;&gt;&gt;是三种位运算符:&lt;&lt;    左移运算符,num &lt;&lt; n,相当于num乘以2的n次幂&gt;&gt;    右移运算符,num &gt;&gt; n,相当于num除以2的n次幂&gt;&gt;&gt;  无符号右移,忽略符号位,空位都以0补齐(只对32位和64位有意义)

2018-09-12 10:13:28 818

原创 【JS】根据数组对象的属性值把 一维数组转为二维数组

以下例子是根据time属性把一维数组转为二维数组。先定义一个数组:const array = [ { id: 123, time: '2018-7', name: 'aaa' }, { id: 123, time: '2018-8', name: 'aaa' }...

2018-09-12 10:08:20 3305 1

原创 【Vue2.0】 mint-ui解决移动端picker和datetime picker穿透滚动问题

在使用mint-ui的弹窗时,滚动弹窗内部分区域,会导致页面滚动。我测试的时候是安卓和ios使用picker时都有这个问题;使用datetime picker时只有ios会出现这个问题。我看了下源码,发现datetime picker的弹窗是引用的picker的组件,emmmm...,有点奇怪同一个组件在安卓上显示还不一样。那我们先来看下解决办法吧,解决办法主要参考这里:思路很简单...

2018-09-10 15:30:11 9991 10

原创 【CSS】css3 background属性 图片不同展示方式

开发中经常会有上传图片的需求,关于图片的展示也有很多种,接下来我们来看看不同展示方式的实现(以一张长图和一张宽图作对比):1、最简单粗暴的方法,直接使用img标签,给宽或高,图片比例不会变:width: 200px; //或给定height2、使用img标签,给定宽和高,图片比例会变:width: 200px;height: 200px;3、使用css bac...

2018-09-06 15:43:25 1225

原创 XMLHttpRequest对象

1. XHR的用法在使用XHR对象时,要调用的第一个方法是open(),它接受3个参数:要发送的请求的类型(“get”、“post”等)、请求的URL和表示是否异步发送请求的布尔值。xhr.open("get", "example.php", false)调用open()方法并不会真正发送请求,而只是启动一个请求以备发送。要发送特定的请求,必须像下面这样调用send()方法:...

2018-09-03 16:08:00 202

原创 【JS】正则表达式 匹配索引导致匹配失败问题

先看下面这个例子:var re = /cat/gfor (var i = 0; i &lt; 10; i++) { console.log(re.test('catfgfdjkgh'))} 我们会发现得到的结果是true false true false……,可能和我们预想的不一样。这是因为第一次调用test()找到了‘cat’,但第二次调用是从索引为3的字符(上一次匹配的...

2018-08-16 15:57:10 1093 1

原创 【JS】js 垃圾回收机制

JS执行环境会负责管理代码执行环境中使用的内存。垃圾回收机制de的原理其实很简单:找出那些不再继续使用的变量,然后释放其占用的内存。垃圾回收器会按照固定的时间间隔,周期性的执行这一操作。垃圾收集器对不再有用的变量打上标记,以备将来收回其占用的内存。浏览器中的实现,通常有两个策略:1、标记清除当变量进入环境时,就将这个变量标记为“进入环境”。当变量离开环境时,则标记为“离开环境”。垃...

2018-08-16 14:00:40 269

原创 【JS】 JS作用域

JS没有块级作用域,理解起来可能有点困难。先看下面这个例子:if (true) { var color = 'blue'}console.log(color) //'blue'这里是在一个if语句中定义了变量color,如果是在C、C++或Java中,color会在if语句执行完毕后被销毁。但在JS中,if语句中的变量声明会将变量添加到当前的执行环境(这里是全局变量)中。...

2018-08-16 13:58:18 290

转载 【JS】深拷贝与浅拷贝,实现深拷贝的几种方法

本文部分内容来自https://www.cnblogs.com/echolun/p/7889848.html昨天学习ES6的Object.assign()的时候,发现Object.assign进行的拷贝是浅拷贝,及只有第一层是深拷贝。若拷贝的属性的值是对象的复合属性,就只是拷贝过来一个引用。const obj1 = {'a': {'b': 1}}const obj2 = Object....

2018-08-07 14:37:10 6190 1

原创 【JS】new一个对象发生了什么

 1、创建一个新对象var obj = {}2、让构造函数classA的this指向obj,并执行构造函数中的代码(为新对象添加属性)classA.call(obj)3、设置新对象的_proto_属性指向构造函数classA的prototype对象obj._proto_ = classA.prototype4、返回该对象(对于一个构造函数即使它最后没有return...

2018-08-07 10:26:26 1422

原创 前端 移动端 ios 兼容问题(持续更新)

1、ios 删除inout内容时页面变白问题-moz-transform: translateZ(0);-ms-transform: translateZ(0);-o-transform: translateZ(0);transform: translateZ(0);2、ios js中时间不兼容YYYY-MM-DD这种格式的时间,只支持YYYY/MM/DD这种格式// ...

2018-07-30 19:00:10 3492

转载 Vue2.0 之 Vue.set 向响应式对象中添加一个响应式属性

Vue不能检测到对象属性的添加或删除。由于Vue会在初始化实例时对属性执行getter/setter转化过程,所以属性必须在data对象上存在才能让Vue转换它,这样才能是响应式的。例如:data () { return { form: { total: 10 } }}// this.form.total是响应式的...

2018-07-23 09:57:12 4616

原创 【JS时间操作】 js获取n天之后的日期、n月之后的日期、某月最后一天的日期、某周周一和周日的日期

首先写一个函数将日期转成你想要的格式function timeToStr (date) { const Y = date.getFullYear() + '-' const M = (date.getMonth() + 1 &lt; 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-' const D = (date...

2018-07-10 10:28:41 1236

原创 【ES6】ES6之Promise

关于Promise含义的文章太多了,这里就不说了,指路阮一峰ES6之promise这里就举几个Promise的例子首先需要new一个Promise实例const testPromise = new Promise((resolve, reject) =&gt; {    if (/* 异步请求成功 */){        resolve(data)    } else {        r...

2018-06-22 17:32:19 249

原创 Vue 添加全局变量

项目中经常会有这样的需求:刚进入页面时获取用户权限,然后控制其他页面某些元素的显示(比如管理员权限会显示管理的tab。普通用户则不显示)。这个获取的权限可能会在很多页面中用到,如果存成全局的就比较方便了。试过几种方法:    1、请求成功后存在Vue.prototype.XXX    2、请求成功后存在localstorage中但是以上两种方法不能实现,因为请求是异步的,页面初始化用到这个值时请求...

2018-05-21 09:45:16 2862

原创 移动端调试 chrome://inspect/#devices 钉钉开发Android调试微应用

刚接触移动端,今天花了快一下午的时间来弄钉钉微应用调试(╥╯^╰╥),不得不说移动端调试起来好麻烦呀。钉钉开发者文档中写的Android开发版调试十分简洁,就短短几个步骤,对新手来说真是一头雾水。1、安装genymotion先去genymotion官网注册账号:http://www.genymotion.net/下载地址:https://www.genymotion.com/dow...

2018-05-11 20:10:06 10858 12

原创 webpack+vue2配合express开发 模拟接口数据

在前端开发中往往会有前端需要调后台接口获取数据而后台接口未开发完成的情况,这个时候模拟ajax获取数据就很重要了。首先,我们使用vue-cli,用vue手脚架生成前端项目npm install -g vue-clivue init webpack projectname看下生成的工程目录结构:然后执行以下命令安装npm install axios --savenpm install...

2018-05-09 18:18:40 1366

空空如也

空空如也

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

TA关注的人

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