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

原创 Android 9.0 以上http链接提示无网络和加载失败

从Android 6.0开始,引入了对Https的推荐支持。但Android 9以后系统默认所有Http的请求都被阻止了。9以下访问http会报错:CLEARTEXT communication not permitted by network security policy可见,系统安全策略不允许可以通过策略设置,来允许http协议。在res/xml文件夹下,添加network_secu...

2019-08-09 19:40:09 1053

原创 js中如何优雅修改一个多层嵌套list对象的值

如何优雅更改一个N层嵌套对象属性的值看下边的代码,要加工一个嵌套list的属性值,然后再赋值回去,大概只能这样写:dp.data.treelist = dp.data.treelist.map(...)由于对象嵌套比较深(有可能N层),每次赋值都需要重复这个嵌套过程(dp.data.treelis) 两次而我们希望的是,调用和赋值,可以(至少看起来)一次完成我们可以利用对象中的 ...

2019-02-19 11:34:50 13078

原创 vue 组件中的setInterval方法和window的不同

vue 组件中的setInterval方法和window的不同vue组件中,this指向实例,【实例中重写了setInterval等一整套方法】。所以,千万不能和 window 下挂载的方法混用具体不同在于,window.setInterval执行完比后返回一个id,而vue实例中返回【定时器对象】,当然该对象中包含一个_id的私有属性因为 clearInterval 方法参数是id,所以...

2019-02-05 11:20:38 2230

原创 你不知道的javascript[上]学习总结(第一部分1-3章)

第一部分 作用域和闭包(1-3章)代码在执行前,会经过三个步骤分词-词法分析将由字符组成的【代码字串】分解为【有意义的代码块】,被称为【词法单元】比如,var a = 2; 通常会被分解为几个词法单元:var、a、=、2。被称为【词法单元流数组】解析-语法分析将词法单元流数组转换为一套代表了程序语法的【抽象语法树AST】,数组中的每一项被转化为了AST树中的节点代码生成...

2019-05-22 14:49:43 241

原创 axios快速入门总结

