自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 js遍历对象

一、遍历普通对象可枚举属性的方法(分本身属性/本身+继承属性)生成一个继承的普通对象(非构造函数),即对象 a2 继承对象 a1。/*遍历对象所有可枚举属性的方法*/ let a1 = { name: 'haha', age: 18, } let a2 = { like: '打球', form: '广州' } /*Object.setPrototypeOf() 方法设置一个指定的对象的原型 ( 即, 内部[[Prototyp

2021-04-15 14:43:58 5299

原创 解决vxe-table复选框翻页选中问题

解决vxe-table复选框翻页选中问题根据vxe-table官方文档,想要保留勾选中的数据,我们的代码中需要设置“row-id”和:checkbox-config中的“reserve”属性。vxe-table官方文档简单写下html部分:<vxe-grid row-id="id" :checkbox-config="{ labelField: '', highlight: true, trigger: 'row', reserve: true , range: true}" @che

2021-01-10 23:32:22 9722 23

原创 node版本升级和切换

我们在不同项目中时可能需要用到两个node版本,所以可以准备两个node版本。假设我们现在的node版本不是最新的,不适应其中一个项目。下载最新的node版本window下载node下载zip压缩包后解压放到专门存放的问文件夹配置环境变量查看当前node版本...

2020-11-23 11:15:08 478 1

原创 echarts地图的tooltip自定义样式显示图表

实现在Echarts地图的tooltip提示框中绘制图表最近遇到一个需求是需要在地图中,鼠标点击或者停留在地图中某一片区域时,该区域显示亮高和显示tooltip提示框信息,但是难点在于需要在tooltip提示框中再绘制一层图表。按以往我们做过都是这种,tooltip提示框中只是单纯显示文本信息。但是,需求要的不是这种,先不多说,直接给你们看最终展示的效果。这里我们以广州市作为模板,可以看出这是我们想要的在tooltip提示框中绘制另外一层图表。ok,接下来我们直接上代码。<templat

2020-10-18 14:07:12 9737

原创 快速简便创建Vue项目

新手快速创建Vue项目安装vue脚手架可以使用下列任一命令安装Vue CLI,打开电脑命令行npm install -g @vue/cli# ORyarn global add @vue/cli检查安装是否成功,当出现上图显示的版本号,即说明vue脚手架安装成功,注意 “-V” 是大写的!vue -V在命令行运行 vue ui,就会出现图形化管理vue ui3. 创建项目管理工具:可以使npm,也可以是yarn点击下一步后,出现预设插件和配置的界面,按照自己的需

2020-10-08 15:24:27 357

原创 使用深度作用选择器覆盖antd vue的表单和下拉菜单部分样式

使用深度作用选择器覆盖antd vue的表单和下拉菜单部分样式在项目中我们常常遇到UI设计师给的设计稿中一些组件中样式和我们所使用的UI框架样式不同,通常我们的做法都是在需要覆盖的组件样式上重写样式,例如:<style lang="less" scoped> .myCss .ant-.ant-form-item { border-right: 1px solid #ccc !important; background-color: #FAFAFA !important;

2020-09-07 23:58:57 2508

转载 antd vue时间选择器(年选择器)

antd vue时间选择器(年选择器)最近项目中用到了antd vue,项目中的版本是1.5.2版本,在做日期选择器时发现只有日,周,月份选择器,独独缺少年份选择器,如果你的项目也是怕升级对整体影响太多,不妨试试下面这种方式来达到年份选择效果。HTML: <div> <a-date-picker format="YYYY" mode="year" :value="year" :open="open" @openChange="o

2020-08-31 23:46:30 9933 1

原创 css去除img左右之间的间距

方法一:给父级元素样式设置font-size:0;<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>去除图片间距</title> <style type="text/css"> .imgs { font-size: ...

2019-11-26 11:21:27 1479

原创 vue组件传值eventBus

首先新建一个eventBus.js定义一个新的vue实例专门用于传递数据,并导出新建两个Vue文件ComponentA.vue<template> <div class="componentsA"> <router-link to="/ComponentB" @click="emitToB">点击按钮给兄弟组件B传值</router-...

2019-11-20 16:31:08 272

原创 js数组去重

方法一:使用indexOf() function unique2(arr){ var newArr = []; for(var i = 0; i < arr.length; i++){ if(newArr.indexOf(arr[i]) == -1){ newArr.push(arr[i]); } } return newArr; } var arr...

2019-11-18 20:59:13 204

原创 js实现对象深拷贝

js实现对象深拷贝方法一//js实现对象深拷贝方法一//initalObj原始对象 finalObj拷贝对象 function deepClone(initalObj,finalObj){ var obj = finalObj || {}; for(var i in initalObj) { // 避免相互引用对象导致死循环,如initalObj.a = initalObj的...

2019-11-15 14:17:06 380

转载 浅谈js对象浅拷贝

实现js对象浅拷贝实现浅拷贝的第一种方法//实现浅拷贝第一种方法 function shallowCopy(obj) { var newobj = {}; for(var key in obj){ newobj[key] = obj[key]; } return newobj; } var obj = { a:"hello", b:{ a:"wor...

2019-11-14 21:35:07 237

原创 牛客网刷题-旋转数组最小数字

题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。function minNumberInRotateArray(rotateArray){ // w...

2019-11-13 15:54:14 214

原创 用两个栈实现队列

题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。var stack1 = [];function push(node){ // write code here stack1.push(node);}function pop(){ // write code here if(stack1.length == 0...

2019-11-12 11:23:55 107

原创 重建二叉树

题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。/* function TreeNode(x) { this.val = x; this.left = null; this.r...

2019-11-11 11:20:53 124

原创 从尾到头打印链表

题目描述输入一个链表,按链表从尾到头的顺序返回一个ArrayList。/*function ListNode(x){ this.val = x; this.next = null;}*/function printListFromTailToHead(head){ // write code here var currNode = this.head; ...

2019-11-10 14:23:34 107

原创 替换空格

题目:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。function replaceSpace(str){ // write code here var arr = str.split(" "); var len = arr.length; var ...

2019-11-09 20:34:07 97

原创 px em rem的区别

pxpx就是css中最基本的长度单位了,用px做单位基本上没什么问题,可以做到让页面按套路精确的展现!可但是!但可是!如果全篇用px布局会暗藏一个尴尬的问题,就是当用户和Ctrl滚页面的时候(说白了就是ctrl+,ctrl-),你会发现页面结构产生了不可预知的错乱,因此有砖家倡导使用em替代px。。。<!DOCTYPE html><html> <head&gt...

2019-11-08 20:37:30 369

原创 二维数组中的查找

题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。function Find(target, array){ // write code here var lenH = array.length; var lenL = ...

2019-11-07 15:34:52 129

原创 css实现垂直水平居中

方案一:div决定定位垂直水平居中(margin:auto实现绝对定位元素的居中)兼容性:IE7以及之前版本不支持<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>垂直水平居中</title> <style type="text/c...

2019-11-06 22:13:02 315 1

原创 Proxy 支持的拦截操作-deleteProperty(target, propKey)

deleteProperty(target, propKey): 用于拦截delete操作。返回一个布尔值。该方法主要是拦截delete操作,并在deleteProperty执行真正想做的操作,同时对proxy的属性执行delete操作,若deleteProperty中不设置delete target[ket],则不会真正将该属性删除。 无法删除目标对象自身的不可配置(configurable)...

2019-11-05 14:03:31 1318

原创 Proxy 支持的拦截操作 -get -set -has

get(target, propKey,receiver)作用:拦截某个属性的读取操作,可以接受三个参数,依次为目标对象、属性名和 proxy 实例本身{ //这里target为{} const proxy = new Proxy({}, { //拦截对象的读取 get: function(target, property, receiver) { retu...

2019-11-04 15:22:54 661

原创 ES6-Proxy

定义:Proxy 对象用于定义基本操作的自定义行为(如属性查找,赋值,枚举,函数调用等)。语法:let p = new Proxy(target, handler);参数:target用Proxy包装的目标对象(可以是任何类型的对象,包括原生数组,函数,甚至另一个代理)。handler一个对象,其属性是当执行一个操作时定义代理的行为的函数。基础示例在以下简单的例子中,当对象中不...

2019-11-03 17:13:23 334

原创 ES6-解构赋值基本用法

定义:解构赋值语法是一种 Javascript 表达式。通过解构赋值, 可以将属性/值从对象/数组中取出,赋值给其他变量。数组解构赋值{ let a,b,rest; [a,b]=[1,2]; console.log(a,b); //1 2}//块级作用域分隔开{ let a,b,rest; [a,b,...rest]=[1,2,3,4,5,6]; consol...

2019-11-02 15:06:49 241

原创 ES6 Map数据类型

定义:Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。语法:new Map([iterable]);参数:iterableIterable 可以是一个数组或者其他 iterable 对象,其元素为键值对(两个元素的数组,例如: [[ 1, ‘one’ ],[ 2, ‘two’ ]])。 每个键值对都会添加到新的 Map。null 会被当做 undefined...

2019-11-01 20:23:40 585

原创 ES6 Set 数据类型

定义:Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。语法:new Set([iterable]);参数:iterable如果传递一个可迭代对象,它的所有元素将不重复地被添加到新的 Set中。如果不指定此参数或其值为null,则新的 Set为空。返回值一个新的Set对象。set对象是值的集合,你可以按照插入的顺序迭代它的元素。 Set中的元素只会出现一次,即 ...

2019-10-31 22:04:46 223

原创 Decorators(修饰器)

定义:Decorator修饰器是一个函数用来修改类的行为:修饰器是一个函数修改行为修改类的行为(修饰器只在类的范围类有用)在使用Decorators之前,需要使用命令行安装一个包,在命令行输入npm install babel-plugin-transform-decorators-legacy --save-dev然后在.babelrc文件中设置 “plugins”: [“t...

2019-10-30 17:18:43 1809

原创 ES6-Generator(生成器)

概念:generator(生成器)是ES6标准引入的新的数据类型。一个generator看上去像一个函数,但可以返回多次ES6提供的解决异步编程的方案之一Generator函数是一个状态机, 内部封装了不同状态的数据用来生成遍历器对象可暂停函数(惰性求值), yield可暂停, next方法可启动。 每次返回的是yield后的表达式结果特点:function 与函数名之间有一个...

2019-10-29 14:00:22 330 1

原创 ES6 Symbol.iterator迭代器

定义:Symbol.iterator 为每一个对象定义了默认的迭代器。该迭代器可以被 for…of 循环使用。描述:当需要对一个对象进行迭代时(比如开始用于一个for…of循环中),它的@@iterator方法都会在不传参情况下被调用,返回的迭代器用于获取要迭代的值。一些内置类型拥有默认的迭代器行为,其他类型(如 Object)则没有。下表中的内置类型拥有默认的@@iterator方法:...

2019-10-28 11:39:11 1617

原创 认识ES6中的let和const

let和var的区别function test(){ for (let i=1;i<3;i++) {//使用let涉及块级作用域,以大括号{}内的为一个块 console.log(i); } console.log(i);//使用let定义变量会报错,在块之外引用为声明的变量}test();运行结果:function test(){ for (var i...

2019-10-27 12:52:44 179

原创 浅谈ES6 - Promise

概念:Promise 对象用于表示一个异步操作的最终完成 (或失败), 及其结果值。语法:new Promise( function(resolve, reject) {...} /* executor */ );参数:executorexecutor是带有 resolve 和 reject 两个参数的函数 。Promise构造函数执行时立即调用executor 函数, resolv...

2019-10-26 14:22:42 303

原创 ES6 类class

定义类:类实际上是个“特殊的函数”,就像你能够定义的函数表达式和函数声明一样,类语法有两个组成部分:类表达式和类声明。类声明定义一个类的一种方法是使用一个类声明。要声明一个类,你可以使用带有class关键字的类名{ //基本定义和生成实例 class Parent{ //构造函数 constructor(name='mukwwang'){ this.nam...

2019-10-25 21:40:37 131

原创 proxy handler.construct(target, args)

作用:拦截 Proxy 实例作为构造函数调用的操作,比如new proxy(…args)。拦截:该拦截器可以拦截以下操作:1. new proxy(…args)2. Reflect.construct()注意:construct方法返回的必须是一个对象,否则会报错。同时拦截对象target也必须是一个可以被new的对象。实例1//construct(target, args)/*拦...

2019-10-24 11:50:18 274

原创 proxy - handler.apply(target, object, args)方法用于拦截函数的调用

proxy - handler.apply(target, object, args)方法用于拦截函数的调用文章目录proxy - handler.apply(target, object, args)方法用于拦截函数的调用1.什么是apply(target, object, args)?2.语法3.下面是两个实例和我通过上机后对其的理解最近因为在学ES6,除了看视频之外还阅读了网上许多优秀的...

2019-10-23 14:45:54 863

空空如也

空空如也

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

TA关注的人

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