自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 资源 (17)
  • 问答 (3)
  • 收藏
  • 关注

原创 JS实现对象的深拷贝

var obj ={ a:1, b:{ C:2 }, d: [3,4,5] };function Clone(obj){ if(!obj || (typeof obj !== 'object')){ return; } var newObj = Object.prototype.toString.call(obj) == '...

2019-06-30 15:02:25 274

原创 js模拟实现一个Set集合

集合是由一组无序且唯一(即不能重复)的项组成的。add(value):向集合添加一个新的项。delete(value):从集合移除一个值。has(value):如果值在集合中,返回true,否则返回false。clear():移除集合中的所有项。size():返回集合所包含元素的数量。与数组的length属性类似。values():返回一个包含集合中所有值的数...

2019-04-19 15:02:19 2367

原创 LeetCode------有效的括号

给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:...

2019-04-18 15:02:13 227

原创 js模拟实现call,apply,bind

Function.prototype.call()语法fun.call(thisArg, arg1, arg2, …)参数thisArg在fun函数运行时指定的this值。需要注意的是,指定的this值并不一定是该函数执行时真正的this值,如果这个函数处于non-strict mode,则指定为null和undefined的this值会自动指向全局对象(浏览器中就是wind...

2019-03-06 15:03:19 3251 2

原创 LeetCode------重复 N 次的元素

在大小为 2N 的数组 A 中有 N+1 个不同的元素,其中有一个元素重复了 N 次。返回重复了 N 次的那个元素。示例 1:输入:[1,2,3,3]输出:3示例 2:输入:[2,1,2,5,3,2]输出:2示例 3:输入:[5,1,5,2,5,3,5,4]输出:5提示:4 <= A.length <= 100000 <= A[i] < 10...

2019-03-05 14:53:50 334

原创 JavaScript手写Promise

Promise 对象用于表示一个异步操作的最终状态(完成或失败),以及其返回的值。Promise 对象是一个代理对象(代理一个值),被代理的值在Promise对象创建时可能是未知的。它允许你为异步操作的成功和失败分别绑定相应的处理方法(handlers)。 这让异步方法可以像同步方法那样返回值,但并不是立即返回最终执行结果,而是一个能代表未来出现的结果的promise对象一个 Promise有...

2019-02-14 17:44:25 364

原创 LeetCode------两数相加

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 ->...

2018-12-07 11:31:35 125

原创 LeetCode------三数之和

给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为: [ [-1, 0, 1], [-1, -1, 2] ]/** * @param...

2018-12-07 11:26:49 168

原创 CSS sticky footer布局

Sticky Footer布局: 当页面中的内容高度小于屏幕高度的时候, 让底部footer显示在底部, 当内容高度大于屏幕高度的时候, 底部footer会紧随内容其后, 滚动内容区域,footer会在内容的最后方显示。利用flex布局实现sticky footer布局<!DOCTYPE html><html><head> &lt...

2018-08-07 11:13:08 280

原创 JavaScript中数组去重

JavaScript数组的几种去重方式

2018-07-23 13:20:45 143

原创 CSS实现三栏布局的几种方案

css实现三栏布局的几种方式

2018-07-22 18:40:09 267

原创 JavaScript中设计模式

这种模式抽象了创建具体对象的过程,使用同一个接口可以创建很多对象,减少大量的重复代码。工厂模式虽然解决了创建多个相似对象的问题,但却没有解决对象识别的问题,为了解决这个问题,soga 构造函数模式出现。构造函数虽然好用,但是构造函数中的每个方法都要在每个实例上重新创建一遍。如上person1和person2都有一个sayName()的函数,因此每定义一个函数,就实例化了一个对象(在JavaScript中函数就是对象)。为了解决这个问题,所以又有了原型模式。

2018-06-22 17:56:54 180

原创 JavaScript数组的5种迭代方式

every() : 对数组中的每一项运行给定的函数,如果该函数对每一项都返回true,则返回true。 filter() : 对数组中的每一项运行给定的函数, 返回该函数会返回true的项组成的数组。forEach() : 对数组中的每一项运行给定的函数。这个方法没有返回值。 map() : 对数组中的每一项运行给定的函数, 返回每次函数调用的结果组成的数组。 some() : 对数组中的每一项运行给定的函数,如果该函数对任一项返回true

2018-06-19 19:24:43 311

翻译 NodeJS - 事件监听

Node中的许多对象会触发事件,例如net.Server每次对等体连接时都会触发事件,而fs.readStream会在文件打开时发出事件。所有发出事件的对象都是events.EventEmitter的实例。

2018-06-10 10:14:21 3805

原创 JS写一个按照下面方式调用都能正常工作的 sum 方法

js写一个按照下面方式调用都能正常工作的 sum 方法console.log(sum(2,3)); // Output 5console.log(sum(2)(3)); // Output 5

2018-05-14 09:59:57 806

原创 HTML让元素居中显示

HTML中使用元素居中的几种方法,包括水平居中和水平垂直居中

2018-05-11 18:35:25 22036

原创 NodeJS - 事件循环

Node.js是一个单线程应用程序,但它可以通过事件和回调的概念来支持并发。Node.js的每个API都是异步的并且是单线程的,它们使用异步函数调用来保持并发性。NodeJS使用观察者模式。NodeJS线程保持一个事件循环,每当一个任务完成时,它就会触发相应的事件,这个事件指示事件监听器函数执行。事件驱动的编程Node.js大量使用事件,这也是Node.js与其他类似技术相比相当快的原...

2018-03-22 19:31:56 353

原创 NodeJS - 回调函数

什么是回调函数?回调函数是一个异步等价的函数。在给定任务完成时调用回调函数。NodeJS大量使用回调。NodeJS的所有API都是以支持回调的方式编写的。例如,读取文件的函数可能会开始读取文件后并立即将控件返回到执行环境,以便可以执行下一条指令。一旦文件I/O执行完成,它将在传递回调函数的同时调用回调函数,该文件的内容作为参数传递。所以没有阻塞或等待文件I/O。这使得NodeJS具有高度的...

2018-03-18 18:32:29 868 1

原创 NodeJS - NPM

Node包管理工具(NPM)提供两个主要功能node.js包/模块的在线存储库,可在NPM上搜索用于安装Node.js包的命令行实用程序,可以执行Node.js包的版本管理和依赖关系管理。NPM在v0.6.3版本之后与Node.js可安装版捆绑在一起。要验证相同,请打开控制台并输入以下命令并查看结果$ npm --version由于在国内npm相对不太稳定,我们可...

2018-03-18 18:02:47 194

原创 NodeJS - 第一个应用程序Hello World

安装NodeJs在创建实际的“Hello,World!”应用之前,我们应该先安装NodeJS,安装NodeJS可以访问NodeJS官网,下载相应系统的NodeJS的安装包,进行安装。程序组件关于Hello World 这个应用主要包括三部分组成导入所需的模块 -在程序中我们使用require指令来加载NodeJS模块创建服务器 -一个将监听类似于Apache HT...

2018-03-18 17:27:36 12265

原创 什么是Node.js?

Node.js是一个基于Google Chrome的JavaScript引擎(V8引擎)构建的服务器端平台。Node.js由Ryan Dahl于2009年开发,最新版本为V9.8.0。由其官方文档提供的Node.js的定义 如下 - Node.js®是在Chrome的V8 JavaScript引擎上构建的JavaScript运行时。Node.js使用事件驱动的非阻塞I / O模型,使其轻量...

2018-03-18 16:48:10 322

原创 FCC----------- Exact Change

设计一个收银程序 checkCashRegister() ,其把购买价格(price)作为第一个参数 , 付款金额 (cash)作为第二个参数, 和收银机中零钱 (cid) 作为第三个参数. cid 是一个二维数组,存着当前可用的找零. 当收银机中的钱不够找零时返回字符串 “Insufficient Funds”. 如果正好则返回字符串 “Closed”. 否则,返回应找

2018-01-10 16:54:19 836 1

原创 Python简单实现学生成绩管理系统

基本功能:输入并存储学生的信息:通过输入学生的学号、姓名、和分数,然后就可以把数据保存在建立的student文件里面。打印学生的所有信息:通过一个打印函数就可以把所有的信息打印在屏幕上。修改学生信息:这个功能首先通过查询功能查询出该学生是否存在,如果存在就对该学生的信息进行修改,如果不存在则返回到主界面。删除学生信息:该功能是对相应的学生进行删除操作,如果学生存在就查找到进行删除。按学生成

2017-12-27 17:38:08 71080 13

原创 JavaScript实现排序和搜索

冒泡排序: 比较任何两个相邻的元素, 如果第一个比第二个大则交换他们。 时间复杂度: 最好:O(n), 一般情况: O(n2) 最差情况: O(n2) |(n的平方)选择排序:找到数据结构中的最小值并且放在第一位,接着找到第二小的值放在第二位,依次类推插入排序: 每次排一个数组,以此方式构建组最后的排序数组。首先把要比较的一项放在临时变量temp中拿第二项和第一项比较如果第一项大于第二项则交换,然

2017-11-27 18:34:12 266

原创 JavaScript实现一个简单数据结构树

我们开始之前首先介绍一下关于二叉树和二叉搜索树二叉树中的节点最多只能有两个子节点:一个是左侧的子节点,另一个是右侧的子节点。二叉搜索树是二叉树的一种,但是它只允许你在左侧的节点存储比父节点小的值,在右侧的节点存储比父节点大的或者相等的值。 如下图 首先,声明它的结构:function BinarySearchTree() { var Node = function(key){

2017-11-02 18:09:32 703 1

原创 JavaScript实现一个简单数据结构栈

我们将创建一个类来表示栈。首先声明这个类: 接着我们需要一种数据结构来保存栈中的元素。可以选择数组,接下来,为我们的栈声明一些方法。push(element): 添加新元素到栈顶pop(): 移除栈顶的元素, 同时返回被移除的元素。peek(): 返回栈顶元素,不对栈元素做任何修改。

2017-09-27 18:15:32 324

原创 数据结构探险------队列篇

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。

2017-09-20 13:52:08 461

原创 FCC----------- Build a Wikipedia Viewer

类维基百科可以在一个搜索框搜索维基百科的条目,并看到输出结果。可以点击一个按钮就看到一个随机的维基百科条目。

2017-09-17 09:43:31 737

原创 FCC----------- Arguments Optional

创建一个计算两个参数之和的 function。如果只有一个参数,则返回一个 function,该 function 请求一个参数然后返回求和的结果。 例如,add(2, 3) 应该返回 5,而 add(2) 应该返回一个 function。 调用这个有一个参数的返回的 function,返回求和的结果

2017-09-16 09:49:03 394

原创 FCC----------- Binary Agents

传入二进制字符串,翻译成英语句子并返回。二进制字符串是以空格分隔的。首先把二进制数进行分割存放到数组当中,然后再把二进制数字转化为十进制数字,再根据字符对应的十进制编码,把相应的十进制数转化为字符。

2017-08-24 15:42:39 432

原创 FCC----------- Steamroller

对嵌套的数组进行扁平化处理。你必须考虑到不同层级的嵌套。对嵌套的数组进行拆分处理,使嵌套的数组都拆分到一个数组中。

2017-08-24 15:16:52 408

原创 FCC----------- Sum All Odd Fibonacci Numbers

给一个正整数num,返回小于或等于num的斐波纳契奇数之和。斐波纳契数列中的前几个数字是 1、1、2、3、5 和 8,随后的每一个数字都是前两个数字之和。例如,sumFibs(4)应该返回 5,因为斐波纳契数列中所有小于4的奇数是 1、1、因为当num较大时,内存会溢出,推荐用数组来实现。

2017-08-23 15:39:08 746

原创 FCC-----------Missing letters

从传递进来的字母序列中找到缺失的字母并返回它。 如果所有字母都在序列中,返回 undefined

2017-08-23 09:23:58 359

原创 前端面试题 -----浏览器本地存储和Cookie的利弊

前端面试题----关于浏览器本地存储和cookie的利弊

2017-08-16 17:14:07 2117

原创 前端面试题 ----- HTML语义化 link和@import的区别

说说你对HTML语义化的理解?什么是 HTML 语义化?link和@import的区别?

2017-07-26 18:51:13 1769

原创 FCC-----------Build a Random Quote Machine

用jquery来实现一个能够随机生成短语的程序,能够在点击刷新按钮时就生成一条新的短语,点击twitter或者点击微博时,能够把生成的名言分享到twitter或者分享到微博上面。在线演示:Build a Random Quote Machine由于在编写时我用到了animate来改变字体和背景颜色,但是jquery本身的animate并不支持颜色的改变,所以我用到了jquery-color

2017-06-29 15:36:29 1711

原创 FCC-----------Diff Two Array

比较两个数组,然后返回一个新数组,该数组的元素为两个给定数组中所有独有的数组元素。换言之,返回两个数组的差异。这是一些对你有帮助的资源:Comparison OperatorsArray.slice()Array.filter()Array.indexOf()Array.concat()function diff(arr1, arr2

2017-06-25 17:41:46 561

原创 FCC-----------Design a danmu app

利用javascript实现一个弹幕墙,页面包括一个显示墙,字幕输入框,发射弹幕按钮,关闭弹幕按钮,通过jquery自定义实现弹幕用到的函数。在线演示地址为: Design a danmu app下面来看一下代码分析:HTML部分主要实现页面的布局: index.html Design a danmu app

2017-06-25 14:21:10 771

原创 FCC-----------Caesars Cipher

让上帝的归上帝,凯撒的归凯撒。下面我们来介绍风靡全球的凯撒密码Caesar cipher,又叫移位密码。移位密码也就是密码中的字母会按照指定的数量来做移位。一个常见的案例就是ROT13密码,字母会移位13个位置。由'A' ↔ 'N', 'B' ↔ 'O',以此类推。写一个ROT13函数,实现输入加密字符串,输出解密字符串。所有的字母都是大写,不要转化任何非字

2017-06-08 13:06:27 1281

原创 FCC-----------Chunky Monkey

猴子吃香蕉可是掰成好几段来吃哦!   把一个数组arr按照指定的数组大小size分割成若干个数组块。    例如:chunk([1,2,3,4],2)=[[1,2],[3,4]];     chunk([1,2,3,4,5],2)=[[1,2],[3,4],[5]];这里用到了Array.push()和Array.slice()简要说明一下push() 方法

2017-06-07 16:09:23 1135

Node.js开发指南博客系统

本文件是基于Node.js 开发指南中建立微博网站的代码实现,运行该代码需要在本地安装好Mongodb和Nodej环境

2017-06-25

超详细Oracle教程

Oracle数据库详细教程

2017-05-31

Bootstrap用户手册:设计响应式网站.pdf

Bootstrap用户手册:设计响应式网站.pdf 虽然电子书能够给大家带来方便,但是如果有条件的话还是购买正版图书,个人文件,仅供参考 ^ ^

2017-03-15

CSS揭秘.pdf

原文为CSS Secrets由CSS魔法大神翻译, 高清 无码! ^ _ ^

2017-03-14

精通CSS:高级Web标准解决方案(第2版)中文扫描版.pdf

精通CSS:高级Web标准解决方案(第2版)中文扫描版.pdf

2017-03-13

JS基础笔记

2017-02-27

C++编程思想[第二卷].pdf

2016-12-25

Accelerated C++ .pdf

2016-12-25

哈弗曼编译码

2016-12-19

锋利的JQuery

带标签,带源码

2016-11-26

C++程序设计语言(特别版)

《C++程序设计语言》介绍了标准C++以及由C++所支持的关键性编程技术和设计技术。标准C++较以前的版本功能更强大,其中许多新的语言特性,如名字空间、异常、模板、运行时类型声明等使得新技术得以直接应用。这本书围绕语言及库功能来组织,内容涉及C++的主要特征及标准库,并通过系统软件领域中的实例解释说明一些关键性的概念与技术。, 此特别版增加了关于现场和标准库的异常时安全性两个附录,这就使书的内容完全地和权威性地覆盖了整个C++语言,其标准库,以及关键性的设计技术。

2016-05-08

C++程序设计(谭浩强)305.pdf

C++程序设计(谭浩强)

2016-04-23

面试题目 (2).doc

2016-03-27

Linux Ubuntu下安装酷狗

酷狗音乐linux版本还未出现,现在使用的是web版,具体安装如下: 先安装预装软件:命令 sudo apt-get install python-gtk2 python-webkit 再下载安装包即可。

2016-03-20

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

TA关注的人

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