axios配置文档axios的特点基于 promise 实现优化回调地狱支持 node端使用 catch 捕捉 error使用 finally 来结束 loading(如果有必要)mounted () { axios .get('https://api.coindesk.com/v1/bpi/currentprice.json') .then(re...

2019-05-22 14:49:18 552

原创 前端开发中使用mac自带apache服务

场景前端开发中,总是会有这样的需求,就是快速的写一个脚本,或者一个简单的demo页面。这时,我们需要马上可以启动一个web服务,来支持开发。我们可以安装一个全局的cli工具,通过node服务来满足需求,这类工具很多,不必多说。实际上,多数前端开发者都使用mac,mac os操作系统上其实就已经安装了apache服务。我们仅仅只需要略做配置上的修改,就可以直接使用这一服务,而它可提供的服务功...

2019-05-22 14:48:57 177

原创 js中函数表达式和自执行函数表达式的用法总结

立即调用函数表达式给函数体加大括号,在有变量声明的情形下,没有任何区别但是,如果只是【自动执行】的情形下,就会不同因为,一个匿名函数,不加大括号,是不能自动执行的//以下情形并无差别var count100 = function getCount100(){ return(100) }();//100var count200 = (function getCount200(){ r...

2019-02-18 19:17:27 433

原创 撤底理解es6中的箭头函数

本质上是一个函数,是function是一个被编译层加工过的函数用 babel 编译一下箭头函数看看,如下//es6const a = ()=>{ console.log(this) };const b = ()=>{ console.log(arguments) }function aaa(){ const c = ()=>{ console.log(t...

2019-02-14 19:18:04 208

原创 javascript面向对象精要学习总结(第六章 对象模式)待更新

单对象的模块模式定义单个对象,以自执行函数函数的方式用闭包的方式,产生只通过特定方法访问的数据var student = function(){ var name = "gs"; var age = 19; sayName = function(){ console.log("say name is " + name); }; setAge = functi...

2019-02-14 11:43:06 157

原创 javascript面向对象精要学习总结(第五章 继承)

原型对象继承原理:原型对象的属性可以经由对象实例访问下面的例子,所含【对象继承】和【构造函数继承】,用于理解【原型属性经由对象实例访问】//对象继承var person = { name:"gs", age:19}console.log(person.prototype === undefined );function Student(){}Student.proto...

2019-02-14 11:41:19 138

原创 javascript面向对象精要学习总结(第四章 构造函数和原型对象)

constructor 实例的构造函数属性它是实例的构造函数属性,指向创建它的构造函数不要用它来检测对象的类型,因为它可以被覆盖,并不准确检测对象类型最好使用 instanceoffunction Person(name){};var gs = new Person("gs");gs.constructor === Person;//trueprototype(函数的原型属性...

2019-02-14 11:40:04 201

原创 javascript面向对象精要学习总结(第三章 对象)

属性添加原理一个对象首次添加某一属性时,是调用对象内部的put方法一个对象修改某一属性是,是调用对象内部的set方法属性是否存在使用 in 方法时,会检测【自有属性】+【原型属性】使用 hasOwnProperty 仅会检测【自有属性】使用 if 语句检测是不准备的,因为无法过滤假值var obj = { name:"zk", age :19, id:0}c...

2019-02-14 11:38:01 166

原创 javascript面向对象精要学习总结(第二章 函数)

函数也是对象,但一点不同函数存在一个 call 的内部属性,表明函数可执行typeof 对任何具有call属性的对象,都返回“function”function fun(){ console.log(typeof fun.call);}fun()函数的参数函数的length属性,即为参数的个数函数中,arguments.length,也表示参数的个数js中函数没有重...

2019-02-14 11:36:22 147

原创 javascript面向对象精要学习总结(第一章 类型)

原始类型共5种string | number | boolean | undefined | null内建引用类型共5种Date | Error | Function | Object | RegExp数组的动态方法var arr = [1,2,3];arr["push"](5);console.log(arr);//[ 1, 2, 3, 5 ]判断数组的最佳方法A...

2019-02-14 11:34:41 144

原创 前端git操作命名规范和协作开发流程

前言一个项目的分支,一般包括主干 master 和 开发分支 dev,以及若干临时分支分支命名规范分支: 命名: 说明: 主分支 master 主分支,所有提供给用户使用的正式版本,都在这个主分支上发布开发分支 dev 开发分支,永远是功能最新最全的分支功能分支 feature-* 新功能分支,某个功能点正在开发阶段发布版本 release-* 发布定期要上线的...

2019-02-13 15:13:26 629

原创 vue如何使用mockjs摸拟接口数据

Vue 中使用 mock有两种使用方式,一种是仅编写数据来调用,第二种是编写 服务+数据模拟真实接口(可在network查看)Mock对象API用例查看(推荐只看这个就可以)官方mock定义api查询第一种方式,编写mock可以写完整action url:http://localhost/login同一域下,也可以只写api形式:/login使用 Mock.mock 可以编...

2019-02-11 14:38:27 1577

原创 vuex速成学习总结

vuex | 应用场景用于【共享状态】较多,经常被在各处修改的【大型项目】用于大中型单页应用,简单的 spa 可以使用【中央数据总线 bus 】来管理数据(bus也是一个vue实例)如果不是多人协作或非常复杂的项目,一个简单的 store 模式就足够了store | 是全局共享状态把组件的共享状态抽取出来,以一个全局单例模式管理组件树构成了一个巨大的“视图”,任何组件都能获取状...

2019-02-09 23:38:19 262

原创 vue组件之间数据传递和通信方式总结

vue组件之间数据传递和通信方式总结方式主要包括:父组件=>子组件 | 单向数据流,props子组件=>父组件 | 观察者模式,即vue的自定义事件 $emit 和 $on非父子组件通信 | 中介者模式,即 中央事件总线 bus父子组件通信 | 父链和子链,this.parent∣this.children∣this.parent | this.children | thi...

2019-02-07 15:27:48 227

原创 chrome控制台console.log无法时实打印引用类型值的bug

在js脚本中,使用console.log打印一个大型的对象(像 vm (vue实例),或者 window 对象),然后再设置延迟改变该对象的的某个属性(假设属性名为 ppp )的值,会发现个有趣的现象:如果是 window,假设执行如下脚本会在控制台打印出如下输出:首先,马上点击展开第一个输出值,10s后点击展开第二个输出值,会发现两个值分别为第一个第二个从...

2019-01-31 18:09:46 1007

原创 箭头函数没有绑定this

箭头函数没有绑定this不要把【箭头函数】和【箭头函数的定义函数】弄混淆ecma262规范中明确规定,箭头函数根本没有自身的this绑定在函数执行前绑定this的时候,传入的thisArgument会被直接忽略也就是说箭头函数本身没法修改this,所以对this访问永远是它继承外部上下的this按照babel的实现来说,在箭头函数内部没有this引用的时候,默认编译成这样var f ...

2019-01-30 19:13:16 1369

原创 理解Generator生成器对象

Generator 对象(理解为生成器函数更好)注意,Generator函数,不可当作构造函数首先声明一个Generator 函数,以下均以 gen 为例function* gen(){ yield "first"; yield "second"; yield "third";}var res = gen();它是一个高阶函数(gen),可以生成一个可迭代的函数(..

2019-01-29 17:04:21 933

原创 深入理解js中实现继承的原理和方法

原型对象继承原理:原型对象的属性可以经由对象实例访问下面的例子,所含【对象继承】和【构造函数继承】,用于理解【原型属性经由对象实例访问】//对象继承var person = { name:"gs", age:19}console.log(person.prototype === undefined );function Student(){}Student.proto...

2019-01-28 20:11:56 328

原创 彻底理解js中的原型对象和prototype属性

prototype(函数的原型属性)prototype 是一个指向该实例所使用的原型对象的【指针】prototype 是几乎所有的函数(除了某些内建函数)的属性prototype 不是一个实例的属性,因为实例是对象,不是函数//prototype是函数的属性console.log(Array.prototype.reduce.prototype);//undefinedconsol...

2019-01-28 14:02:00 892 2

原创 前端静态资源请求和加载优化总结

如果有这样一个项目,js脚本数量100+,其中50个是各种框架或库,css数量20+,图片若干 。那么,不用说,这个页面加载起来,一定快不了。静态资源的请求和加载速度,直接影响页面呈现,应该怎么优化呢?不请求 -  用cache最好的方式就是尽量引用公共资源,同时设置缓存,不去重新请求资源 也可以运用PWA的离线缓存技术,可以帮助wep实现离线使用 从策略上说,如果业务类型允许的话...

2019-01-24 20:01:38 3526

原创 js函数式编程最佳实践 - 持续更新

函数式编程最佳实践学习文档函数式编程术语数组字串处理function addString(el){ return el + "0";}var newArr = arr.map(addString).join("");var arr = ["1","2","3","4"];console.log(newArr);创建 tags// 创建 - 单个funct

2019-01-22 19:21:10 485

原创 js函数式编程之代码改善 - 封装和去重

改动前的代码,问题如下if语句滥用重复功能代码数据、ui和业务逻辑代码耦合不易测试function errorCatch(err) { if (err.status == 0) { wx.showToast({ title: '网络开小差了,请重试', icon: 'none', duration: 2000 }) } el...

2019-01-22 17:17:22 249

原创 js判断对象属性是否存在之深入理解

js判断多层对象属性是否存在比如 判断 err.response.data.message 的存在//目前比较好的办法是使用lodashjs中的_.get方法,注意查找参数字符串_.get(err,"response.data.message")//还有就是将err转为字符串,再进行匹配查找判断对象是否存在,不存在则声名一个//例一,这个会报错,原因是没有变量报升if (!my...

2019-01-21 18:17:44 997

原创 vue prop传值default属性如何使用,为何不生效?

如果在template中,显示的调用了 prop 属性,那么 default 属性就不会生效如果在template中,不调用 prop 属性,default 就会生效default 值有效与否,和 prop 的验证通不通过,没有关系//声明Vue.component("blog-post", { props: { postTitle: { type: Numbe...

2019-01-18 18:35:05 10227

原创 vue prop传值类型检验

prop 传值检验规则如果是 prop 是静态传值,则必须是 String 类型如果是 prop 是动态传值,则可以验证任意类型示例,如果必须要传一个Number,就必须使用 bind//声明Vue.component("blog-post", { props: { postTitle: { type: Number, default: 10000...

2019-01-18 18:32:23 3544 2

原创 js函数式编程术语总结 - 持续更新

参考文档1参考文档2函数式编程术语高阶函数 Higher-Order Functions以函数为参数的函数返回一个函数的函数函数的元 Arity比如,一个带有两个参数的函数被称为二元函数惰性求值 Lazy evaluation是一种按需求值机制,它会延迟对表达式的求值,直到其需要为止// 设置一个随机数,需要时,才会计算,每次计算都是一个不同的值const r...

2019-01-15 23:54:36 249

原创 underscore入门学习示例

目录underscore简介工具函数(Utility)对象函数(Object Functions)函数(Functions)数组函数(Array Functions)集合函数(Collections)链式语法(Chaining)参考文档underscore简介意为下划线它提供了一整套函数式编程的实用功能,但是没有扩展任何 JavaScript 内置对象它弥补了 jQ...

2019-01-13 11:09:02 259

原创 js函数式编程术语之幂等性 Idempotent

幂等性 Idempotent了解这个概念前,需要知道以下概念[二元运算],它需要三个元素:二元运算符以及该运算符作用的两个变量。如四则运算的加、减、乘、除均属于二元运算。乘法下唯一两个幂等实数为0和1[一元运算],例如 ++ ,正+,负-。比如[高斯符号],它是一个数学符号,形式为方括号[x],表示不大于x的最大整数,高斯符号是幂等的[http方法的幂等],指的是同样的请求被执行一次与连...

2019-01-11 14:43:22 1086

原创 js函数式编程术语之组合函数 compose

compose 组合函数概念:它将需要嵌套执行的函数平铺。嵌套执行指的是,一个函数的返回值将作为另一个函数的参数作用:实现函数式编程中的 pointfree 风格(无参数),使我们专注于【转换】而不是【数据】实现:接收多个函数作为参数,从右到左,一个函数的输入为另一个函数的输出意义:编程更精练、算法更清晰、无参数干扰威力:【任意组合】缺点:不能直观的看到参数示例var comp...

2019-01-10 18:14:16 702

原创 普通元素绑定scroll滚动方法

普通元素添加scroll的问题,以原生js为例scroll方法要加在外层视窗元素上,即那个限制了滚动区域的元素上不要加在里层的,用来滚动的元素上,那样不生生效!普通div,table,都可以使用scroll。当然,window的scroll方法是最常用的// 给layui的table增加下拉到底部的判断document.getElementsByClassName("layui-ta...

2019-01-09 18:09:52 1412

原创 layui数据表格初始化的问题

layui table组件支持【自定义传入数据】支持【直接从接口请求数据】注意,在第二个模式下,对入参和出参,有严格限制,甚至对返回数据格式也有要求建议使用第一种方案layui.use('table', function(){ var table = layui.table; var config = dp.saveConfig(); table.render({ ...

2019-01-08 18:32:53 2976

空空如也

空空如也

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

TA关注的人

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