代码改变世界

随笔分类 -  JavaScript

JavaScript函数柯里化

2015-05-11 20:36 by 破狼, 4250 阅读, 收藏, 编辑
摘要: 函数式JavaScript是以函数为一等公民的函数式语言。函数在JavaScript中也是一个对象(继承制Function),函数也可以作为参数传递成函数变量。最近几年函数式也因为其无副作用的特性、透明性、惰性计算等在高并发,大数据领域火起来了。JavaScript中也有如Underscore、lo... 阅读全文

前端HTML-CSS规范

2015-05-10 08:25 by 破狼, 19239 阅读, 收藏, 编辑
摘要: 目录HTML语法HTML5 doctype语言属性(Language attribute)字符编码IE 兼容模式引入 CSS 和 JavaScript 文件实用为王属性顺序布尔(boolean)型属性减少标签的数量JavaScript 生成的标签CSS语法声明顺序媒体查询(Media query)的... 阅读全文

前端JavaScript规范

2015-05-09 23:29 by 破狼, 6415 阅读, 收藏, 编辑
摘要: JavaScript规范目录类型对象数组字符串函数属性变量条件表达式和等号块注释空白逗号分号类型转换命名约定存取器构造器事件模块jQueryES5 兼容性HTML、CSS、JavaScript分离使用jsHint前端工具类型原始值: 相当于传值(JavaScript对象都提供了字面量),使用字面量创... 阅读全文

JavaScript工具库之Lodash

2015-04-11 16:08 by 破狼, 63532 阅读, 收藏, 编辑
摘要: 你还在为JavaScript中的数据转换、匹配、查找等烦恼吗?一堆看似简单的foreach,却冗长无趣,可仍还在不停的repeat it!也许你已经用上了Underscore.js,不错,你已经进步很大一步了。然而今天我希望你能更进一步,利用lodash替换掉Underscore。lodash一开始... 阅读全文

(转)Babel-现在开始使用 ES6

