自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ghostlpx的博客

爱智求真

  • 博客(29)
  • 收藏
  • 关注

原创 系统日志方案调研

1.日志的价值首先,要明确为什么要保留日志,有了清晰的价值目标,就是有了统一的行动纲领。如同记账本,记录每天开销,以备日后查阅统计。记录系统日志,可以帮助我们记录应用每时每刻的运行情况,方便系统在产生故障时快速定位问题;以及更进一步,把零散的日志收集起来,数据量大了,就能发现日志数据的规律和价值。2. 日志基本要素日志分级 日志分类 日志落盘还是拿记账举例:大额支出,如买房买车;小额支出,如买菜买彩票。支出额度不同,意义不同。日志也一样,「debug」、「warn」和「er

2022-02-23 14:31:22 592

原创 js 的异步并发控制

一个极端业务场景引发的思考在业务开发过程中,我们经常会遇到多个异步任务并发执行的情况,待所有异步任务结束之后再执行我们的业务逻辑。通常情况下,我们会采用 ES6 标准下的Promise.all([promise1, promise2, promise3,...]).then( )方法来应对这样的场景需求,Promise.all 可以保证,promises 数组中所有 promise 对象都达到 resolve 状态,才执行 then 回调。这样的 promise 对象可能是你发出的 http 请求,

2020-05-29 19:51:51 2232

原创 你知道JavaScript的继承有几种写法吗?

