自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码整洁之道(RobertC.Martin)之第六章: 对象和数据结构

一、前言本章不重要, 大多是对面向对象语言, 针对对象和数据结构的规范, 但是也有部分属于前端, 我已经提炼出来, 有兴趣的看下就行。二、对象和数据结构数据抽象 => 隐藏实现, 暴露接口数据对象具有反对称性 => 过程性代码方便添加新函数(确实), 面向对象代码便于添加新类(一个东西一个类嘛), 反之亦然。比如过程性代码难于添加新类得墨忒耳定律 => 模块不应了解内部情形(迪米特原则???)火车失事 => 别写出一连串互相调用数据混杂 => 别一半对象, 一半

2021-04-29 22:44:58 242

原创 代码整洁之道(RobertC.Martin)之第五章: 格式

一、前言从明天起, 要加快更新了。现在在带着看深入浅出计算机原理和计算机科学的基础, 后面还有rust和webassembly在等着学, 然后我又报了南京航天航空学校的成人本科。课程安排有java实践, 数据库实践,和算法以及操作系统。 时间真的不够呀。二、格式规范//本章条例较少,因为大多数格式规范都是由一个团队提炼出来。格式很重要 => 编码功能会变, 格式规范却不会变报纸格式 => 诸君应该都看过报纸吧垂直函数 => 关系越近的方法理应越近垂直顺序 => 自上而

2021-04-28 20:16:21 205

原创 代码整洁之道(RobertC.Martin)之第四章: 注释

一、前言本章内容主要为注释规范, 对于内容有删除, 去除了一些不符合我们国情的条例。二、注释规范注释不如美化 => 其实这也是作者想表达的, 用再多的注释 不如一个方法名来的直接注释不如用代码阐释 => 作者对注释其实很反感好注释 => 作者又一次声明了最好的注释就是不写注释警示 => 对于一些测试用例解释(我觉得注释用来警示是个很好的习惯,因为写太多注释我们会反感, 不写可能又会损失部分性能, 所以我一般写注释也只是用来警示)todo注释 => 要做什么却未做

2021-04-27 19:43:25 217

原创 代码整洁之道(RobertC.Martin)之第三章:函数

一、前言本章内容主要为函数 命名, 结构, 和职责规范。二、函数规范短小 => 函数尽可能短小 10行的函数和100行的函数只做一件事 => 五大原则之单一原则每个函数一个抽象层级 => 五大原则之lsp依赖倒置原则swtich语句 => 避免swtich语句使用吧 虽然我之前很喜欢用使用描述性名称 => 不排斥函数长名称函数参数少于三个 => 避免带来过多变化一元函数 => 一个参数二元函数 => 两个参数标示参数 =&g

2021-04-26 19:43:17 220

原创 代码整洁之道(RobertC.Martin)之第二章: 变量

一、前言本段为第二章大体内容解释。本篇均取自代码整洁之道, 有兴趣的可以留言或私信我。二、十四条经典简洁概念//对整洁之道第二章有删减,取出了其中我们常常需要用到的简洁方法名副其实 => 能用变量名就能解释的, 就不要用注释避免误导 => 避免大写O和0, 小写l和大写I, 1和l有意义区分 => info和data query和inquirie(前端重灾区 array1 和array2)即读的名字 => 你来看下这个 fee bee an the entry

2021-04-25 22:44:07 203

原创 代码整洁之道(RobertC.Martin)之第一章: 前言

//其实很多时候, 写代码更像是在创造艺术。–渣男语录一、为什么要写出整洁的代码?曾想过无数种解释, 最后还是用书里的一句话回答:你是个程序员你想成为更好的程序员二、整洁的代码只做好一件事//还没到分析代码的章节继续引用书中的一句话:整洁的代码简单直接。整洁的代码如同优美的散文。整洁的代码从不隐藏设计者的意图,充满了干净利落的抽象和直截了当的控制语句。三、介绍代码整洁之道第一章主要介绍了鲍勃大叔(robertC.Martin)的整洁形成的原因和发展史以及对代码整洁的理解(代码质量

2021-04-23 17:59:25 144

原创 vue小技巧:性能优化使用篇 => 路由/tab切换取消当前页面异步请求

//tab在前端是非常常见的一个组件, 在vue里面, 结合了双向绑定原理, 更是将页面无感刷新提升到了极致//假设每个tab选项都需要请求一次接口(做一次异步操作)//但是假如我们有一个手速超快的人(我摊牌了, 就是我), 他在一秒钟内能切换3次tab选项, 也就是请求了三次接口,然后他又生活在山旮旯里面, 网络请求要3 秒后才能返回结果,他脾气不好, 来回点了9次, 才会有第一个请求的数据返回试问如何保证返回的数据是最后一次切换后的数据一、防抖//不多做介绍, 防抖从原理和可行性上分析,

