自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

所有热爱的东西都要不余遗力

全世界都在往前走,你却没有动。

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

转载 JS & | ^ ~ (逻辑位运算符)

位运算就是对二进制数执行计算,是整数的逐位运算。例如,1+1=2,在十进制计算中是正确的,但是在二进制计算中,1+1=10;对于二进制数 100 取反,等于 001,而不是 -100。位运算符有 7 个,分为两类:逻辑位运算符:位与(&)、位或(|)、位异或(^)、非位(~)移位运算符:左移(<<)、右移(>>)、无符号右移(>>>)逻辑位运算符与逻辑运算符的运算方式是相同的,但是针对的对象不同。逻辑位运算符针对的是二

2021-09-11 15:20:20 351

转载 js sort排序

为什么sort()对数组中数字排序时,采用sort(function(a, b) { return a-b; })代码即可实现对数组的降序排列?sort()方法对于数组排序,在其中参数使用了比较函数compareFunction,那么会根据compareFunction的返回值进行排序。具体规定如下:如果指明了 compareFunction ,那么数组会按照调用该函数的返回值排序。即 a 和 b 是两个将要被比较的元素:如果 compareFunction(a

2021-04-27 19:03:12 207

原创 js时间大小比较

在js中,将一个字符转化成Date型也不是什么难事:var str = '2013-08-30'; // 日期字符串str = str.replace(/-/g,'/'); // 将-替换成/,因为下面这个构造函数只支持/分隔的日期字符串var date = new Date(str); // 构造一个日期型数据,值为传入的字符串在上面,new Date(str)构造了一个日期,参数str至少要提供年月日三部分,也就是形如“2013/03/08”的字符串,不能是"2013/03",否则将得到一个N

2021-04-16 15:42:31 311

原创 面试题

手写reduce

2021-04-11 01:02:18 80

原创 js 数组常用方法

for in(array, obj)最基本的数组遍历let arr = [1,2,3,4,5,6] for(let i in arr){ console.log(arr[i]) console.log(typeof(i)) }打印结果:注意,这里的i类型为string!for of(array)let arr = [1,2,3,4,5,6] for(let i of arr){ console.log(i)

2021-04-11 00:57:40 170 1

转载 Vs code快捷键及常用插件

前言本文的最新内容,更新于 2020-06-19。大家完全不用担心这篇文章会过时,因为随着 VS Code 的版本更新和插件更新,本文也会随之更新。本文的最新内容,也会在GitHub上同步更新,欢迎 star。VS Code 软件实在是太酷、太好用了,越来越多的新生代互联网青年正在使用它。前端男神尤雨溪大大这样评价 VS Code:有一点你可能会感到惊讶:VS Code 这款软件本身,是用 JavaScript 语言编写的(具体请自行查阅基于 JS 的客户端开发框架 Electron).

2021-04-10 23:45:53 1850

原创 前端点击复制功能实现

function copy() { var e = document.getElementById("target"); e.select(); // 选择对象 document.execCommand("Copy"); // 执行浏览器复制命令 alert("内容复制成功!"); }

2021-04-07 22:41:50 393

转载 ES6 proxy

一、proxy概述Proxy的兼容性proxy在目标对象的外层搭建了一层拦截,外界对目标对象的某些操作,必须通过这层拦截var proxy = new Proxy(target, handler);new Proxy()表示生成一个Proxy实例,target参数表示所要拦截的目标对象,handler参数也是一个对象,用来定制拦截行为var target = { name: 'poetries' }; var logHandler = { get: function(targe

2021-03-19 17:00:53 716

原创 js startsWith方法

startswith方法,用来判断字符串是否以固定数据开头。'abc'.startswith('a') //true'abc'.startswith('d') //false

2021-03-19 16:13:39 8834 2

转载 JS最新基本数据类型:BigInt

型,如浮点型、双精度型、整数型和双精度型,但JS却不是这样。在JS中,按照IEEE 754-2008标准的定义,所有数字都以双精度64位浮点格式表示。在此标准下,无法精确表示的非常大的整数将自动四舍五入。确切地说,JS 中的Number类型只能安全地表示-9007199254740991 (-(2^53-1)) 和9007199254740991(2^53-1)之间的整数,任何超出此范围的整数值都可能失去精度。console.log(9999999999999999); // → 10000000

2021-01-25 18:46:46 415

转载 for in 遍历数组 inedx为string

for (var index in myArray) { // 千万别这样做 console.log(myArray[index]);}   在这段代码中,赋给index的值不是实际的数字,而是字符串“0”、“1”、“2”,此时很可能在无意之间进行字符串算数计算,例如:“2” + 1 == “21”,这给编码过程带来极大的不便。作用于数组的for-in循环体除了遍历数组元素外,还会...

2021-01-06 09:17:20 372

转载 call()、apply()、bind() 的用法

其实是一个很简单的东西,认真看十分钟就从一脸懵B 到完全 理解!先看明白下面:例 1obj.objAge; // 17obj.myFun() // 小张年龄 undefined例 2shows() // 盲僧 比较一下这两者 this 的差别,第一个打印里面的 this 指向 obj,第二个全局声明的 shows() 函数 this 是 window ;1,call()、apply()、bind() 都是用来重定义 this 这个对象的!如:ob

2020-12-25 09:56:57 86

转载 ivew render函数

1.render函数是做什么的?render函数和template一样,是用来创建html模板的, 一些特殊场景用template创建模板代码会冗长,此时用render函数写就会简单很多。例:Vue官网案例:https://cn.vuejs.org/v2/guide/render-function.html2.render函数具体怎么用?返回值: render函数返回值是一个虚拟节点Vnode,也就是我们要渲染的节点参数:render函数的参数是createElement,createElemen

2020-12-21 16:31:04 169

转载 js事件循环

进程、线程进程是系统分配的独立资源,是 CPU 资源分配的基本单位,进程是由一个或者多个线程组成的。线程是进程的执行流,是CPU调度和分派的基本单位,同个进程之中的多个线程之间是共享该进程的资源的。浏览器内核浏览器是多进程的,浏览器每一个 tab 标签都代表一个独立的进程(也不一定,因为多个空白 tab 标签会合并成一个进程),浏览器内核(浏览器渲染进程)属于浏览器多进程中的一种。浏览器内核有多种线程在工作。GUI 渲染线程:负责渲染页面,解析 HTML,CSS 构成 DOM 树等,当页面重绘

2020-12-18 18:55:34 102 1

原创 git 单个文件版本回退

假设文件名为 a.vuecd 到该文件目录git log a.vue           查看 a.vue 的提交记录git reset ****** a.vue        退回某个版本git commit -m ‘提交信息’git checkout a.vue  &

2020-12-18 16:38:38 166 1

转载 js判断两个数组是否相同

1、 将两个数组转成字符串比较,但是发现他们只是顺序不相等也被当做不相等[1,2,3].toString()== [3,2,1].toString() ----false2、我们可以先把数组排序按照从小到大的顺序sort()函数[1,2,3].sort().toString()== [3,2,1].sort().toString() —true 这样的就是"1,2,3"=="1,2,3"结果是相等的3、如果数组里的元素是标量,非object类型,可以使用==比较数组里的元素:scalarArray

2020-10-29 17:29:33 1903

原创 Vue 数据多空格显示单空格

只需设置white-space:pre即可

2020-10-21 15:49:06 831

转载 汉诺塔的递归算法与解析

从左到右 A B C 柱 大盘子在下, 小盘子在上, 借助B柱将所有盘子从A柱移动到C柱, 期间只有一个原则: 大盘子只能在小盘子的下面.如果有3个盘子, 大中小号, 越小的越在上面, 从上面给盘子按顺序编号 1(小),2(中),3(大), 后面的原理解析引用这里的编号.小时候玩过这个游戏, 基本上玩到第7个,第8个就很没有耐心玩了,并且操作的动作都几乎相同觉得无聊. 后来学习编程, 认识到递归, 用递归解决汉诺塔的算法也是我除了简单的排序算法后学习到的第一种算法.至于 递归,简单来说就是方法内

2020-10-19 17:17:52 5272 2

原创 前端如何用div画三角形

div+css画三角形代码原理采用的是均分原理;在矩形的直角,两条边的样式要均分,把 div 的宽 高设为零,四条边 top right bottom left 设置一个宽度,把需要显示的一边设置有色,其他的设置透明,就这样一个三角形就出来了代码如下:<div class="box"></div><style>.box{  width: 0;...

2020-02-14 17:10:41 779

原创 阻止浏览器双击选中

今天产品给提了个bug,双击保存图片变蓝了,问过之后才知道是浏览器双击选择mac上还好,是透明的,window直接全蓝。而且这个选中事件还会保留在元素上,下次显示还是选中状态。在网上找了个方法:body { -moz-user-select: none; /*火狐*/ -webkit-user-select: none; /*webkit浏览器*/ -ms-us...

2020-01-15 13:41:58 399

原创 js dom截图工具html2canvas

最近做项目遇到了一个需求,要根据业务需求实时生成图片。点击保存要把图片保存用做展示,图是多个图层,像ps一样。用到了html2canvas html2canvas蛮好用的 就是图片会有跨域问题 需要后端转一下格式传回来dataURL就是生成的link 直接替用src这个是项目里用到的,点击直接下载实际上是一个promise,resolve的时候会有延迟,有时候几秒钟...

2020-01-13 10:57:49 715

原创 typescript 初学(不定时更新)

引用官网的定义:TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. Any browser. Any host. Any OS. Open source.翻译成中文即是:TypeScript 是 JavaScript 的类型的超集,它可以编译成纯 JavaScript。编译出来的 Ja...

2020-01-02 19:06:29 174

原创 去除input type为number的数字增减框

/* 谷歌 */ input::-webkit-outer-spin-button, input::-webkit-inner-spin-button { -webkit-appearance: none; appearance: none; margin: 0;}/* 火狐 */ input{ -moz-appearance:textfield;}...

2019-12-27 17:44:32 832

转载 vue获取父元素兄弟元素属性

<button @click = “clickfun($event)”>点击methods: {clickfun(e) {e.target 是你当前点击的元素e.currentTarget 是你绑定事件的元素#获得点击元素的前一个元素e.currentTarget.previousElementSibling.innerHTML#获得点击元素的第一个子元素e.curre...

2019-12-25 15:31:06 1691

原创 js复制

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

2019-12-23 17:26:23 64

转载 Vue路由懒加载

一、为什么要使用路由懒加载  为给客户更好的客户体验,首屏组件加载速度更快一些,解决白屏问题。二、定义  懒加载简单来说就是延迟加载或按需加载,即在需要的时候的时候进行加载。三、使用  常用的懒加载方式有两种:即使用vue异步组件 和 ES中的import1、未用懒加载,vue中路由代码如下import Vue from 'vue' import Router from ...

2019-12-23 17:25:34 126

转载 document.execCommand

最近有看到js实现复制粘贴的效果<body> <input type="text" id="target"> <button onclick="copy()">copy</button></body></html><script> function copy() { ...

2019-12-17 17:41:30 772

原创 实现话题退格全删除

今天在实现需求时遇到一个问题话题要实现退格全部删除,不能删一半,否则会出错。最后发现了一个属性 contenteditable可以在标签中添加“contenteditable=”false”,这个属性决定标签内的内容是否可编辑。默认为true,改为false即可实现。ps: 因为我们项目中用的是富文本,所以是带标签的。...

2019-11-29 13:20:32 388

原创 js click事件无故触发多次

今天在项目中遇到一个问题,button click事件莫名触发多次;后边发现是js引入了多次,因为项目是使用后台路由,路由跳转时所有的资源异步加载,但是不会清除之前的,所以跳转一次引入一次。...

2019-11-28 15:44:28 398 1

原创 解决安卓端拿不到软键盘真实keycode值,全为229。

最近在写移动端项目的时候,要实现输入@弹出浮层的效果,但是安卓端拿不到@键的ascii码值,原因好像是输入法阻止了,除了常用功能键,所有keycode都是229。百度了一下,大家都说用把keydown换成keyup解决了此问题,我试了下没有成功,这个好像是解决中文输入法下的bug,最后google了一下,换了个方法解决了。代码如下:editor.addEvent(iframe.contentW...

2019-11-27 13:51:41 2561 1

原创 IOS调用软键盘搜索

input type选为search IOS无效需要在input外嵌套form标签,设置action。<form action="" class="ng-pristine ng-valid"> <input type="search" class="searchKeyText" placeholder="输入搜索关键字"> &lt...

2019-11-18 21:40:33 280

转载 element-ui饿了么框架中导航菜单中箭头方向问题

这是饿了么默认导航样式(下、上)然而大部分使用场景、用户习惯是下边这种箭头方向(右、下)element组件中没办法更改icon的值采用覆盖element组件的css样式,或者直接更改依赖模块中的源码源码:/*菜单打开*/.el-submenu.is-opened>.el-submenu_...

2019-11-04 14:34:43 2005

原创 IE8 请求静态资源报错

需要引入一个js文件https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest

2019-10-31 16:04:08 173

转载 vue-router promise问题

点击没问题 如果在这个点击页面 在点击一次router-link 就会报这个错 但是不影响功能去你引用vue-router的页面添加一段代码const originalPush = Router.prototype.pushRouter.prototype.push = function push(location) {return originalPush.call(this, loca...

2019-10-28 14:58:36 1029

转载 轻量级富文本编辑器wangEditor

前端使用富文本编辑器的插件有很多,今天献上wangeditor的使用教程,教你如何在vue中使用富文本编辑器先敬上官网:http://www.wangeditor.com/index.htmlwangeditor是一个萌新富文本编辑器,基于js和css,重点在于它轻量,如果你需要的功能不是很复杂,那么选它没错了,刚好能满足你!第一步:先保证你的电脑中安装有node,当然使用cdn也可以,下载...

2019-10-12 14:26:02 389

原创 如何发布自己的npm包

1.首先前往npm官网注册一个账号https://www.npmjs.com/2.在本地创建一个项目文件夹(项目名称随意,不能和npm已有包重复)3.通过终端进入文件夹 cd demo创建一个包信息管理文件package.jsonnpm init填写相关信息,直接回车也可4.创建一个index.js文件,随便敲几行代码5.发布包使用终端命令行如果是第一次发布包,执行以下命...

2019-09-26 14:40:54 87

空空如也

空空如也

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

TA关注的人

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