标题的灵感来源于鲁迅的小说《孔乙己》中孔乙己和小伙计的一段对话:“茴香豆的茴字,怎样写的?......回字有四样写法,你知道么?”这里我们并不探讨封建制度下穷苦潦倒的读书人的迂腐,回字的几种写法留给汉语言的同学去研究吧,今天我们讨论JavaScript继承的几种写法,由浅入深,一层层剥开她的面纱,最后给出一个最佳实践。一、通过构造函数实现继承function Parent() { ...

2018-08-05 11:26:23 225

原创 flex布局中flex属性初探

终于有了一个闲暇的周末,仔细研究了一下阮大神的两篇关于flex的文章。虽然之前对flex也有使用,但都浮于实现简单业务层面,内心始终对flex怀有敬畏。下面就粗陋地聊一聊今天的收获。这里想单独说说flex属性,这是一个复合属性,包括flex-grow flex-shrink flex-basis,1、flex: auto,即flex: 1 1 auto2、flex: none,即fle...

2018-07-22 20:58:00 511

原创 JS找出数组中唯一不同的数

一个数组中只有一个数是唯一的,其他数都是成对出现,找出这个唯一的数。分析:由于位运算符异或运算的特点,即两个相同的数进行异或运算时,其结果为0,所以当将数组中所有的元素进行异或运算时,其结果必定为那个唯一的数。代码如下:// 判断数组中是否有唯一值function findOnly(arr) { let result = 0; arr.forEach((i) => { ...

2018-05-08 17:29:27 3157

原创 如何形象地解释 JavaScript 中 map、foreach、reduce 间的区别?

本答案来自于知乎高赞回答@水乙,原帖地址。对我启发很大,特摘录至此,以作备忘和分享。如下:

2018-02-26 10:47:27 212

原创 Windows7下MongoDB的下载、安装与配置详解

最近在写一个项目,想用MongoDB做后台数据库,却不想在安装和启动MongoDB的过程中遇到了小困难,在此贴出遇到的问题和解决方法,以作备忘和分享。我使用的是64位的Windows7旗舰版系统,所以以下都是关于Windows下的经验,使用Linux和Mac的朋友可以撤了。一、Windows7下的运行库问题虽然这个问题属于个例,但我觉得也有必要拿出来说说,保不齐你新装的系统就存在运

2017-12-04 17:15:31 435

翻译 JavaScript 风格指南(4)

-- 接 JavaScript 风格指南(3) --八、Arrow Functions· 8.1 当你必须使用函数表达式(如传递匿名函数时),请使用箭头函数表示法。理由:this 的执行上下文不会改变,写法也更简洁。// bad[1, 2, 3].map(function (x) { const y = x + 1; return x *

2017-08-02 18:36:57 246

翻译 JavaScript 风格指南(3)

-- 接 JavaScript 风格指南(2) --七、Functions· 7.1 使用命名函数表达式,而不是函数声明理由:函数声明提升会导致在函数定义之前就已经可以引用该函数了,这会损害可读性和可维护性。如果想要定义的函数很复杂,复杂到会干扰理解代码的其余部分,应该考虑将其解压缩到自己的模块中了!不要忘记给表达式命名——匿名函数不利于错误的定位。

2017-07-31 19:08:16 297

翻译 JavaScript 风格指南(2)

--接 JavaScript风格指南(1) --四、Arrays· 4.1 使用字面量的方式创建数组// badconst items = new Array();// goodconst items = [];· 4.2 不要使用直接赋值的方式为数组添加新成员,而是使用 push() 方法const someStack = [];// badso

2017-07-28 18:26:46 301

转载 SVN分支/合并原理及最佳实践

使用svn几年了,一直对分支和合并敬而远之,一来是因为分支的管理不该我操心,二来即使涉及到分支的管理,也不敢贸然使用合并功能,生怕合并出了问题对团队造成不良影响,最主要的原因是,自己对分支的目的和合并的方法不甚了解,这才是硬伤。最近由于适配机型的需要(本人从事手机客户端的开发),需要经常接触分支和合并两项工作,突然发现这玩意整不明白很难开展工作,遂这两天着重研究了一下,有点收获,怕以后

2017-07-19 16:36:19 218

翻译 JavaScript 风格指南(1)

一、Types· 1-1 基本类型:当你使用基本类型的数据时,只关注它的值就可以了stringnumberbooleanundefinednullconst foo = 1;let bar = foo;bar = 9;console.log(foo, bar); // => 1, 9· 1-2 复杂类型:当使用复杂类型的数据时,需要关注对值的引用

2017-07-11 17:34:05 295

原创 图解CommonJS、AMD、CMD规范

捋一捋JavaScript开发中的模块规范,为了方便描述和理解,作图说明:参考文章:阮一峰博客:Javascript模块化编程简书:浅析JS模块规范:AMD,CMD,CommonJS

2017-06-29 18:19:34 434

原创 利用CSS3画三角形(另附百度笔试题)

一、原理CSS3画三角形的原理十分简单,利用到的属性无非几种:width、height、content、border。拿一个矩形举例: Document #pentagon { width: 0; height: 0; content: ''; border: 50px solid red; } 显示效果:问题来了

2017-06-19 17:12:14 578

原创 git+gerrit开发配置方法入门

一、利用git生成ssh密钥1、首先配置用户名和邮箱地址git config --global user.name your_namegit config --global user.email your_email2、查看是否已经生成了ssh密钥cd ~/.ssh如果没有密钥则不会有此文件,若是有密钥则删除,等待下一步重新生成密钥3、生成密钥

2016-12-08 11:12:09 4482

原创 window下history对象备忘

history是window对象的属性,它保存着用户上网的历史记录,出于安全方面的考虑,开发人员无法得知用户浏览过的URL。不过,借助用户访问过的页面列表,同样可以在不知道实际URL的情况下实现后退和前进。一、HTML5 之间的 history history有如下方法:history.go()history.forward()history.back()    除了上述几

2016-10-13 16:17:01 340

原创 如何理解AngularJS中的依赖注入

AngularJS最容易引起混淆的特性之一就是依赖注入(DI)。可能很难理解到底什么是依赖注入,它如何工作,以及为什么它是有用的。    先从理解依赖注入打算要解决的问题开始。一个AngularJS应用程序中的一些组件可能会依赖于其它组件,例如,控制器需要使用 $scope 组件,使得控制器可以向视图传递数据,即控制器依赖于 $scope 组件来执行工作。 ... myApp.cont

2016-10-07 19:31:06 3076

原创 图解animation-fill-mode属性

animation-fill-mode用来规定对象在动画时间之外的状态,它有4个值:none 不改变默认行为backwords 在animation-delay时间内,在动画开始之前,应用开始属性值(在第一个关键帧中定义的那个值)forwords 当动画完成后,保持最后一个属性值(在最后一个关键帧中定义的那个值)both 向前和向后填充模式都被使用    举例说明:

2016-10-04 16:45:18 913

原创 再次深入理解闭包

之前写过一篇关于闭包的文字,当时觉得对闭包已经掌握到目无全牛的程度——直到我看到这篇博文:大部分人都会做错的经典JS闭包面试题。    我觉得我应该重新审视闭包这个概念,以及一些之前了解不够细致的JavaScript细节。下面是我抽取出来的一些容易被忽略的概念以及我的思考。1.JS中有几种函数    首先,在此之前需要了解的是,在JS中函数可以分为两种,具名函数(命名函数)和匿

2016-10-03 12:14:47 266

原创 浏览器兼容性问题备忘

关于要不要兼容IE678,其实这就看业务需求了。比如有的企业,像电商类的,他们不想流失掉使用老版本IE的用户,因为流失用户就代表着流失金钱,所以他们必须要兼容IE678。我个人认为,从一个前端开发者的角度出发,掌握浏览器间的兼容性问题解决办法是生存所需,没啥可说的。        由于刚刚IETester崩溃(如果不想折腾IETester,而已用VirtualBox装个虚拟机,在接近原生的环境

2016-09-21 15:36:22 301

原创 TCP协议中的“三次握手”

一、关于TCP协议    TCP(Transmission Control Protocol)协议通常被称为面向连接的协议,这一协议保证可靠有序地将数据从发送者传送到接收者。1.创建可靠会话    TCP与UDP的关键区别在于可靠性,TCP的可靠性在于其使用了面向连接的会话。在主机间使用TCP协议传送数据前,传输层会专门开启一个进程用于建立源主机和目的主机之间的连接。通过该连接

2016-09-14 14:54:56 514

原创 深入剖析angular-ui-router插件

初识UI-RouterUI-Router被认为是AngularUI为开发者提供的最实用的一个模块,它是一个让开发者能够根据URL状态来组织和控制界面UI的渲染,而不仅仅只改变路由(传统AngularJS应用实用的方式)。该模块为开发者提供了很多对视图(view)额外的控制。开发者可以创建嵌套分层的视图、在同一个页面使用多个视图等更多的功能。一个简单应用

2016-08-25 20:07:15 752

原创 Flex弹性盒布局

初识flex布局    2009年,W3C提出了一种新的方案——Flex布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。各浏览器支持情况如下图:

2016-08-23 20:25:10 466

原创 响应式开发和<picture>标签的前世今生

一、响应式设计(一)、响应式设计的由来    在手机、平板这类小型化设备出现之前,是没有响应式设计这个概念的,以前的开发者只需设计一版PC端网页即可。后来随着iPhone等智能设备的风潮席卷世界,移动端浏览器技术逐渐成熟,用户在移动设备上对网页内容的需求爆棚,此时的移动端必须受到重视。针对移动设备的特点(比如屏幕小、带宽小、资费贵),初期的开发人员为移动设备专门搭建了另外的站点(像

2016-08-21 11:39:46 697

原创 前端跨域解决方法之window.name+iframe

window.name 传输技术,原本是 Thomas Frank 用于解决 cookie 的一些劣势(每个域名 4 x 20 Kb 的限制、数据只能是字符串、设置和获取 cookie 语法的复杂等等)而发明的(详细见原文:《Session variables without cookies》),后来 Kris Zyp 在此方法的基础上强化了 window.name 传输 ,并引入到了

2016-08-15 15:54:25 7160

原创 前端跨域解决办法之JSONP

由于JavaScript的同源策略限制,在当前JavaScript脚本中并不能操作来自非同一域下的资源,这就使得跨域问题之于前端工程师就像弹吉他之于民谣歌手——是非常重要的基本功。跨域问题解决办法有很多种,比如W3C给出的CORS(Cross-Origin Resource Sharing,跨源资源共享),它的基本思想就是使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应是应

2016-08-11 20:11:01 718

原创 JavaScript中的闭包

闭包,是ECMAScript中一个非常重要的概念。我在“ JS中的作用域链(scope chain)”这篇博文中已经详细阐述了关于作用域链的内容。其实,作用域链的问题就是从闭包引出来的,之所以先说作用域链,是因为我觉得如果把作用域链的概念搞清楚了,那么闭包理解起来就轻松多了。一句话说啥是闭包:函数嵌套函数,内部函数引用了外部函数的局部变量,这样就形成了闭包。

2016-07-28 10:10:06 251

原创 JavaScript中的原型与继承

JavaScript与传统OO语言有所不同,那就是它并没有类的概念。因此,JavaScript中的对象也就和基于类的语言中的对象有所不同。那么,JavaScript中的对象是如何创建的,又是如何实现继承的呢?首先说说创建对象。其实,创建对象有很多种方式。比如工厂方式、构造函数方式以及原型方式等等。而,在这里我只想说说组合方式。function Person( name, age, job

2016-07-26 09:21:48 307

原创 JavaScript中的作用域链(scope chain)

第一篇博客,略有手抖,不知道应该捡哪句说起。开博最重要的目的就是做一些自己的技术沉淀。之前不是不想开,是因为确实自己确实没有积累,即使勉强写出点什么,我想大抵也是东拼西凑吧,这样不如不干。干,就像个样子。分隔符---此为前话。近几日精读JavaScript高级程序设计,感觉收货颇丰。尤其读到第七章“函数表达式”,让我对JavaScript有了更深层次的认识。面试中出现频率较高的一个

2016-07-25 20:55:25 599

空空如也

空空如也

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

TA关注的人

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