2021-04-15 19:30:11 2165

原创 vue小技巧: 升级Babel支持可选链和合并空值运算符

//从今天开始, 每天总结一个vue实际开发中的应用点(以下内容是个人认为的最佳实践, 如果有异议, 可以评论留言呐)//当然了, 留言我不一定改, 不留言我肯定不改//重点内容我会加重字体, 可以提炼一、babel作用: (我偷懒了,直接用官网介绍) Babel 是一个工具链,主要用于将 ECMAScript 2015+ 版本的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中。据我所知, 无论是webpack项目还是vite项目都需要使用到babe

2021-04-14 10:47:38 5331 2

原创 js之实现for-in/of循环对象

一、

2021-04-08 18:57:29 1724 1

原创 js面试题:this指向

一、了解this关于this,我们需要了解两点this永远指向一个对象this的指向完全取决于当前执行环境(即该函数被调用的位置)//在一些文档中曾看到过js中this指向被分为n中情况,我个人感觉这是在将简单问题复杂化,解决问题的本质是将问题模型化,简单化,而不是引入多个特殊情况分析用阮一峰曾讲过的一句话,this指向完全取决于当前执行环境二、面试题 var name = "lucy"; var obj = { name: "martin",

2020-11-11 14:33:01 1112

原创 js面试题:隐式转换

一、隐式转换是什么js中转换有两种显式转换(由我们来决定转换方法和类型,所以对数据来讲我更喜欢称这个为被动转换)隐式转换(由数据主动发生转换,而且并没有在代码上体现出来,可以成为主动转换)二、面试题 let result = 1 + null + true + undefined + "TENCENT" + false + [] + undefined + null; console.log(result); console.log([] == fa

2020-06-12 19:05:13 638

原创 js面试题:引用类型赋值地址

今天来学习一下360之前用过的面试题一、js数据类型js有两大数据类型基本类型引用类型//今天的面试题偏向于对引用类型的赋值地址理解二、面试题let x = [12,23] function fn(y){ y[0] = 100; y = [100]; y[1] = 200; console.log(y); } fn(x) con

2020-06-10 19:53:51 615

原创 js面试题:let和var配合定时器中使用

一、let和var的区别//let和var的区别相信列位已经耳熟能详了,在这里不做过多陈述,在第二段将用到的会提及一下二、在定时器中的表现var for (var i = 0; i < 5; i++) { setTimeout(function () { console.log("定时器" + i); }) } //5 * 定时器5let for (let i = 0; i

2020-06-09 20:59:11 870 1

原创 js之深拷贝与浅拷贝

一、拷贝是什么?从生活中理解,拷贝就是用u盘中复制一份文件到电脑中,或者是将某个文件夹的快捷方式发到桌面上。拷贝分为两种浅拷贝深拷贝二、产生浅拷贝与深拷贝的原因浅拷贝就是类似于将一个文件夹的快捷方式发送到桌面上,无论是从桌面上打开还是从路径中打开都是对同一个文件夹的操作。1)从js理解,因为js有基本类型和引用类型之分。基本类型存放在栈内存中引用类型放在堆内存中当我们调用一个变量时,实际上是在栈内存中查询该变量, 此时堆内存中的引用类型将地址放在栈内存中。如果我们调用该引用类型,是

2020-06-03 20:47:07 354

原创 js之防抖和节流

一、防抖//先来了解抖动的原因,比如说我们从家里去往公司上班,正常走十分钟就到了,然后老板说不行,我看你走的太慢,他就一个劲的催,这样我们就只能提高走的频率,跑去公司,到公司后会发现我们身体也累的不要不要的。//现在用户就是那个老板,他搁那死命的按发起请求,然后我们没做任何处理就只能提高频率(身体类似于服务器) <button onclick="request()">发起请求&...

2020-04-14 15:43:02 338

原创 js之有趣的数据类型

本文参考自mdn一、js的8种数据类型 Boolean Null Undefined Number BigInt String Symbol (符号类型 =>该类型在es6被引入,符号类型是唯一的且不可修改,可用作Object的key的值 ) Object二、数据类型特性(常用的就不一一细说了,来分析一些我之前没认识到的)1) BigInt//讲真的,在没有看...

2020-04-12 23:38:16 138

原创 js之版本科普

//经常听到说es6和es2015版本啥的,今天问了度娘,原来是一个东西ECMAScript各版本简介及特性术语ECMAScriptSun(现在的Oracle)公司持有着“Java”和“JavaScript”的商标。这就让微软不得不把自己的JavaScript方言称之为“JScript”。然后,在这门语言被标准化的时候,就必须使用一个与二者都不同的名字。“ECMAScript”就这样诞生了...

2020-04-11 23:25:29 1086

原创 js之三种相等比较方法

