自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yangyang的专栏

你今天写了多久的代码?

  • 博客(541)
  • 资源 (3)
  • 收藏
  • 关注

原创 前端安全:XSS和CSRF

1.概念XSS:Cross Site Script,中译是跨站脚本攻击CSRF:Cross-site request forgery,中文为跨站请求伪造XSS 攻击是指攻击者在网站上注入恶意的客户端代码,通过恶意脚本对客户端网页进行篡改,从而在用户浏览网页时,对用户浏览器进行控制或者获取用户隐私数据的一种攻击方式。CSRF是一种劫持受信任用户向服务器发送非预期请求的攻击方式。通常情况下,C...

2019-07-09 17:37:49 1110

原创 JavaScript中的ReferenceError和TypeError两种错误的区别

作为前端工作人员,在调试JavaScript程序的时候经常遇到两个错误:ReferenceError和TypeError。下面就对我这两种错误说说我的见解1.首先:字面上的意思分别为引用错误和类型错误;2.作用域:ReferenceError就是在作用域中找不到、TypeError是在作用域中找到了但是 做了它不可能做的事情。原文:https://blog.csdn.net/wangmumu...

2019-07-08 14:12:23 1176

原创 JavaScript中利用原型链继承时construtor的修正

主要问题是:为何要做A.prototype.constructor=A这样的修正?参考前两个链接就可以大致了解。我们知道,每个函数都有默认的prototype,这个prototype.constructor默认指向的就是这个函数本身。在未给Woman指定Person作为原型之前,Woman.prototype.constructor或者woman.proto.constructor指向的就是W...

2019-07-04 23:43:18 373

原创 JavaScript中instanceof和constructor

我们知道JavaScript中typeof,instanceof,Object.prototype.toString可以用来检测变量类型,我们针对instanceof和constructor再来讲一讲他们在实例和原型中的使用。我们先看一段代码:function Ninja(){}const ninja = new Ninja();typeof ninja === object //tr...

2019-07-04 23:19:08 410

原创 Express中EJS模板

1.先看一个简单的例子// index.js文件var express = require('express');var router = express.Router();/* GET home page. */router.get('/', function(req, res, next) { res.render('index', { title: 'Express' });...

2019-07-02 00:42:09 1111

原创 JavaScript版《剑指offer》刷题(19)包含min函数的栈

题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。题目分析我们把每次入栈,和之前栈内数据比较,把每次的最小元素都保存起来放到另外一个辅助栈里。代码/*题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。要求:在该栈中,调用min、push、pop的时间复杂度都是O(1)。*///用一个辅助空间,保存每次推入时的最小值情况...

2019-06-30 21:55:55 186

原创 JavaScript版《剑指offer》刷题(18)顺时针打印矩阵

1.题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.2.题目分析首先我们需要把这个复杂的问题分解为简单的问题,打印矩阵也就是一圈一圈的打印出来,所以我们需要解决的问题就是:...

2019-06-30 21:06:42 279

原创 JavaScript版《剑指offer》刷题(17)二叉树的镜像

题目描述操作给定的二叉树,将其变换为源二叉树的镜像。相关知识二叉树的镜像定义:源二叉树镜像二叉树思路1.有关二叉树的算法问题,一般都可以通过递归来解决。那么写一个正确的递归程序,首先一定要分析正确递归结束的条件。2.先前序遍历这棵树的每个结点,如果遍历到的结点有子结点,就交换它的两个子节点;3.当交换完所有的非叶子结点的左右子结点之后,就得到了树的镜像代码//1.第一种方...

2019-06-30 19:20:03 133

转载 网易云音乐mp3外链、真实地址下载方法

可以参考:https://www.cnblogs.com/MirageFox/p/7995929.html

2019-06-29 15:46:31 11693

原创 百度地图中覆盖物的信息窗口和跳转

