自定义博客皮肤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)
  • 收藏
  • 关注

原创 自定义 tabBar 在切换 tab 时会使 tabBar 消失

app.json和页面json 文件中引用自定义的tabbar组件,引发的系列页面错乱问题:1、出现问题的机型: ios、android均会出现(如iphone8plus、iphoneX、三星s8)2、微信版本号: 7.0.123、出现问题的时间:2020年6月5日上午11点左右到下午14点左右4、未改任何代码,线上版本、体验版都自动恢复正常,时间:2020年6月5日下午14点左右之后。现将出现问题的场景和方案描述如下:调试工具显示正常,手机预览和真机调试异常场景一:自定义 ta

2020-06-05 18:16:49 1612

原创 js中数组对象去重的方法

最工作中需要用到数组对象去重的方法,分享一下,希望对大家有帮助!方法一:采用对象访问属性的方法,判断属性值是否存在,如果不存在就添加。方法二:采用数组中的reduce方法,遍历数组,也是通过对象访问属性的方法var arr = [{ 2 key: '01', 3 value: '开开' 4 }, { 5 key: '02', 6 value: '欣欣' 7 }, { 8 key: '03', .

2020-06-04 18:30:14 285

原创 微信中调起支付宝支付

微信中调用支付宝支付,首先我们知道微信是不能直接调用支付宝的,所以我们需要使用一个中间页提示用户在浏览器中打开,然后进行网页支付或打开app支付。以下为详细唤起支付宝的步骤、业务代码以及相关页面图。如有问题欢迎评论留言,看到定回复哦^_^\(^o^)/~一、微信中唤起支付宝,有几个步骤:1、中间页引导用户在浏览器中打开去唤起支付宝。2、浏览器中打开支付宝或app中打开支付宝。3...

2018-11-23 18:10:56 22742 15

原创 微信公众号调取微信支付

发起一个微信支付请求wx.chooseWXPay({timestamp: 0, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符nonceStr: '', // 支付签名随机串,不长于 32 位package: '', // 统一支付接口返回的prepay_id参数值,提交格式...

2018-11-23 16:05:47 1265

原创 vue-router无论是hash模式还是历史模式在ios微信浏览器中进入哪个页面复制链接或选择safari打开都是第一次进入的那个页面

vue-router无论是hash模式还是历史模式在ios微信浏览器中进入哪个页面复制链接或选择safari打开都是第一次进入的那个页面解决方式:在需要复制链接或选择safari打开的页面中,去created()方法中执行replace()重定向操作。//&replace=1为自定义的url拼接参数,需要加上判断操作否则会一直刷新一直重定向let _href = window....

2018-11-09 17:43:09 4835 2

原创 微信公众号开发里JSSDK 1.4.0分享接口updateAppMessageShareData 无效

解决方式:暂时解决方案先调用旧版本api:onMenuShareAppMessage,新版本updateAppMessageShareData目前无效。代码: // console.log("wx================", wx) wx.config({ debug: false, // 开启调试模式...

2018-10-16 14:31:39 59129 10

原创 为什么 ["1", "2", "3"].map(parseInt) 返回 [1,NaN,NaN]?

在 javascript 中 ["1","2","3"].map(parseInt) 为何返回不是 [1,2,3] 却是 [1,NaN,NaN]?我们使用进制的相关知识来解释说明,如果你看完还是没有很清楚,可以自己去了解一些进制的相关知识。我们首先回顾一下 parseInt() 个 map() 两个函数的用法:1、parseInt() 函数: parseInt() 函数可解析一个字符串...

2018-08-14 01:04:10 719

原创 构造函数用new创建实例化对象时,是否带括号在这种情况存在优先级

function Foo() { return this;}Foo.getName = function () { console.log('1');};Foo.prototype.getName = function () { console.log('2');};new Foo.getName(); // -> 1new Foo().getN...

2018-08-12 19:49:52 636 2

原创 一张图理解JS的原型(prototype、_proto_、constructor的三角关系)

注意:前方高能预警,请认真仔细看完,阅读完后自己再次画下原型图,相信你一定会有更深刻的认识。(推荐炒鸡好用的画流程图的软件ProcessOn)构造函数:function Foo ( ) { };实例对象:let f1=new Foo;                 let o1=new Foo;每个函数都有 prototype 属性,除了 Function.prototype.b...

2018-08-12 00:43:25 3573 2

原创 深入解剖JS 中只有按值传递,没有按地址(引用)传递

数字、字符串:把值直接复制进去;数组、对象:把变量地址复制进去。ECMAScript 中,所有函数的参数都是按值来传递的。基本类型值的传递和基本类型变量复制一致(采用在栈内新建值),引用类型值的传递和引用类型变量的复制一致(栈内存放的是指针,指向堆中同一对象)1.基本类型的传递//在基本类型参数传递的时候,是复制栈帧的拷贝操作。外部声明的变量num和函数参数的num,拥有完全相同...

2018-07-27 17:49:27 516 3

原创 深入剖析 JavaScript 的深浅拷贝

let a = { age: 1}let b = aa.age = 2console.log(b.age) // 2从上述例子中我们可以发现,如果给一个变量赋值一个对象,那么两者的值会是同一个引用,其中一方改变,另一方也会相应改变。通常在开发中我们不希望出现这样的问题,我们可以使用浅拷贝来解决这个问题。浅拷贝:1、使用 Object.assign let ...

2018-07-26 18:32:38 184

原创 js的内置类型和类型转换

1、内置类型:两大类型:基本类型(null,undefined,boolean,number,string,symbol)和引用类型([ ]、{ })注意点:NaN 也属于 number 类型,并且 NaN 不等于自身。对象(Object)是引用类型,在使用过程中会遇到浅拷贝和深拷贝的问题。2、Typeof:typeof 对于基本类型,除了 null 都可以显示正确的类型。ty...

2018-07-26 16:28:57 407

原创 Class的继承

1.基本使用Class 可以通过extends关键字实现继承,这比 ES5 的通过修改原型链实现继承,要清晰和方便很多。ES5 的继承实质:先创造子类的实例对象this,再将父类的方法添加到this上面(Parent.apply(this))。ES6 的继承实质:先将父类实例对象的属性和方法加到this上面(所以必须先调用super方法),再用子类的构造函数修改this。//su...

2018-07-23 15:58:35 389

原创 Mac 终端创建ssh key并添加到GitHub

详情参考:https://jingyan.baidu.com/article/6c67b1d6b19e892786bb1e49.html注解:id_rsa.pub文件里面的内容是以git账号结尾,一行结束。

2018-07-20 11:47:08 295

原创 mac中安装webpack时报错解决方案

1.在node同目录下直接nam install webpack -g 安装,报错:找不到package.json文件。

2018-07-20 11:46:04 2855

原创 前端调取接口时token丢失的解决方案

存在的情况有:前端缺少token,后端未配置路由1.前端少token(1)后端加上与前端jsp相对应的参数(2)在home.jsp中存储appToken(3)在页面中使用appToken2.后端没有配置对应的页面的路由方式(1):方式(2):...

2018-07-20 11:45:09 10831

原创 mac解决端口占用和显示隐藏文件

1.解决端口占用:2.Mac系统如何显示隐藏文件:Command+Shift+. 可以显示隐藏文件、文件夹,再按一次,恢复隐藏;finder下使用Command+Shift+G 可以前往任何文件夹,包括隐藏文件夹。 ...

2018-07-20 11:25:41 220

原创 react-antd项目中重新npm  install  导致自动升级antd版本,引发的样式问题

解决方式:1.指定安装固定ant版本: npm i [email protected] —save (在 node_modules同级目录下)   原因: 尽量不要直接用npm install(全局安装)命令,要指定要安装的库,因为package.json中有^符号的都有可能会升级各类库。      图为package.json里面的配置:2.直接手动修改ant的样式(弊端:以后可能还会出...

2018-07-20 11:23:24 16845

原创 react父子组件如何传递值(实现自动刷新)

子组件中的值传递给父组件,实现自动刷新需要的效果:点击新增属性按钮提交一条新增的属性,操作成功后表格中自动刷新渲染出新的属性

2018-07-20 11:18:43 5388

原创 Mac在idea中配置tomcat项目中的操作:(基本:安装git,node)

一.idea的注册码:将...添加到hosts文件,再把注册码复制到idea中找到hosts文件:https://blog.csdn.net/deft_mkjing/article/details/51669388简述一种方式:finder打开,shift+command+G,输入/private/etc/,找到hosts文件修改。二.权限问题:a、idea编辑器导入inpor...

2018-07-20 11:14:32 1639 1

原创 Class的基本用法

Class(类)这个概念,作为对象的模板。class可以看作只是一个语法糖,通过class关键字,可以定义类。让对象原型的写法更加清晰、更像面向对象编程的语法。类和模块的内部,默认就是严格模式,所以不需要使用use strict指定运行模式。1.constructor方法和实例对象//定义类class Point { constructor(x, y) { this.x =...

2018-07-19 18:25:05 18746

原创 Reflect

Reflect对象与Proxy对象一样,为了操作对象而提供的新 API。Reflect对象的设计目的有:1) 将Object对象的一些明显属于语言内部的方法(如Object.defineProperty),放到Reflect对象上。2) 修改某些Object方法的返回结果,让其变得更合理。如Object.defineProperty(obj, name, desc)在无法定义属性时,会报错...

2018-07-18 17:25:02 112

原创 Set和Map数据结构

1. Set数据结构:它类似于数组,但是成员的值都是唯一的,没有重复的值。Set 本身是一个构造函数,用来生成 Set 数据结构。Set 实例的方法分为两大类:操作方法(用于操作数据)和遍历方法(用于遍历成员)。操作方法:add(value):添加某个值,返回 Set 结构本身。 delete(value):删除某个值,返回一个布尔值,表示删除是否成功。 has(value):返回一个...

2018-07-18 16:38:54 813

原创 对象的扩展

1.属性的简洁表示法:ES6 允许直接写入变量和函数,作为对象的属性和方法。直接写变量,属性名为变量名, 属性值为变量的值。const foo = 'bar';const baz = {foo};baz // {foo: "bar"}// 等同于const baz = {foo: foo};function f(x, y) { return {x, y};}// 等同于...

2018-07-11 18:55:09 456

原创 数组的扩展

1.扩展运算符:三个点(...)它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列替换函数的apply方法:// ES5 的写法Math.max.apply(null, [14, 3, 77])// ES6 的写法Math.max(...[14, 3, 77])// 等同于Math.max(14, 3, 77);// ES5的 写法var arr1 ...

2018-07-10 18:38:02 863

原创 函数的调用

ES6 允许为函数的参数设置默认值,即直接写在参数定义的后面。function Point(x = 0, y = 0) { this.x = x; this.y = y;}const p = new Point();p // { x: 0, y: 0 }与解构赋值默认值结合使用:在参数是解构赋值时应该设置参数默认值,解决函数调用不提供参数报错问题function fo...

2018-07-10 16:40:55 232

原创 变量的解构赋值

ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构。1.数组的解构赋值:属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值let [foo, [[bar], baz]] = [1, [[2], 3]];foo // 1bar // 2baz // 3let [ , , third] = ["foo", "bar", "baz"];...

2018-07-05 19:06:09 466

原创 ES6 的块级作用域(let,const声明变量的常见问题)

 ES5 只有全局作用域和函数作用域,没有块级作用域ES6 规定暂时性死区(在代码块内,使用let、const命令声明变量之前,该变量都是不可用的)和let、const语句不出现变量提升  if (true) {    let m1 = 10;  }  console.log(m1); // 5 表示外层代码块不受内层代码块的影响var m2 = 5; if (t...

2018-06-10 18:00:16 577

原创 提升小程序性能和体验

背景:首页作为小程序的门户,其性能表现和用户留存率息息相关。因此,我们可以从加载、渲染和感知体验几大维度深挖小程序的性能可塑性。小程序官方性能指标小程序官方针对小程序性能表现制订了权威的数值指标,主要围绕渲染表现、setData数据量、元素节点数和网络请求延时这几个维度来给予定义(下面只列出部分关键指标):首屏时间不超过 5 秒; 渲染时间不超过 500ms; 每秒调用setData的次数不超过 20 次; setData的数据在JSON.stringify后不超过 2...

2020-12-24 11:57:25 1253

原创 js进行复杂的条件判断

if...else写法:var level = 0; if(step == 5){ level = 1; }else if(step == 10){ level = 2; }else if(step == 12){ level = 3; }else if(step == 15){ level = 4; }else { level = 0; }swicth写法:var level = 0; switch

2020-12-18 19:00:05 861

原创 JS的优雅写法

如何让js更加优雅,如何提高代码的可读性、复用性、扩展性,可以从以下几点讨论。 变量 函数 类 异步 一、变量:1、用有意义且常用的单词命名// Bad:const yyyymmdstr = moment().format('YYYY/MM/DD');// Good:const currentDate = moment().format('YYYY/MM/DD');2、避免无意义的前缀// Bad:const car = { car

2020-11-16 16:47:34 784

原创 js中数组对象去重的方法

工作中需要用到数组对象去重的方法,分享一下,希望对大家有帮助!方法一:采用对象访问属性的方法,判断属性值是否存在,如果不存在就添加。方法二:采用数组中的reduce方法,遍历数组,也是通过对象访问属性的方法var arr = [{ key: '01', value: '开开' }, { key: '02', value: '欣欣' }, { key: '03', valu

2020-06-04 18:47:49 259

原创 提升小程序性能和体验

一、性能1、图片太大会增加下载时间和内存的消耗,应根据显示区域大小合理控制图片大小2、请求的耗时太长会让用户一直等待甚至离开,应当优化好服务器处理时间、减小回包大小,让请求快速响应3、由于小程序运行逻辑线程与渲染线程之上,setData的调用会把数据从逻辑层传到渲染层,数据太大会增加通信时间 了解更多4、发起网络请求总会让用户等待,可能造成不好的体验,应尽量避免多余的请求,比如对同样的请求进行缓存5、首屏时间是指用户开始看到第一屏的内容的时间,首屏时间太长会导致用户长时间看到的都是白屏.

2020-05-15 15:35:58 950

原创 使用Vue-cli搭建项目具体流程

Vue-cli是vue的一个脚手架,我们可以通过它来构建我们的前端项目 安装vue-cli的步骤 :1. 安装nodeJS(已经集成npm) 2. node –v ; 查看是否安装成功3. 安装vue-cli: npm install –g vue-cli 4. 创建项目 vue init webpack + 项目名5. 选择项目的一些配置(Y/n) 注: 1、npm install -...

2019-02-22 18:07:21 246

原创 低版本ios手机,post请求一直pending状态(vconsole会对post请求进行拦截)

排查方式:1、前端ajax请求方式替换2、vue框架版本排查最后:居然是因为 vconsole没关,在低版本的iPhone5手机上的所有post请求都被拦截了处于pending状态。 ...

2019-02-01 15:20:43 2473

原创 低版本ios、安卓手机 css的flex布局兼容问题

在iphone5手机中,flex布局失效。解决方案如下:在package.json中加上:"browserslist": [ "> 1%", "last 2 versions", "not ie <= 8", "ios >= 3", "android >= 2" ]在vue1.

2019-02-01 14:59:04 1625

空空如也

空空如也

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

TA关注的人

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