自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 问答 (1)
  • 收藏
  • 关注

原创 《你不知道的JS(05)》---作用域闭包

1.闭包的基本概念1.1 什么是闭包(闭包的形成)当函数可以记住并访问所在的词法作用域,即使函数是在当前词法作用域之外执行,这时就产生了闭包。(也可以说闭包是:函数可以访问不属于自身作用域范围内的变量 的现象)1.2 闭包的应用场景定时器,事件监听,ajax,跨窗口通信,Web Workers【tips】在上述应用中,只要使用了回调函数,就是在使用闭包回调函数: 被作为实参传入另一函数,并在该外部函数中被调用,用以来完成某些任务的函数2.闭包与循环2.1 循环中的顺序流// 依次输出1

2021-04-05 10:17:26 334

原创 《你不知道的JS(04)》---提升

提升1.为什么会存在“提升”编译器的工作: 根据第一章中的介绍,我们可以知道,引擎会在JS代码执行之前首先对其进行编译。编译阶段其中一部分工作就是找到所有的声明,并用合适的作用域将它们关联起来。编译完后才执行: 包括变量和函数在内的所有声明都会在任何代码执行之前首先被处理(代码虽是顺序执行,但它是在编译完成之后才开始的)仅声明提前: 声明和赋值是两件事,即使它们被写在同一行代码里,eg:var a = 2;上述代码会被看成两句话:var a和a = 2,其中var a变量a的声明会在编译阶段完

2021-04-05 10:15:21 290

原创 《你不知道的JS(03)》---函数作用域和块作用域

1.函数作用域1.1 函数作用域的含义属于这个函数的全部变量都可以在这个函数的范围内使用及复用(包括嵌套的作用域)。题外提一点:这充分利用了JS变量能够根据需要改变值类型的“动态”特性。2.函数存在的意义——隐藏内部实现2.1 隐藏内部实现的意义遵循软件设计中“最小暴露”原则,保持变量原有的私有特性规避同名标识符之间的冲突,避免其导致的值错误覆盖等问题2.2 隐藏内部实现的常用方法全局命名空间: 在导入第三方库时,这些库通常会在全局作用域中声明一个名字足够独特的变量,通常是一个对象,这

2021-04-05 10:13:52 333

原创 《你不知道的JS(02)》---词法作用域

1 词法阶段1.1 什么是词法阶段编译器的第一个工作阶段,即上一章中编译原理的第一步:将字符串拆分成有意义的词法单元的过程。1.2 什么是词法作用域在词法阶段定义的作用域。也就是说,词法作用域仅由你在书写代码时将变量和块作用域写在哪有关,与它在哪被调用或如何调用无关。1.3 词法作用域可以更改吗原则上来讲,变量和块作用域在定义时其词法作用域就已经生成了,大部分情况下是不可更改的。但事实上有一些欺骗词法作用域的方法,虽然保持词法作用域根据书写位置生成的自然关系不变是最佳实践。1.4

2021-04-05 10:12:01 126

原创 《你不知道的JS(01)》---作用域是什么

1.编译原理1.1 在传统编译语言的流程中,程序中的一段代码在执行前,都要经历以下三个步骤:分词/词法分析:简单来讲,就是将字符组成的字符串分解成(对编程语言来讲)有意义的代码块,即词法单元。解析/语法分析:将词法单元流(数组)转换成一个由元素逐级嵌套所组成的代表了程序语法结构的树(AST,Abstract Syntax Tree 抽象语法树)。代码生成:将AST转换成可被执行的代码的过程。对于编译原理,了解到这里差不多,若时间充裕可另行研究。1.2 JS与其他语言编译时的不同之处:J

2021-04-05 10:10:32 136

原创 Antd Pro食用笔记(一)——基本使用

Antd Pro使用笔记初始化一个antd pro项目【TIPS】可下载一个simple版本,一个complexe版本以供对照使用熟悉一下antd pro使用了哪些东西React + umiJS(可插拔应用框架)+ Ant Design(UI库) + DVA(类似于redux)实际操作新建一个页面接入后台服务器数据关闭mock数据,使用代理yarn start:no-mock...

2021-03-22 11:52:49 7969 9

原创 share.js使用注意事项