//本文参考mdn一、类型化数组是啥JavaScript类型化数组是一种类似数组的对象,并提供了一种用于访问原始二进制数据的机制

2020-04-10 23:07:39 928

原创 js高级特性之一:继承

一、前言前几天学习框架,差点迷失在框架的海洋里面,(前端框架太多了),但是经过一位高人指点,突然觉悟到所有的框架都离不开js语言的本身,精通js,不就等于精通all了吗//随后几天都会在mdn这边扒拉一下js语言高级特性。二、继承的思想(为什么要有继承)在这边借鉴一下阮一峰老师的文章(Javascript继承机制的设计思想)//Javascript里面所有的数据类型都是对象(object...

2020-04-09 22:32:31 94

原创 vue之路由懒加载

一、懒加载是啥懒加载别名延迟加载,即在需要的时候进行加载,随用随载。//在单页应用中,进入首页时,如果需要加载的内容过多,延时过长,不利于用户体验,而运用懒加载则可以将页面进行划分,需要的时候加载页面,可以有效的分担首页所承担的加载压力,减少首页加载用时二、懒加载实现{ path: '/about', name: 'about', component: () => im...

2020-04-07 22:26:07 430

原创 vue路由之导航方式

//今天搞了一天后端接口,测试还是有bug,简单复习vue基础知识点一、两种vue路由导航方式声明式导航 router-link编程式导航二、方式详解声明式导航 router-link 组件支持用户在具有路由功能的应用中(点击)导航。 通过 to 属性指定目标地址,默认渲染成带有超链接的 标签,可以通过配置 tag 属性生成别的标签.。另外,当目标路由成功激活时,链接元素自动设置...

2020-04-06 23:11:53 565

原创 vue之路由守卫

一、路由守卫用来干啥在某些情况下,当路由跳转前或跳转后、进入、离开某一个路由前、后,需要做某些操作,就可以使用路由钩子来监听路由的变化二、路由守卫实现方式//通过路由钩子绑定事件全局路由钩子://进入到某个路由组件之前router.beforeEach((to, from, next) => { //会在任意路由跳转前执行,next一定要记着执行,不然路由不能跳转了 con...

2020-04-05 22:30:51 396

原创 vue的自定义指令

一、vue自定义指令是什么和官方规定好的v-on,v-show,v-if等指令类似,只是名称和方法由我们来定:比如v-focus。自定义指令一般用于对普通 DOM 元素进行底层操作二、vue自定义指令使用方法//分两种注册方式:全局注册和局部注册全局注册Vue.directive('focus', { // 当被绑定的元素插入到 DOM 中时…… inserted: func...

2020-04-04 22:32:38 143

原创 算法:水桶倒水问题

在csdn看到有趣的算法题:5L和6L水桶,如何得到三升水?本篇文章问题是转载 沉晓 写的【大厂智力题】水桶倒水问题//以下是我对这个算法问题的一些个人思考问题:5L和6L水桶,如何得到3L水?首先解析一下题目,已知条件: 水桶 5L 6L 求 3L 水?(刚看到这个题目的时候还是比较头大的,不知道如何下手,但是从逆向思维上看,这个问题的解法应该是只有两个,下面看分析)// 因为我只有2...

2020-04-03 14:07:20 4309

原创 vue之隔代组件通信

今天学习一下vue的隔代组件通信方式,我是找了三篇论文来学习,当然了,方法还有很多。vuex和和本地存储都能实现。对于一个程序员来说,实现一个需求的方式有n多种,但是思路肯定是那么几个。这里就选了三种方法来拓展思路。一、 $attrs和 $listeners打开$attrs和 $listeners的详细讲解二、provide/inject打开provide/inject的详细讲解三、ev...

2020-03-30 22:28:55 1967

原创 vue之组件通信方式(兄弟组件)

今天回顾一下vue组件中兄弟组件如何实现通信一、ref实现组件通信//在兄弟组件之间的通信,可以采用关系链和ref链去使用,解决兄弟之间通信问题。//html布局 <div id="app"> <big-brother ></big-brother> <hr> <litte...

2020-03-29 21:02:55 1553

原创 vue之路由

今天先写个对vue路由的理解,明天接着写vue兄弟组件通信方式一、vue的路由是什么在之前已经写过了express的路由理解,这两者本质都是一个中间件//在这里查看express路由理解二、vue路由结构现在的应用都流行单页面应用=>SPA(Single-page application),vue就是使用该结构//还用一种应用叫做多页面应用=>MPA(Multi-page ...

2020-03-28 21:36:43 78

原创 vue之组件通信方式(父子组件)

//昨天是回顾了组件,但是组件之间是相互独立的,这时就需要使用通信方式实现数据传递 组件之间的关系有兄弟/父子/隔代关系(今天回顾一下父子之间的通信方式)一、父子之间的通信//父子之间通信可分为两种(父 => 子/子 => 父)父 => 子(props方法)//html布局 <div id="app...

