近来在看 build your own angularjs ,盘算随着书中的代码敲一遍,加深对AngularJS的明白。在这里纪录过程当中的题目与心得。
Introduction
有意思的一段话
I hate working with technologies I don’t quite understand. Too often, it leads to
code that just happens to work, not because you truly understand what it does, but
because you went through a lot of trial and error to make it work
值得反思,寻常工作中的代码,有若干是just happens to work after a lot of trial and error
,有若干是you truly understand what it does
Project Setup (项目脚手架)
没什么手艺题目,主假如踩坑,纪录以下
P15. Include Lo-Dash And jQuery。Gruntfile设置中的testem.unit.options.serve_files项,
node_modules/lodash/lodash.js
在最新版本中应为node_modules/lodash/index.js
运转
grunt testem:run:unit
敕令行报atal error: spawn ENOENT
处理:https://github.com/teropa/build-your-own-angularjs/issues/88windows下
npm install -g phantomjs
失利
处理:最新版本phantomjs的题目,指定较低版本可处理windows下运转
grunt testem:run:unit
内存被大批node与cmd历程耗尽
处理:为处理上个题目,我install了1.9.10版本。依据排查内存耗尽应该是这个版本的题目,换成1.9.11后题目消逝。敕令:npm install -g phantomjs@1.9.11
。(吐槽:这货到底有若干题目啊)
值得一提的是TDD的开发方式,贯串全书一直。之前较少运用TDD,而这正是以Angular、React为代表的新一代前端手艺尽力提倡的开发方式。愿望经由过程这本书能加深对TDD的熟悉
Scopes
Scopes and Digest
An important step in TDD is seeing the test fail first.
TDD要习气先看到test case失利……额,强迫症示意压力山大
js
/* jshint globalstrict: true */ 'use strict'; function Scope(){ }
这里的'use strict'
不难明白,然则顶上那一行解释去掉的话jshint会报错。
查了下缘由,假如把'use strict'
写到文件头的话,会以为全部文件都是严厉形式,一眼看上去没什么题目,但由于在上线时有能够存在文件兼并的状况,被兼并进来的文件假如没有照严厉形式写那贫苦就大了。
因而jshint以为这类写法是有风险的,必须用顶上那一行解释表明我确切要全局都use strict 的才行。
不能不叹息jshint的严谨。