一、使用步骤——正确打开方式在阅读以下内容时,希望您可以先去了解:share.js使用文档:https://github.com/overtrue/share.js本文不涉及较全面的使用教程,仅是一些容易导致插件使用失败的注意事项1.引入四种方式:npm、bower、cdnjs、引入源文件1)npm// npmnpm install social-share.js2)bower// bowerbower install social-share.js3)使用.

2020-06-12 11:18:44 2022 4

原创 同一页面多个注册入口的实现(JQ实现/接口已知)

前言之前写过一篇注册的前后端验证,逻辑不是特别清晰。恰巧最近遇到手头项目需要在同一页面实现多个注册入口,遂重新梳理了下思路,特在此再次记录。【TIPS】本篇仅含前端逻辑代码,接口由后端提供。功能实现1.HTML结构 <div class="reg-con" id="0"> <!--id重点!区分不同“注册组”--> <div cla...

2019-09-12 17:19:02 922

原创 汉诺塔递归解法

解题思路:1)当只有一个圆盘时,只需将其从来源塔A移至目标塔C(不需要借助辅助塔B)2)当有两个圆盘时,需要先把1号圆盘移至辅助塔B,将2号圆盘移至目标塔C,再将辅助塔B上的1号圆盘移至目标塔C即可。3)当有三个圆盘时,需要先把1号~2号圆盘移至辅助塔B,将3号圆盘移至目标塔C,再将辅助塔B上的1号~2号圆盘借助来源塔A移至目标塔C即可。...n)当有n个圆盘时,需要先把1号~...

2019-08-06 14:39:29 260

原创 CSS3 skew斜切效果详解

前言之前一直没理解到这个变形的原理,加之项目上用的很少,就一直没花时间去梳理(这是个坏习惯!),今天趁着又看到了,赶紧来整理整理。原理其实原理很简单,只要手边有纸有笔(或者抽象思维比较好的也可以在脑子里画,反正学渣本渣是不行的)画出来就可以了。举个栗子,下图是例图:图1图形仅在水平方向上变形(垂直方向上的高度不变)。 例如,skewX(30deg)就会把图片从图2变为图...

2019-07-17 17:37:15 3934

原创 几个炫酷且实用的CSS动画效果

一、鼠标滑入文字逐个渐入效果图:鼠标滑入文字逐个渐入鼠标滑入按钮时,按钮中原本的文字从下方滑走,同时在原位置上,按钮文字单个挨个浮现。(原本文字和后面单个浮现的文本内容可不一致,可根据需要进行调整)。实现思路:用div模拟button按钮,并将按钮文本单个单个的放在其子元素span中,用于后面的单个显示。而鼠标没有触发时的静止状态文本则由div按钮的伪类::before来承担。在静...

2019-07-11 16:20:09 6088 9

原创 小图标和文字天然对齐(《CSS世界读书笔记》)

之前的理解(错误理解):line-height可以实现内联元素的垂直居中效果,所以给span一个与高度相等的行高值,这样图片和文字的“高度”就相等了,文字也自然垂直居中了。但是这个理解是错误的,这其中其实隐藏了很深的原理:原理:一个display: inline-block元素,如果里面没有内联元素,或者overflow不是visible,则该元素的基线就是其margin的底边缘;...

2019-06-14 17:19:41 644

原创 深入理解margin: auto填充特性(《CSS世界读书笔记》)

margin: auto的填充规则:一侧定值(包括不设定值取默认值0的情况),另一侧auto,那么另外一侧的margin为剩余空间大小 两侧auto,则平分剩余空间基于以上规则,可以得出:margin属性的auto可以实现块级元素左中右对齐(且与浮动实现对齐相比为最佳实践)。<div class="father"> <div class="son">&...

2019-06-13 14:06:08 1048

原创 三种方法实现两栏等高自适应布局(《CSS世界读书笔记》)

前言本文为张鑫旭《CSS世界》读书笔记,代码实现思路亦来源此书。效果需求:实现两栏布局,要求无论哪一栏的内容多,两栏高度均以最高一栏为准,两栏的背景色需和容器高度相等,即竖直方向铺满容器。【TIPS】这里为什么不用height: 100%呢?原因在于必须给父元素设定具体高度值,此属性值才会起作用,但大部分情况下,我们是不太会给父元素的高度定死的。代码实现:方法一:使用 di...