2020-03-27 23:43:39 107

原创 vue之组件

一、vue的组件//在vue中,我们通过Vue.extend来创建Vue的子类,这个东西其实就是组件。//组件分为:全局组件和局部组件(全局组件在任意的实例、父级组件中都能使用,局部组件只能在创建自己的父级组件或者实例中使用)全局组件注册(2种写法)//其一let App = Vue.extend({ template:"<h1>hello world</h1>"})Vue.component('my-app',App)//其二Vue.component('

2020-03-26 23:00:07 67

原创 前端学习总结

//今天是我的一些个人分享,想看技术文章的,请移步吧最近几天在学习vue框架,刚开始的时候感觉vue是比较难的。但是随着后面的深入,越发的感觉对于我们前端开发人员来说,框架是一个提升效率的工具(类似神器)。从现实意义讲,工具肯定是易于学习,容易操作的。vue也是这样的工具性质。学会用一个框架不难,难的是如何去get到这个框架的精髓。比如说现在的...

2020-03-25 23:56:57 174

原创 vue之生命周期函数

//今天学习一下vue的几个生命周期函数一、vue生命周期官方的构图总结:上图所示有beforeCreate, created, beforeMount, mounted, beforeUpdate, updated, beforeDestory, destoryed8个函数//记住这八个函数有个很快的方法:一共有四对beforeCre...

2020-03-24 23:15:29 269

原创 vue之虚拟DOM

//来学习下vue的虚拟dom好好学习,天天向上。中国加油,武汉加油,千峰加油!

2020-03-23 23:38:46 110

原创 vue之三种请求资源方式

//今天回顾一下vue的三种请求资源方式(vue-resource.fetch,axios),并且学习一下第三种axios方式的封装一、vue-resource请求//从vue的2.0开始,作者表示vue-resource不再维护了(所以这个会使用即可)get请求<div id="app"> <ul>...

2020-03-22 23:15:09 1035

原创 vue之mvvm双向绑定

//学习vue之后对vue的mvvm双向绑定模式有了一些更深入的了解一、mvvm是什么mvvm的调用方式:在ViewModel当中会有一个叫 Binder的东西。你只需要在View的模版语法中,指令式地声明View上的显示的内容是和Model的哪一块数据绑定的。 当ViewModel对Model进行更新的时候,Binder会自动把数据更新到...

2020-03-21 23:19:51 209

原创 vue之回顾条件/列表渲染指令

//今天回顾一下vue的几种指令的用法(1) v-if在Vue中可以使用v-if来控制模板里元素的显示和隐藏,值为true就显示,为false就隐藏v-if控制的是 是否渲染这个节点(2) v-else v-else-if当有else分支逻辑的时候,可以给该元素加上v-else指令来控制,v-else会根据上面的那个v-if来控制,效果与...

2020-03-20 23:19:51 116

原创 vue之实现todolist

//今天实现todolist(不懂得童鞋可以百度todolist看一下效果)一、页面布局<head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> ...

2020-03-19 23:26:20 163

原创 vue项目之实现localstorage版本的商品管理

//今天来做个简单的商品添加管理页面(用vue和localStorage实现)首先来了解下vue的几个指令:{{}} =>插值​ v-bind 动态绑定属性 => 缩写 :属性​ v-if 动态创建/删除​ v-show 动态显示/隐藏​ v-on:click 绑定事件 => 缩写 @事...

2020-03-18 23:33:24 206

原创 node初学之感悟

//最近几天学习node学的头有点大,所以写篇文章来描述一下我对node的看法一、node是前端还是后端语言之前我一直以为node是属于前端工程师必学的一部分,但初步学习之后,我个人感觉这种东西还是留给以后深入后端了再去研究吧,node完全就是一个披着前端JavaScript语言的后端语言。它的语法虽然是以js为根本,但是在使用时,完全是后端的...

2020-03-17 23:21:58 268

原创 node之封装mangodb

//学习封装之前,我感觉有必要说明一下封装的意义。我个人的理解是对于一个对象 => **封装的意义就在于实现复用性和可拓展性**//今天就来学习一下用node来封装对mangodb的操作一、需要封装的行为let mongodb = require("mongodb")let mongodCt = mongodb.MongoCl...

2020-03-16 23:14:09 118

原创 node之mangodb(拓展版)

//昨天只是介绍了最基础的数据库操作方法,今天来回顾一下进阶版一、集合//集合就是俗称的表建表:db.createCollection('表名',{配置}) //配置:{size:文件大小,capped:true,max:条数|文档数} capped定量 //db.表(集合).isCapped() 返回 true/false 是否是定量...

2020-03-15 23:51:56 133

空空如也

空空如也

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

TA关注的人

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