我们的目标是点击覆盖物弹出信息窗口,然后点击信息窗口中部分区域进行跳转,如下图:先看百度demo,如下图:主要代码如下:<script type="text/javascript"> // 百度地图API功能 map = new BMap.Map("allmap"); map.centerAndZoom(new BMap.Point(116.417854,39.921...

2019-06-25 19:49:28 1981

原创 JavaScript版《剑指offer》刷题(16)树的子结构

1.题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)2.思路二叉树子结构的意思是包含了一个结点,可以只取左子树或者右子树,或者都不取。例如:由于A中有一部分子树的结构和B是一样的,因此B是A的子结构。思路:1.有关二叉树的算法问题,一般都可以通过递归来解决。那么写成一个正确的递归程序,首先一定要分析正确递归结束的条件。2.如果根节点...

2019-06-21 15:27:15 151

原创 JavaScript版《剑指offer》刷题(15)合并两个排序的链表

1.题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。2.题目分析重点抓住这两个链表都是单挑递增的,因此我们只需要不断地比较他们的头结点就行,明显这是个重复的过程。可以用递归做,也可以不用递归做,不用递归做只需要用两个指针来一直指向两个链表的“头”结点就行了3.代码/* function ListNode(x){ this.val...

2019-06-21 15:08:49 177

原创 JavaScript版《剑指offer》刷题(14)反转链表

1.题目描述输入一个链表,反转链表后,输出链表的所有元素。2.思路next = head.next; // 1head.next = pre; // 2pre = head; // 3head = next; // 4第一行代码:next = head.next;将head.next赋值给next变量,也就是说next指向了节点2,先将节点2保存起来。第...

2019-06-21 14:34:56 276

原创 JavaScript版《剑指offer》刷题(13)链表中倒数第k个结点

1.题目描述输入一个链表,输出该链表中倒数第k个结点。2.思路题目:输入一个链表,输出该链表中倒数第k个节点。要求:为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第一个节点。例如:一个链表有6个节点,从头节点开始,他们的值依次是1、2、3、4、5、6.这个链表的倒数第三个节点是值为4的节点。通用思路:当我们用一个指针遍历链表不能解决问题的时候,可以尝试用两个指针...

2019-06-21 09:36:00 139

原创 JavaScript版《剑指offer》刷题(12)调整数组顺序使奇数位于偶数前面

1.题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。2.思路1.新建两个数组,分别用来存放奇数和偶数;2.将偶数的数组连接到奇数数组后面。3.代码function reOrderArray(array){ var odd = []; va...

2019-06-21 09:07:02 108

原创 JavaScript版《剑指offer》刷题(11)数值的整数次方

1.题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。2.题目分析这道题用传统的方法也可以做,只不过效率太低,这里我们用到快速幂的方法。快速幂,原理如下:好了,此外再说一句,对1进行按位与,可以判断二进制数最右边的位数是否为1,因此也可以判断奇偶数,因为奇数最后一位一定为1。3.代码思路:1.考察指数的正负以及底数...

2019-06-20 10:19:09 148

原创 JavaScript版《剑指offer》刷题(10)二进制中1的个数

1.题目描述2.题目分析3.代码参考文章:https://www.cnblogs.com/wuguanglin/p/NumberOf1.htmlhttps://www.cnblogs.com/echovic/p/6430668.htmlhttps://github.com/DavidChen93/-offer-JS-/blob/master/15.1 二进制中1的个数.js...

2019-06-20 09:38:12 200

原创 慕课网Vue2.5去哪儿实战课程(5)

9.项目实战-旅游网站详情页面开发9.1动态路由和banner布局9.2公用图片画廊组件拆分9.3实现Header渐隐渐显效果9.4对全局事件的解绑9.5使用递归组件实现详情页列表10.项目实战-项目的联调,测试与发布上线...

2019-06-19 22:00:36 624 2

原创 Express中带有参数的路由请求req.query、req.body、req.params

我们的需求是:我们循环遍历出所有用户和密码,我们打算点击删除之后将对应的ID作为参数传输到对应的路由,处理之后,地址重定向也就是页面刷新,数据重新显示。前端代码: <table border="1" style="width:300px;margin:0 auto;margin-top:10px;"> <tr> <td style="te...

2019-06-18 16:33:35 14055

原创 Express中res.location和res.redirect

1.res.location(path)Sets the response Location HTTP header to the specified path parameter.res.location('/foo/bar')res.location('http://example.com')res.location('back')A path value of “back” ha...

2019-06-17 14:02:03 2001

原创 Express中app.locals和res.locals

1.app.localsThe app.locals object has properties that are local variables within the application.app.locals.title// => 'My App'app.locals.email// => 'me@myapp.com'Once set, the value of ...

2019-06-17 13:12:46 2207 1

原创 CommonJs、AMD、CMD和ES6模块化

参考文章:https://segmentfault.com/a/1190000011063732#articleHeader8https://www.cnblogs.com/snandy/archive/2012/03/09/2386092.html

2019-06-13 21:26:44 112

原创 JavaScript中constructor属性

1.引言我们先看两段代码:function Ninja(){ }; const ninja = new Ninja();//1.ninja.constructor === Ninja; //true//2.const ninja2 = new ninja.constructor();ninja2 instanceof Ninja; //true第一段代码:所有实例...

2019-06-12 21:50:35 642

原创 前端面试知识点大全

参考文章:https://blog.csdn.net/sinat_36521655/column/info/29988

2019-06-12 20:02:38 188

原创 JavaScript版《剑指offer》刷题(9)矩形覆盖

1.题目描述我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?2.题目分析1.先上图:  2*1的大矩形和2*n的小矩形:2. 第一次覆盖有两种情况:  横着覆盖:竖着覆盖:3. 由此可得:当第一次横着覆盖时,覆盖方法为f(n-2),配合上图理解;当第一次竖着覆盖时,覆盖方法为f(n-1),配...

2019-06-12 19:25:41 153

原创 JavaScript版《剑指offer》刷题(8)跳台阶

1.题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。2.题目分析题目很简单,稍微分析就知道这是斐波那契数列,所以可以动态规划来做a.如果两种跳法,1阶或者2阶,那么假定第一次跳的是一阶,那么剩下的是n-1个台阶,跳法是f(n-1);b.假定第一次跳的是2阶,那么剩下的是n-2个台阶,跳法是f(n-2)c.由a\b假设可以得出总跳法为: ...

2019-06-12 18:49:54 152

原创 JavaScript版《剑指offer》刷题(7)斐波那契数列及其优化

1.题目描述

2019-06-12 15:10:07 229

原创 JavaScript版《剑指offer》刷题(6) 旋转数组的最小数字

1.题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。2.题目分析第一种方法:我们发现旋转数组在旋转后,有个分界点,而这个分界点就是最小的那个数。第二种方法...

2019-06-12 14:11:10 162

原创 JavaScript版《剑指offer》刷题(5)用两个栈实现队列

1.题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。(也就是操作这两个“先进后出”的栈实现一个“先进先出”的队列)2.题目分析栈是先进后出,队列是先进先出,因此两个栈,一个用来push,一个用来pop,同时注意下两个栈不为空的时候。思路:入队:将元素进栈1;出队:判断栈2是否为空,如果为空,则将栈1中所有元素pop,并push进栈2,栈2出栈...

2019-06-12 11:50:15 146

原创 JavaScript版《剑指offer》刷题(4)重建二叉树

参考文章:https://www.cnblogs.com/wuguanglin/p/reConstructBinaryTree.htmlhttps://wenhuiyang-luck.github.io/2017/07/24/《剑指offer》— JavaScript(4)重建二叉树/https://www.jianshu.com/p/ecf61a11f412https://blog.cs...

2019-06-12 10:38:24 118

原创 JavaScript中位运算符

参考文章:https://www.cnblogs.com/xiaohuochai/p/5668004.htmlhttps://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Bitwise_Operatorshttps://developer.mozilla.org/zh-CN/docs/Web/Java...

2019-06-11 13:48:52 1033

原创 JavaScript版《剑指offer》刷题(2)替换空格

题目描述:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。题目分析:我们如果要替换空格,两步:1先知道空格的位置,2替换,但是字符串中有多个空格,所以我们就要循环,替换完之后再去查找字符串空格位置当然你也可以选择用正则代码:function replaceSpace(str){ ...

2019-06-10 23:41:20 147

原创 JavaScript版《剑指offer》刷题(3)从尾到头打印链表

参考文章:https://www.cnblogs.com/wuguanglin/p/printListFromTailToHead.html题目描述:输入一个链表,从尾到头打印链表每个节点的值。题目分析:比较简单,主要注意下从尾到头,可以用栈可以用递归,我给出我比较喜欢的代码吧代码:function ListNode(x){ this.val = x; this.next = nu...

2019-06-10 23:38:54 152

原创 JavaScript版《剑指offer》刷题(1)二维数组的查找

参考文章:https://www.cnblogs.com/wuguanglin/p/2dArrayFind.html题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。题目分析:题目不难,而且给出的限制也很小,我一开始试试用了暴力逐步循环发现也能通过,但是这题目设计的...

2019-06-10 23:18:11 148

原创 声明提前和函数声明/变量声明权重

1.同名的变量声明,JavaScript采用的是忽略原则,后声明的会被忽略,变量声明和赋值操作只有声明会被提前,默认为undefined。console.log(a);var a = 1;console.log(a);var a = 2;undefined12.同名的函数声明JavaScript采用的是覆盖原则,后声明的会覆盖前面的。console.log(a())funct...

2019-06-10 09:41:20 413

原创 声明提前和函数声明/变量声明权重

1.同名的变量声明,JavaScript采用的是忽略原则,后声明的会被忽略,变量声明和赋值操作只有声明会被提前,默认为undefined。console.log(a);var a = 1;console.log(a);var a = 2;undefined12.同名的函数声明JavaScript采用的是覆盖原则,后声明的会覆盖前面的。console.log(a())funct...

2019-06-10 09:41:20 164

原创 JavaScript中this参数

this参数的指向不仅是由定义函数的方式和位置决定的,同时还严重受到函数调用方式的影响。我们接下来讨论不同调用方式对this的影响。1.作为一个函数调用在非严格模式下,this是全局上下文(window对象)在严格模式下,this是undefined2.作为方法调用当函数作为某个对象的方法被调用时,该对象会成为函数的上下文,并且在函数内部可以通过参数访问到3.作为构造函数调用新的空对...

2019-06-06 14:45:06 2146

原创 JavaScript正则表达式

1.简介regexper-static:https://github.com/javallone/regexper-staticregexper-static安装:https://www.imooc.com/qadetail/214086正则表达式30分钟入门教程:http://deerchao.net/tutorials/regex/regex.htm在线正则表达式测试:http://...

2019-06-05 16:19:36 141

原创 JavaScript中script元素的async和defer属性

先来试个一句话解释仨,当浏览器碰到 script 脚本的时候:1.<script src="script.js"></script>没有 defer 或 async,浏览器会立即加载并执行指定的脚本,“立即”指的是在渲染该 script 标签之下的文档元素之前,也就是说不等待后续载入的文档元素,读到就加载并执行。2.<script async src="scri...

2019-06-04 16:43:48 567

原创 JavaScript中reduce使用

1.reduce介绍reduce() 方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。reducer 函数接收4个参数:1.Accumulator (acc) (累计器)2.Current Value (cur) (当前值)3.Current Index (idx) (当前索引)4.Source Array (src) (源数组)您的...

2019-06-03 09:38:59 1072

droidAtScreen-1.2.jar

APP手机演示时电脑同步的软件

2016-05-21

百度地图的路线规划的实现

百度地图的路线规划功能的实现

2016-05-15

PHPEclipse环境搭建

PHPEclipse环境搭建,环境配置,还有遇见的问题的解决。

2014-12-13

空空如也

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

TA关注的人

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