2019-05-21 14:11:57 2439

原创 低版本浏览器flex布局简易替代方案

需求:实现以下布局IE10以上可采用最为简单粗暴的flex弹性布局,具体如何做,请移步百度;若要兼容IE8+可使用“宽度分离”或者特定场景下使用格式化宽度来实现宽度分离:在不考虑box-sizing属性下,宽度分离是保证元素尺寸改变不影响布局的良好解决方案,甚至在某种情况下比box-sizing具有更好的表现。具体原则是:width属性不与影响宽度的border、padding(有...

2019-05-06 15:54:22 1153

原创 CSS3变量currentColor浅析

定义currentColor是CSS3中的变量,它表示“当前的标签所继承的文字颜色”。!tips:“当前颜色” 指本体color , 如果没有设置color就找父元素,一级一级找,一直到根元素位置。基本使用<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8">...

2019-04-11 17:48:49 3721

原创 2048游戏简单实现

前言最近突然心血来潮想写一个网页小游戏,我看网上有很多人推荐写2048来练练手,遂开始写。目前为止,基本功能已经实现,只是没有添加相应的动画效果,待以后有机会补上(其实我就是动画这块太菜了 T_T)前方长文预警!!!游戏截图项目结构这个项目结构挺简单的,应该也都看得懂,在此仅对js文件夹进行描述,其余的就不再赘述啦(main.js是入口文件,move.js主...

2019-04-09 11:36:07 6956

原创 hogan.js模板语法及数据渲染

前言之前写项目一直用的框架,最接近原生的可能就是JQ+Bootstrap写的PC端网页了。但最近的项目用的是原生JS+JQ库实现,少了框架的便捷,感觉填充数据就成了一个"痛苦"的活儿(说来说去,还是JS基本不是太牢的过,(逃...)。前期熟悉代码时,我发现项目中引用了一个叫做hogan.js的东西,上网查查才发现,这东西作用和框架的思想其实很接近,虽然使用中还是有些不太方便,但是有总比没有好啊...

2019-03-14 11:20:17 1090 12

原创 wangEditor的基本使用及踩坑记录

前言最近写项目用到了富文本编辑器,在同事的建议下,采用了wangEditor3,在此记录下使用wangEditor3的基本步骤以及遇到的一些问题基本使用基本使用步骤原作者已讲的非常详细,如有需要,移步----->wangEditor3使用手册下载直接下载:https://github.com/wangfupeng1988/wangEditor/releases 使...

2019-03-14 10:45:12 16806 21

原创 将自己的博客推送到GitHub并绑定域名

GitHub相关设置注册GitHub账号,打开GitHub,点击右上角sign up注册个人账号,SSH key配置步骤如下: 新建SSH Key 在桌面右键选择git bash here 创建本地ssh key,输入以下命令: 1 ssh-keygen -t rsa -C "邮箱" 回车,然后...

2018-12-09 13:58:34 322

原创 hexo+GitHub搭建个人博客

hexo介绍及node环境检测特点:快速、简洁且高效的博客框架环境:基于node(v8.11.3)环境及检测:win+R输入cmd回车cmd窗口输入node -v回车如果提示node不是内部或者外部命令,则需要重新安装node安装node环境:下载8.11.3版本双击下载得到的mis文件,全程next安装安装git(版本控制器)qq群文件找安装包文件网站下...

2018-12-09 13:55:17 190

原创 用户注册信息验证功能(前端+后台)

一、写在前面罗里吧嗦的话最近在写自己的第一个个人项目,开始写了很久了,但是每天没啥时间记录,趁着周末先记录一些思路和踩过的坑。项目预计是做一个关于家装的电商网站,样式参考自土巴兔网站(我不是打广告!)。目前写了几个静态页面,写得有点审美疲劳,遂决定写一写后台JS换换心情~之前听师兄说登录注册俩小时就能搞定,想一想不如就先写登陆注册吧,反正用不了多久。好吧,事实光速打脸了,我怎么就把自己...

2018-11-10 23:36:15 23502 7

原创 软件开发周期及服务器浅析

一、软件开发生命周期定义软件的生命周期,是指软件从设计开发到上线运营再到停止使用的完整过程,分为“三个时期八个阶段”,分别为:可行性研究阶段 | 需求分析阶段   ----&gt;  软件定义期概要设计阶段 | 详细设计阶段 | 开发实现阶段 | 项目测试阶段  ----&gt;  软件开发期部署阶段 | 维护阶段  ----&gt;  软件维护期二、软件开发生命周期详细介绍:...

2018-08-19 15:32:57 1460

原创 【数组】将一串整型数转换为人民币读法

最近在啃《疯狂Java讲义》,看到第四章有一道题RT,“折磨”了我这只菜鸟两天时间,到现在终于有点样子了,先记录下来,由于此时没有看书后面的章节,很多知识点还不甚清楚(谁让我在学校上Java的时候水了一波呢,0.0),所以等以后知识点了解得更多的时候再回来重新理一理逻辑,各位看官若觉得有简化的逻辑可tell me,3q~主要思路为:中国的数字是每四位一节,一个四位数可以转化为几千几百几十几...

2018-02-07 21:03:56 352

原创 程序设计C 实验五 题目二 班级课程成绩计算(0617)

一个班有N名学生,每个学生修了五门课。 1)求每个学生的平均成绩,并输出每个学生的学号,每门课程的成绩及平均值。 2)求某门课程的平均分; 1、分别编写2个函数实现以上2个要求。 2、第1个函数用数组名作参数。第2个函数用指针用参数,并在函数体内用指针对数组操作。Description第一行:输入N,代表N名学生 下面N行,每行有6个数据分别为:学号,英语成绩,数学成绩,C++

2017-10-19 14:18:24 7843

原创 程序设计C 实验五 题目四 二维动态数组转置(0294)

输入两个数字分别控制行向量个数和列向量个数。动态生成二维矩阵,对矩阵赋值后将其转置输出。Description输入的第一行为了两个整数m、n,接下来有一个由m*n个数据组成的整数矩阵。Input按转置后的矩阵格式输出转置矩阵(n*m)。Output123453 21 23 4

2017-10-19 14:16:38 791

原创 程序设计C 实验五 题目五 一维动态数组的应用(0293)

Time limit(ms): 1000Memory limit(kb): 65535Submission: 13295Accepted: 5193Accepted输入一数字,用其控制一个数组的长度,而后将数组中的小写字母转换成大写字母,大写字母转换成小写字母,其余字符不变。Description连续输入多个测

2017-10-19 14:12:56 833

原创 程序设计C 实验四 题目一 排序查找(0616)

用选择法对N个学生的成绩按从大到小的顺序排序,N个学生的成绩整数用scanf 输入,输入的成绩在[0,100]之间。排序完成后,输入一个成绩,要求用逐个比较查找的方式找出该成绩是该组中第几个元素的值(即第几名)。如果该成绩不在数组中,则输出“no this score!”。 要求: 1、把排序算法写成函数形式,在主函数中输入N个数据,然后调用排序函数排序。 2、在排序过程中尽量减少数据的交换和

2017-10-19 14:11:02 1154

原创 程序设计C 实验四 题目四 求组合数(0082)

编写一个函数,求从n 个不同的数中取r 个数的所有选择的个数。

2017-10-19 14:08:41 2637

原创 程序设计C 实验三 题目六 统计出现最多次的字母(0288)

给定一个只有小写英文字母组成的字符串,串长为n。请你编写程序求出这个字符串中出现次数最多的字母。

2017-10-19 14:05:44 1412

原创 程序设计C 实验三 题目八 one + two = 3(0287)

读入两个小于100的正整数A和B,计算A+B。需要注意的是:A和B的每一位数字由对应的英文单词给出。

2017-10-19 13:59:23 1775

原创 程序设计C 实验三 题目二 距阵相乘(0074)

Description输入两个大小为3*3的距阵Input输出一个大小为3*3的距阵,矩阵每一行相邻的的两个数字之间由一个空格隔开。具体的请详见 Sample OutputOutput121 2 3 3 2 1 1 1 11 1 1 1 2 3 1 2 3Sample I

2017-10-19 13:52:50 619

原创 程序设计C 实验二 题目三 计算生日是星期几(0078)

Description输入一个日期,包括年、月、日。(一组测试数据)Input输出这个日期是星期几。Output1231 1 12 1 12006 7 10Sample Input123MondayT

2017-10-19 13:51:02 3157

空空如也

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

TA关注的人

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