- 博客(84)
- 资源 (15)
- 收藏
- 关注
原创 双问号操作符和可选链操作符
双问号操作符(??),也被称作空值合并运算符,当左侧的操作数为null或者undefined时,返回其右侧操作数,否则返回左侧操作数constfoo=null??'defaultstring';console.log(foo);//"defaultstring"可能有人会问??和||有什么区别呢???的左侧只判断两种情况:null和undefined,而||的左侧只要是假值(包括''和0)都会返回右侧的值constnumber=0;...
2021-10-14 15:09:24
313
原创 前端编码规范
以下为小组代码提交时git批注规范,请各位在提交代码时严格遵守,方便大家对工作代码追踪 提交git代码批注规范一、本人直接提交1、一般,提交代码要求功能任务完成便提交,除有依赖情况可提前提交2、提交批注格式:Dev/Fix/BugFix/Mod-任务序号(wbs中序号)-任务名(wbs中任务名)-状态(百分比,无需百分号,同wbs汇报工作状态)-特殊说明3、特殊说明情况:(1)直接开发完成的,无需添加特殊说明(2)功能开发完成后,内部review或内部联调问题修正,使用Fix...
2021-07-23 00:00:56
253
2
vue自定义指令clickoutside使用以及扩展用法
<template> <div class="testPage"> <div class="block" @click="onShow" v-click-outside="closeDialog">111</div> <div class="show" v-if="flag">QQQQQQQQQQ</div> <!-- <input v-focus> --> .
2021-06-21 11:40:37
1403
原创 零合并操作符 ??和可选链操作符 ?.
零合并操作符零合并操作符 ?? 是一个逻辑操作符,当左侧的操作数为 null 或者 undefined 时,返回右侧操作数,否则返回左侧操作数。expr1 ?? expr2复制代码空值合并操作符一般用来为常量提供默认值,保证常量不为 null 或者 undefined,以前一般使用 || 来做这件事 variable = variable || 'bar'。然而,由于 || 是一个布尔逻辑运算符,左侧的操作数会被强制转换成布尔值用于求值。任何假值(0, '', NaN, null, unde
2021-01-18 22:01:14
359
原创 对象数组去重
let objArr = [ { 'msg':'ABC' }, { 'msg':'ABC' }, { 'msg' : 'DFG', }, { 'msg' : 'TGB', }];//对象数组的去重 function uniqObjInArray(objarray){ let len =.
2020-09-24 16:43:33
619
原创 js 数组sort 排序 一个数组根据另一个数组排序
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> </head> <body> <script> let list = [ {name:'张三',code:'zhangsan',id:45}, {name:'李四', code:'lisi',id:36}, ...
2020-07-17 00:48:51
4098
4
原创 vue 优化技巧路由及组件懒加载
懒加载定义:懒加载简单来说就是延迟加载或按需加载,即在需要的时候的时候进行加载。解决方案:常用的懒加载方式有两种,即使用vue异步组件和ES中的import未使用懒加载vue 路由代码import Vue from 'vue'import Router from 'vue-router'import HelloWorld from '@/components/HelloWorld'Vue.use(Router)export default new Router({ rou..
2020-07-08 17:11:03
481
原创 类型基础2 动态类型与静态类型
静态类型语言:在编译阶段确定所有变量的类型动态类型语言:在执行阶段确定所有变量的类型内存角度:动态类型:在程序运行时,动态计算属性偏移值静态类型与动态类型对比静态类型语言: 动态类型语言: 对类型极度严格 立即发现错误 运行时性能好 自文档化 动态类型语言: 对类型非常宽松 Bug可能隐藏数月甚至数年 运行时性能差 可读性差 javascript 就是一门动态弱类型语言...
2020-06-30 16:57:24
154
原创 类型基础:强类型与弱类型
强类型是指不允许隐式变量类型转换,弱类型则允许隐式类型转换。强类型语言:不允许改变变量的数据类型,除非进行将至类型转换(java)A(){ B(x)}B(y){ //y 可以被赋值 x, 程序运行良好}弱类型语言:变量可以被赋予不同的数据类型(javaScript)let x=1;lert y=true;//x=y;console.log(x);let z='a';x=z;console.log(x);从上面代码可以看出JavaScript是一门
2020-06-30 16:24:23
278
原创 浅谈深拷贝和浅拷贝
浅谈深拷贝和浅拷贝深拷贝和浅拷贝的区别为什么要使用深拷贝?深拷贝的要求程度怎么检验深拷贝成功只对第一层级做拷贝拷贝所有层级存在大量深拷贝需求的代码——immutable提供的解决方案正文前言:最开始意识到深拷贝的重要性是在我使用redux的时候(react + redux), redux的机制要求在reducer中必须返回一个新的对象,而不能对原来的对象做改动,事实上,当时我当然不会主动犯这个错误,但很多时候,一不小心可能就会修改了原来的对象,例如:var newObj = obj; .
2020-06-29 19:03:36
276
原创 什么是TypeScript?重塑“类型思维”?
TypeScript简单介绍TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 标准。可以编译成纯JavaScript.TypeScript 由微软开发的自由和开源的编程语言。TypeScript 设计目标是开发大型应用,它可以编译成纯 JavaScript,编译出来的 JavaScript 可以运行在任何浏览器上。这里需要注意三个要点:一.类型检查 ts 会在编译代码时进行严格的静态类型检查,这意味着在编码阶段,发现可能存在的隐患,而不必把他们带
2020-06-29 16:56:36
233
原创 前端性能优化总结
前言最近花了一些时间在项目的性能优化上,背后做了很多工作,但是最后依然没有达到自己想要的结果,有些失望,但是还是记录下自己的执着。性能优化总结:减少请求次数、减小资源大小、提高响应和加载速度、优化资源加载时机、优化加载方式。性能分类对前端工程性能的优化,我觉得可以分为两类: 站在用户视角的主观的可感知的性能。 站在开发者视角的可客观度量的性能。 感知性能对于用户来说,用户的感知性能才是最重要的,简单讲,就是让用户感觉你的网站访问很快,并且感知性能没有衡量标准。不过
2020-06-23 16:07:38
966
2
转载 JS数组奇巧淫技
前段时间接手一个项目,逻辑晦涩难懂,代码庞大冗余,上手极其困难。很大的原因就是数组方法使用不熟练,导致写出了很多垃圾代码,其实很多地方稍加改动就可以变得简单高效又优雅。因此我在这里总结下数组的常用方法和奇巧淫技(奇巧淫技主要是reduce~)。数组操作首先要注意且牢记splice、sort、reverse这3个常用方法是对数组自身的操作,会改变数组自身。其他会改变自身的方法是增删push/pop/unshift/shift、填充fill和复制填充copyWithin。先说数组常用方法,后说使用误.
2020-06-23 16:00:25
593
原创 Vue性能优化方法
文中例子来自https://www.youtube.com/watch?v=5B66qer8cZo 部分转载于链接:https://www.jianshu.com/p/f372d0e3de80函数型组件由于组件的生命周期处理在框架层面上十分耗时,所以,建议平常尽量使用函数型组件。这样,可以避免不必要的性能损失。只要在模板上声明functional属性,就可以实现函数式组件了:<template functional> <div> <di..
2020-06-22 15:47:19
1015
原创 CSS Flex排版--解决垂直居中问题,两列等高问题,自适应宽问题
CSS 三大经典问题:垂直居中问题,两列等高问题,自适应宽问题。今天用flex总结一下垂直居中<div id="parent"> <div id="child"> </div></div>#parent { display:flex; width:300px; height:300px; outline:solid 1px; justify-content:center; align-content:cent
2020-06-17 15:04:05
1872
原创 总结 JavaScript 中所有的运算符优先级和结合性
优先级由高到低:1 ()2 ./[] 左2 new MemberExpression Arguments3 new MemberExpression 右4 () 函数调用 左5 ++/--6 +/-/~/!/delete/typeof/void/await 右7 ** 右8 *///% 左9 +/- 左10 << >> >>> 左11 < > <= >= instance of in 左12 == === != !=
2020-06-16 20:31:01
233
原创 vue 父子组件传函数 demo
父组件<template><div><Hello:flFlag="myFunction"></Hello></div></template>importHellofrom'./HelloWorld'methods:{myFunction(){returntrue }}子组件<template> <div class="hello"&g...
2020-05-28 01:13:30
243
原创 vue element select 二级联动
<template> <div> 我是首页 <el-select v-model="value" placeholder="请选择" @change=selectOne > <el-option v-for="item in options" :key="item.value" :label="item.label" :value="{value:item.value,label:item..
2020-05-15 00:48:59
2076
原创 数组有哪些方法支持响应式更新,如不支持如何处理,底层原理如何实现的?
支持:push()、pop()、shilt()、unshiift()、splice()、sort()、reverse()不支持:filter()、concat()、splice()原理同样是使用Object.defineProperty对数组方法进行改写
2020-05-05 19:38:17
314
原创 Git初学者快速上手(简单粗暴)
Git初学者快速上手1.将一个本地的文件(项目)变成git项目进入项目所在目录执行命令(生成下图文件):git init此文件中将用于保存本地版本内容(还有一份版本内容在服务器上需要通过push命令上传到服务器)2.编写自己项目中的项目内容及文件例:touch b.txt3.添加文件到暂存区git add “需要上传到本地版本库的文件” (注:只是在暂存区)git c...
2020-04-16 23:26:07
664
原创 整理一下微任务和宏任务
整理一下微任务和宏任务js同步异步同步任务:指的是在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务 异步任务: 指的是不进入主线程,某个异步任务可以执行了,该任务才会进入主线程执行。js异步运行机制异步执行的运行机制如下(同步任务也如此,因为它可以被视为没有异步任务的异步执行):所有同步任务都在主线程上执行,形成一个执行栈(execution context...
2019-12-14 20:23:29
425
原创 js中this的指向问题归纳总结
最近发现在对JS的学习中有很多朋友对this的指向问题还是有很大的误区或者说只是大致了解,但是一旦遇到复杂的情况就会因为this指向问题而引发各种bug。所以这篇文章主要给大家介绍了关于js中this的指向问题的相关资料,需要的朋友可以参考下前言js中this指向问题是个老生常谈的问题了,下面这篇文章再来给大家介绍下,大家可以看看,更深入的了解了解,下面话不多说了,来一起看看详细的介绍吧...
2019-12-03 09:57:02
416
原创 async await、Promise、setTimeout执行顺序
由题目见真知:【题目】async function async1(){ console.log('async1 start'); await async2(); console.log('async1 end')}async function async2(){ console.log('async2')}console.log('script st...
2019-11-07 13:41:52
1096
2
原创 Javascript - ES6 实用开发技巧
本文只罗列出在ES6开发过程中相对实用的内容,并非一个高大全的文档,如果希望查阅详细的内容,可购买阮一峰老师所出版的 ES6 相关图书。另外阮一峰老师《ECMAScript 6 入门》一书在网上有对应的网站可访问,地址:es6.ruanyifeng.com定义变量/常量ES6 中新增加了let和const两个命令,let用于定义变量,const用于定义常量 两个命令与...
2019-10-16 11:34:01
203
转载 面试问到 Promise,这样回答最完美了
promise是什么?Promise是异步编程的一种解决方案,比传统的回调函数和事件更合理和强大。所谓Promise,简单来说就是一个容器,里面保存着某个未来才会结束的事情(通常是一个异步操作)。从语法上说,Promise是一个对象,从他可以获取异步操作的消息。特点: 对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulf...
2019-08-28 22:04:54
8368
转载 void 0 代替 undefined 前世今生?
之前在看一个 H5 demo 的时候发现好多变量的定义都是 var aaa = void 0因此在 Chrome 控制台测试了一下 undefined === void 0; //true(事实上,void的返回值都是undefined, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators...
2019-08-23 17:30:30
282
原创 javascript面试题精讲(二)
闲话少叙,直接上代码~1、使用typeof bar ===“object”来确定bar是否是一个对象时有什么潜在的缺陷?这个陷阱如何避免?尽管typeof bar ===“object”是检查bar是否是对象的可靠方法,但JavaScript中令人惊讶的问题是null也被认为是一个对象!因此,对于大多数开发人员来说,下面的代码会将真实(而不是错误)记录到控制台:var bar =...
2019-06-04 16:11:58
441
转载 微信小程序-bindtap等事件传参
什么是事件事件是视图层到逻辑层的通讯方式。 事件可以将用户的行为反馈到逻辑层进行处理。 事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数。 事件对象可以携带额外信息,如 id, dataset, touches。看图,因为需要传递的数据比较多,所以我们通过dataset携带参数信息。如果只有一个参数,可以通过id来传递。详解(以常见的tap点击事情为例)...
2018-12-03 20:04:18
1723
原创 前端构建工具------Webpack vs Gulp
理想的前端开发流程在说构建工具之前得先说说咱期望的前端开发流程是怎样的?写业务逻辑代码(例如 es6,scss,pug 等) 处理成浏览器认识的(js,css,html) 浏览器自动刷新看到效果前端开发就是在不断的 123..123..123.... 循环中进行的,上面的后两步(也就是 2 和 3)应该是 自动化 的,前端开发者理应只需关注第 1 步——写业务逻辑代码。自动化的事...
2018-11-07 15:15:55
296
原创 谈javascript中stopImmediatePropagation函数和stopPropagation函数的区别
在事件处理程序中,每个事件处理程序中间都会有一个event对象,而这个event对象有两个方法,一个是stopPropagation方法,一个是stopImmediatePropagation方法,两个方法只差一个Immediate,这里就说说这两个方法的区别 1、stopImmediatePropagation方法: stopImmediatePropagation方法...
2018-11-04 20:23:26
167
原创 JS中自定义事件的使用与触发
1. 事件的创建JS中,最简单的创建事件方法,是使用Event构造器:var myEvent = new Event('event_name'); var myEvent = new Event('event_name');但是为了能够传递数据,就需要使用 CustomEvent 构造器:var myEvent = new CustomEvent('event_name', { ...
2018-11-04 20:22:07
366
转载 windows安装git并使用
最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上跑。不过,慢慢地有人把它移植到了Windows上。现在,Git可以在Linux、Unix、Mac和Windows这几大平台上正常运行了。https://pan.baidu.com/s/1boOKZ1dWindows下要使用很多Linux/Unix的工具时,需要Cygwin这样的模拟环境,Git也一样。Cy...
2018-09-04 17:10:23
1558
转载 解读Git与SVN的区别(集中式VS分布式)
Git是目前世界上最先进的分布式版本控制系统,其实 Git 跟 SVN一样有自己的集中式版本库或服务器,但是Git 更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chect out代码后会在自己的机器上克隆一个跟中心版本库一模一样的本地版本库。可以这样说,如果你被困在一个不能连接网络的地方时,你仍然能够提交文件,查看log(历史版本记录),创建项目分支等。Git 和 SV...
2018-09-04 16:54:06
209
原创 ES6数组方法
ES6数组方法以下方法添加到了Array.prototype对象上(isArray除外)indexOf类似字符串的indexOf()方法1 stringObject.indexOf(searchvalue,fromindex)2 3 var data = [2, 5, 7, 3, 5];4 console.log(data.indexOf(5, "x")); // 1 ("x"被忽略)5 ...
2018-03-14 16:03:29
291
转载 数组reduce方法心得
从最简单的例子开始。var arr = [1, 2, 3, 4, 5];sum = arr.reduce(function(prev, cur, index, arr) { console.log(prevres, cur, index); return prevres + cur;})console.log(arr, sum);输出结果1 2 13 3 26 4 3...
2018-03-14 15:44:40
345
原创 怎么让Chrome支持小于12px 的文字?
这个我们在做移动端的时候,设计师图片上的文字假如是10px,我们实现在网页上之后。往往设计师回来找我们,这个字体能小一些吗?我设计的是10px?为啥是12px?其实我们都知道,谷歌Chrome最小字体是12px,不管你设置成8px还是10px,在浏览器中只会显示12px,那么如何解决这个坑爹的问题呢? 我们的做法是: 针对谷歌浏览器内核,加webkit前缀,用transform:scale()这个
2017-07-11 11:46:33
8904
1
原创 vue 缩写
v-bind 缩写Vue.js 为两个最为常用的指令提供了特别的缩写: v-bind:href="url"> :href="url">v-on 缩写 v-on:click="doSomething"> @click="doSomething">
2017-06-21 17:48:51
5475
原创 VueJs—常用操作手册
一、从HelloWorld说起任何语言的都是从Hello World开始的,VueJs也不例外,直接上代码:12345678910111213141516171819script src="h
2017-06-19 21:57:28
1542
转载 50个必备的实用jQuery代码段+ 可以直接拿来用的15个jQuery代码片段
本文会给你们展示50个jQuery代码片段,这些代码能够给你的JavaScript项目提供帮助。其中的一些代码段是从jQuery1.4.2才开始支持的做法,另一些则是真正有用的函数或方法,他们能够帮助你又快又好地把事情完成。如果你发现你任何可以做得更好的地方的话,欢迎把你的版本粘贴在评论中!如何修改jQuery默认编码(例如默认UTF-8改成改GB2312):$.ajaxSetup({
2017-06-19 15:41:12
545
转载 20 个常用的 CSS 技巧
20 个常用的 CSS 技巧阅读 4551收藏 2872016-05-27下面这几个CSS技巧你可能不知道,1.彩色照片变黑白,2.所有元素垂直居中,3.禁用鼠标,4.模糊文字,小编学完能量满满的,觉得对CSS又充满了爱,你也来看看。1. 黑白图像这段代码会让你的彩色照片显示为黑白照片,是不是很酷?img.desaturate {
2017-06-06 23:17:19
420
最新html.js 兼容ie
2015-12-10
OpenCV 2 Computer Vision Application Programming Cookbook_Code
2013-01-06
OpenCV.2.Computer.Vision.Application.Programming.Cookbook.pdf
2013-01-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人