自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

摇摆小仙的博客

昨日不同今日,今日不负明日

  • 博客(35)
  • 资源 (1)
  • 收藏
  • 关注

原创 关于 npm publish问题

最近打包上传到npm的时候遇到一些问题, 整的脑壳疼, 这里记录一下, 以备查阅, 如果对你有用, 记得点赞请首先确保注册了 npm 的账号如果官网打不开, 那么可能是你打开的方式不对, 需要科学上网npm publish 404执行 npm adduser, 输入姓名/密码/邮箱提示你登录成功以后再执行 npm publishnpm publish 403邮箱需要验证, 请进入npm官网,点它!!! 进去验证, 然后再试试发布npm publish 401 npm config s

2021-03-24 17:14:29 1440

原创 JS事件循环机制

前置知识js是因为操作DOM的原因必须是单线程的,Promise即便没有任何操作, 他的回调也是异步的废话不说先上题吧async function async1() { console.log('async1 start') await async2() console.log('async1 end')}async function async2() { console.log('async2 start') await async3() console.log('

2021-03-15 10:51:40 1862 1

原创 移动端实现点击按钮复制文本功能

最近处理了一个点击复制按钮,复制文本的功能, 百度了一通,有用clipboard这个插件的, 有用css的, 有用dom的select方法的. 这里我选择了dom的select方法.参考链接: 前端vue.js实现点击复制功能(完美解决移动端可用)介绍一下, select() 方法用于选取文本域中的内容, 我的理解就是用于input的type为text的情况, 或者说是textarea.因为我的需求是展示一个优惠码, 如果用Input来做展示的话, input的宽度是固定的,没法随着内容来自适应宽度.

2020-07-11 11:47:22 2474 2

原创 Nodejs 套接字报错处理 Error: read ECONNRESET

错误信息出现上述情况一般是客户端非法中断,或者调用close(fd)后服务器调用recv或者read,会返回ECONNRESET,这个错误告诉你对端(客户端)已经关闭了或者进行重启.解决方法参考链接:Nodejs 套接字报错处理 Error: read ECONNRESET...

2020-06-10 18:56:55 55818 1

原创 Nuxt.js采坑

1. operation not permitted参考链接:EPERM: operation not permitted’ error when building Nuxt app百度了一波,首先是关于这个问题的文章比较少,都试了一遍, 用管理者权限运行win+x也不行, 最后是关掉了vscode, 关掉了控制台, 重新打开,项目就可以起起来了, 如果你试了还是不行, 可以尝试上面链接中的其他2. 请求的数据图片403参考链接: 访问图片出现403的解决办法请求回来的数据, 图片在浏览器端报40

2020-06-03 09:26:16 1337

原创 base64与16进制的转换

主要是为了解决base64中的特殊字符在url中携带时可能会出现的各种解析错误问题

2020-04-27 18:04:25 13955 2

原创 这才是真正的 git

1. Git是怎么存储信息的前置知识: 相关Linux命令介绍echo : 输出文本echo 'text' > filename : 将字符串输出重定向,当前目录没有对应文件,则创建,并将字符串输出到文件中tree : 主要功能是创建文件列表,将所有文件以树的形式列出来cat filename: 一次性显示整个文件$ git init$ echo '111' > a....

2019-11-25 01:34:31 155

原创 new Date() 在微信分享中的坑

最近在项目中有一个抽奖的模块,由于需要设置抽奖开始时间,在模块首页就使用了计时器,也很简单,就是拿当前时间跟游戏开始时间作比较 // 活动倒计时 timeId = setInterval(() => { let startTime = new Date('2019-12-01 00:00:00') let currentTime = new Date(...

2019-11-24 11:36:29 171

原创 webpack优化

1. production 模式 打包自带优化tree shakingtree shaking 是一个术语, 通常用语打包时移出 JavaScript 中的未引用的代码(dead-code), 它依赖于 ES6 模块系统中 import 和 export的静态结构特性.开发时引入一个模块后, 如果只使用其中一个功能, 上线打包时只会把用到的功能打包进 bundle, 其他没用到的功能都不...

2019-11-17 10:49:40 440

原创 git log 与 git reflog的区别

$ git logcommit 1094adb7b9b3807259d8cb349e7df1d4d6477073 (HEAD -> master)Author: Michael Liao <askxuefeng@gmail.com>Date: Fri May 18 21:06:15 2018 +0800 append GPLcommit e475afc93...

2019-11-04 10:36:56 403

原创 webpack高级

1. HTML中img标签的图片资源处理读取html中所有img的路径,帮我们把路径作统一的进行转换,处理并且把对应的资源打包把html中所有的img对应的路径打包安装npm intall -S html-withimg-loader在webpack.config.js文件中添加loader { test: /\.(htm|html)$/i, loader: 'html-wi...

2019-10-25 22:01:02 188

原创 btoa 和 atob 的用法

btoa ( binary to ascii ) 和 atob ( ascii to binary ) 是 window的两个对象, 用于将字符串转为 base64 编码以及将 base64 编码解密为 字符串 // Define the string var string = 'hello world!' // Encode the string var encodeString =...

2019-10-25 17:49:09 4212

原创 关于a标签的rel=nooppener

刚刚看到了一个前端方面的问题html的a标签属性rel="noopener"有什么作用?a标签用了这么久也没见过这个玩意儿, 真是惭愧, 所以特意研究了一下,写在这里作为笔记吧.首先, rel=noopener 和 rel= noreferrer 这两个属性是为了解决安全性问题当你使用 target=_blank 打开一个新的标签页时, 新页面的 window 对象上有一个属性 ope...

2019-10-25 15:16:16 893

原创 webpack基础

1. webpack安装注意: 请先自行安装nodejs最新版的环境全局安装webpacknpm i webpack webpack-cli -g项目中安装 webpack(推荐)npm i webpack webpack-cli -D2. webpack的使用2.1. webpack-clinpm 5.2 以上的版本中提供了一个npx命令npx 想要解决的主要问题, 就是调...

2019-10-19 22:52:33 166

原创 axios中get参数的序列化

我们在项目中使用axios的时候,可能会对其进行一层封装,以处理后台接口还没有出来的时候,我们可能需要通过mock.js来模拟后台接口的情况. 但是在这种情况下,get请求的参数可能就不太好处理.我们可以通过判断axios中请求方式是不是get来对携带的参数进行对应的处理.这个需要在请求拦截器中判断 // get 参数序列化 export default function serialize...

2019-08-25 09:50:48 2556

原创 给对象部署Iterator接口

Iterator ( 遍历器 ) 的概念JavaScript原有的表示"集合"的数据结构, 主要有数组 ( Array ) 和对象 ( Object ), ES6又天津爱了Map和Set. 这样就有了四种数据集合,用户还可以组合使用它们,定义自己的数据结构,比如数组的成员是Map, Map的成员是对象.这样就需要一种统一的接口机制,来处理所有不同的数据结构.遍历器 ( Iterator ) ...

2019-08-25 09:32:53 1124

原创 js 实现数字千位分隔符和小数点

moneyFormat(moneyStr) { // 先将数值取两位小数 let str = (Math.round(moneyStr * 100) / 100).toString() // 找到小数点的下标 let pointIdx = str.indexOf('.') // 如果没有小数点 if (pointIdx...

2019-08-23 14:58:45 2366 1

原创 前端面试题之完成Session对象,使其符合要求

题目:完成Session对象,使其符合要求,可适当为Session添加属性 var Session = { data:{}, init:function(){ // data由两个ajax请求返回的数据组成,必须两个都拿到数据之后才能执行 var _this=this;...

2019-08-18 17:08:25 184

原创 面试题看JS执行机制

题目一: var x = 10 function fn() { console.log(x) } function show(f) { var x = 20 f() } show(fn) //10这个题如果一定要解释的话可能...

2019-08-15 22:11:17 867

原创 关于js的防抖和节流

啥是防抖啥是节流??在JS中有时候我们会不经意的去频繁地触发一些事件,比如说onmouseover和onscroll,我明明只想触发一次,但是他好像被触发了n次,想想看,如果我们在这些事件中有发送请求去操纵数据库,那对于后台来说是多么可怕的消耗啊.而所谓防抖和节流就是用来解决这个问题的防抖事件只有在n秒内不被触发才会再次执行它会有一个执行的时间,规定时间内如果你再次去触发了,那么会重新开...

2019-08-09 10:15:17 172

原创 vue2.0+响应式原理

当你把一个普通的 JavaScript 对象传入 Vue 实例作为 data 选项,Vue 将遍历此对象所有的属性,并使用 Object.defineProperty 把这些属性全部转为 getter/setter。Object.defineProperty 是 ES5 中一个无法 shim 的特性,这也就是 Vue 不支持 IE8 以及更低版本浏览器的原因。 <script&g...

2019-07-17 15:34:56 211

原创 vue 中 watch 与导航守卫

我们在监听路由变化的时候一般会选择使用watch, 但是,如果我们希望通过监听路由的变化来控制一些页面的访问权限,watch就不那么好用了.为什么这么说呢?假设我希望控制用户访问index主页的权限,当我监听到路由是去到index的,就要判断用户是否有权限,.如果用户从index跳到index的话,此时watch就失效了,无法监听,因为他不认为路由发生了变化此时我们可以使用导航守卫来实现这...

2019-07-15 16:15:25 335

原创 函数参数的默认值--从变量对象和活动对象的角度解释

最近在看 ES6 函数形参默认值语法的时候发现一段代码: function bar(x = y, y = 2) { return [x, y]; } bar(); // 报错上面代码中,调用bar函数之所以报错,是因为参数x默认值等于另一个参数y,而此时y还没有声明,属于”死区“。如果y的默认值是x,就不会报错,因为此时x已经声明了。我当时特别不能理解, 我觉得这段函数...

2019-06-29 18:28:34 375

原创 js交换两个变量的值

1. 借用第三方变量 let num1 = 10 let num2 = 20 let temp = num1 num1 = num2 num2 = temp console.log(num1,num2) // 20, 102.算数运算法(名字自己取的) let num1 = 10 let n...

2019-06-26 10:47:13 1372 2

原创 for 循环中 i 的按顺序输出

for(var i = 0; i < 5; i++){ setTimeout(function() { console.log(i) },50) } console.log('哦吼~') // '哦吼~' //5 //5 //5 //5 //5 为...

2019-06-19 19:59:12 3278

原创 关于 if 语句内的 function 声明提升

最近在看ES6 的书的时候发现了这样一段代码, 将的是块级作用域的问题function f() { console.log('I am outside!'); }(function () { if(false) { // 重复声明一次函数f function f() { console.log('I am inside!'); } } f();}());上面...

2019-06-18 20:25:01 2297

原创 display: none, visibility: hidden 和 opacity: 0的比较

1.关于是否脱离文档流display: none会使元素脱离文档流,不占据原来的空间,会引起页面的重排visibility: hidden和opacity: 0 虽然会使元素不可见,但是元素仍然占据原来的位置,不会脱离文档流2.关于继承display: none,虽然被隐藏的子元素也会一起隐藏,但是子元素并不继承display: none,子元素仍然具有本身的display属性,但...

2019-06-14 12:33:18 1179

原创 JS中实现继承小结

继承是面向对象语言的一个特征,js作为一门基于对象的语言,可以通过原型链来模拟继承.主要是通过构造函数来模拟类的概念,父级的构造函数拥有共有的属性和方法,子级的构造函数有特有的属性和方法,并通过继承来获取父级的属性和方法.// 先定义一个父类function Animal(name,sex) { // 实例属性 this.name = name; this.sex = sex; //...

2019-06-09 23:04:10 258

原创 数组去重

var arr = ['M4', 'UMP9', 'AK47', 'AK47', 'M762', 'AWM', 'AK47', 'Scar'];方法一: 开关思想 //新建一个数组用来存放去重后的元素 var newArr = []; // 创建一个用来帮助判断的变量 var flag; // 遍历数组 for (var i = 0; i < arr.length; i...

2019-06-07 19:48:48 106

原创 js实现全屏滚动 --基于fullPage插件的研究

最近做个一个小项目首页是全屏滚动的,当时我们选择了fullPage.js的插件,当时觉得就是一个纵向的轮播图而已,实现起来应该是比较简单的,抽时间研究了一下,这里总结一下遇到的问题和收获.Html代码(参考fullPage写的)<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-...

2019-06-07 09:26:43 307

原创 闭包与变量

JS高程中关于闭包与变量这一节,讲到一个案例,我当时看的一脸懵逼,然后就自习的研究了一下,先上代码: function createFunctions(){ var result = new Array(); for (var i=0; i < 10; i++){ result[i] = function(){ return i; }; ...

2019-05-24 23:10:33 382 1

原创 JS祝福墙小案例

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equ...

2019-05-18 00:22:12 1106 1

原创 js之水果选择小案例

案例中有四个按钮,第一个将左边的下拉框内容全部移动到右边,第二个将右边的下拉框内容全部移动到左边,第三个将左边选中的移动到右边第四个将右边选中的移动到左边<script> var left = my$('selLeft'); var right = my$('selRight'); // 全部移动到右边的点击事件 my$('btn1').o...

2019-05-17 22:49:04 1440

原创 CSS3线性渐变百分比的秘密

今天刚好在复习渐变这一块,看到background: linear-gradient(red 10%, green 85%, blue 90%);的时候,我是懵逼的,就在想这百分比是咋回事?怎么这个blue90%的占比还就显示了这么一点点.后来我就研究了一下,如下:如果我将渐变这样设置:background: linear-gradient(red 0%, green 50%, blu...

2019-05-02 18:45:45 4550

原创 关于"ECMAScript中所有函数的参数都是按值传递的"

JS高级程序设计—> 4.1.3中提到:“ECMAScript中所有函数的参数都是按值传递的”为了证明这个论点,举了一个例子:function setName(obj) { obj.name = "Nicholas"; obj = new Object(); obj.name = "Greg"; } var person = new Object(); setNam...

2019-04-30 09:46:40 349 1

Ajax.xmind

个人关于 ajax 的知识点总结,方便自己查看, 有什么错误或者不足欢迎指正

2019-06-29

空空如也

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

TA关注的人

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