2015-03-22 20:34 by 破狼, 59122 阅读, 收藏, 编辑
摘要: 在 2 月 20 号 ECMAScript 第六版就正式推出了,这门语言一直保持稳定快速的发展而且新功能也在慢慢被现在主流的 JavaScript 引擎所接受。不过要想在浏览器端或者 Node 端直接运行 ES6 代码还得等上一些日子。幸好 TC39 (负责研究开发 EMCAScript 规格的组织... 阅读全文

Nightmare基于phantomjs的自动化测试套件

2014-11-20 19:28 by 破狼, 5925 阅读, 收藏, 编辑
摘要: 今天将介绍一款自动化测试套件名叫nightmare,他是一个基于phantomjs的测试框架,一个基于phantomjs之上为测试应用封装的一套high level API。其API以goto, refresh, click, type…等简单的常用e2e测试动作封装,使得其语义清晰,简洁。其官方在... 阅读全文

TypeScript - Classes

2014-11-19 13:43 by 破狼, 34622 阅读, 收藏, 编辑
摘要: 简介JavaScript语言基于函数和原型链继承机制的方式构建可重用的组件。这对于OO方面编程来说显得比较笨拙。在下一代的JavaScript标准ECMAScript 6为我们提供了基于class base的OO设计方式。在TypeScript中我们也允许使用这种方式,TypeScript将编译为目... 阅读全文

TypeScript - Interfaces

2014-11-17 12:58 by 破狼, 21266 阅读, 收藏, 编辑
摘要: 简介关注于数据值的 ‘shape’的类型检查是TypeScript核心设计原则。这种模式有时被称为‘鸭子类型’或者‘结构子类型化’。。 在TypeScript中接口interfaces的责任就是命名这些类型,而且还是你的代码之间或者是与外部项目代码的契约。初见Interface理解interface... 阅读全文

TypeScript - 基本类型系统

2014-11-13 21:56 by 破狼, 30085 阅读, 收藏, 编辑
摘要: 对于程序来说我们需要基本的数据单元,如:numbers, strings, structures, boolean 等数据结构。在TypeScript中我们支持很多你所期望在JavaScript中所拥有的数据类型系统。Boolean在JavaScript和TypeScript中也具有最基本的逻辑断言... 阅读全文

解决ng界面长表达式(ui-set)

2014-09-29 17:12 by 破狼, 2000 阅读, 收藏, 编辑
摘要: 本文来自网友sun shine的问题,问题如下: 您好, 我想求教一个问题. 在$scope中我的对象名字写的特别深, 在 html中我又多次用到了同一个对象, 对不对在 html中让它绑定到一个临时变量呢? 比如: $scope.this.is.a.very.deep.ob... 阅读全文

Jasmine测试ng Promises - Provide and Spy

2014-09-29 16:20 by 破狼, 2132 阅读, 收藏, 编辑
摘要: jasmine提供了很多些很实用的处理Promises的方法,首先我们来考虑下面的这个例子: angular.module("myApp.store").controller("StoresCtrl", function($scope, StoreService, Contact) { ... 阅读全文

karma作为jQuery单元测试Runner

2014-09-07 08:50 by 破狼, 4225 阅读, 收藏, 编辑
摘要: karma作为angular测试runner出现,如果你使用过karma一定感受到这很不错的javascript测试runner。简单干净的配置文件karma.config.js,以及karma init一些快捷的配置command。以及整套测试套件,如html2js,coverage。对于angu... 阅读全文

Ng Http Request/response格式转换

2014-09-03 08:19 by 破狼, 5017 阅读, 收藏, 编辑
摘要: angular作为Single Page Application推荐的交互方式当然是基于json的ajax调用。但今天要说的是当你不幸工作在一个遗留或者不可控制的服务上,而这服务是基于非json提交方式(或许是常规表单(form)提交,或者其他自定义数据格式),那么我们只能改变ng内部$http默认... 阅读全文

angularjs之browserTrigger

2014-06-24 22:42 by 破狼, 2664 阅读, 收藏, 编辑
摘要: 今天推荐一款来自angularjs源码的单元测试辅助库browserTrigger,这是来自于ngScenario的一段代码。主要用户触发浏览器型行为更新ng中scope view model的值。这是angularjs源码中单元测试的使用browserTrigger的实例:it('should s... 阅读全文

ng-template寄宿方式

2014-03-15 14:26 by 破狼, 20773 阅读, 收藏, 编辑
摘要: 如果你是一个angular的开发者的话,对于ng-html2js你应该 很熟悉。对于angular的指令,我们经常需要定义模板( directive template/templateUrl),你可以选择讲html page 放在真正的的web容器中寄宿,也可以选择angular的ng-template 放在view的page之上,抑或也可以讲html打成一个js文件和directive 的js文件合并在一起发布。对于直接寄宿在web容器.这很简单,直接放在jetty,tomcat,iis, 抑或node express public目录下。这里没什么可以多说的,所以我们跳过。angul... 阅读全文

细说angular Form addControl方法

2014-02-22 09:30 by 破狼, 10153 阅读, 收藏, 编辑
摘要: 在本篇博文中,我们将接触angular的验证。angular的验证是由form 指令和ngModel协调完成的。今天博主在这里想要说的是在验证在的一种特殊情况,当验证控件没有没有name属性这是不会被form捕获的。或者是你希望在ngRepeat中使用动态表达式。下面且让我们先来从angular源码中看起如下:首先是ngModel: var ngModelDirective = function() { return { require: ['ngModel', '^?form'], controller: NgModelController, ... 阅读全文

Angularjs中文版本开发指南发布

2014-02-16 15:49 by 破狼, 46814 阅读, 收藏, 编辑
摘要: 从本人开始在写关于Angularjs的文章开始,也算是见证了Angularjs在国内慢慢的火起来,如今的Angularjs正式如日中天。想知道为什么Angularjs会这么火,请移步angularjs移除不必要的$watch.也是一次偶然的机会,在Angular.js中文社区群里相遇一群Angula... 阅读全文

为Angularjs ngOptions加上index解决方案

2014-02-15 22:33 by 破狼, 16126 阅读, 收藏, 编辑
摘要: 今天在Angularjs交流群中有位童学问道如何为Angular select的ngOptions像Angularjs的ngRepeat一样加上一个索引$index.其实对于这个问题来说Angular本身并未提供$index之类的变量供使用。但是也不是说对于这个问题我们就没有解决方案。把这个问题换成角度来看,我们所需要的就是js数组的下标,所以我们如果我们能够在对象上加入下标,使用表达式作为option的label就能解决了。但是第一印象让我想起的是js数组本来就是一个key/value的对象,只是key为数组下标而已,所以有了如下之设计:html: js:$scope.getDesc1 =. 阅读全文

Angular ngClick 阻止冒泡和默认行为

2014-02-11 23:29 by 破狼, 68005 阅读, 收藏, 编辑
摘要: 这其实是一个很简单的问题,如果你认真查看过Angular官方的API文档,本来不想记录的。但是这个问题不止一次的被人问起,所以今天在记录在这里。在Angular中已经对一些ng事件如ngClick,ngBlur,ngCopy,ngCut,ngDblclick…中加入了一个变量叫做$event.如ngClick在官方文档是这么描述的:Expression to evaluate upon click. (Event object is available as $event)在查看Angular代码ngEventDirs.js: var ngEventDirectives = {}; fo... 阅读全文

angularjs组件之input mask

2013-12-15 20:36 by 破狼, 15042 阅读, 收藏, 编辑
摘要: 今天将奉献一个在在几个angularjs项目中抽离的angular组件 input mask。在我们开发中经常会对用户的输入进行控制,比如日期,货币格式,或者纯数字格式之类的限制,这就是input mask的使用场景,在项目中也是会经常被提及需的需求之一。当然在官方的angular-ui ui-utils中有一个相应的组件叫做ui-mask,但是其mask功能是很初级脆弱的。所以我希望能得到一个更强大的mask组件。我所知的jquery.inputmask就是这样一个我所期望的强大的mask组件,所以我不必再去重造轮子,好的软件就是为了不停被重复利用。所以写了一个adapter,https:/ 阅读全文