资讯专栏INFORMATION COLUMN

《Build your own AngularJS》手记

zsy888 / 2794人阅读

摘要:最近在看,打算跟着书中的代码敲一遍,加深对的理解。在这里记录过程中的问题与心得。根据排查内存耗尽应该是这个版本的问题,换成后问题消失。因此认为这种写法是有风险的,必须用顶上那一行注释表明我确实要全局都的才行。不得不感叹的严谨。

最近在看 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/88

windows下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的严谨。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/85555.html

相关文章

  • Build your own AngularJS》笔记分享

    摘要:初次写文章,请多多包涵我最近正在根据这本书从头开始实现了一遍的框架。笔记目录链接个人认为本书对于想了解框架源码的读者来说相当有用,完全值得去购买这本书书本主页。因为是初学者,笔记里可能有一些错误,我也会继续修改。 (初次写文章,请多多包涵) 我最近正在根据《Build your own angularJS》这本书从头开始实现了一遍AngularJS的框架。我把相关的源码和我的个人学习笔...

    firim 评论0 收藏0
  • Sublime text 前端开发插件安装和配置

    摘要:前端开发配置此文件目录中文件主要是关于的插件配置,快捷键配置,主题和字体配置。插件列表所有插件都可以使用安装,具体的安装方法可以自行谷歌安装,不在本文的介绍范围之内。这两个插件主要是平时使用或者是这些预编译语言有用,支持语法高亮。 前端开发sublimeconfig mac配置 此文件目录中文件主要是关于sublime的插件配置,快捷键配置,主题和字体配置。 插件列表 所有插件都可以使...

    glumes 评论0 收藏0
  • AngularJs1.x解读 $watch 和 $digest

    摘要:对象其实就是一个简单的。和和就像一个硬币的两面。他们组合在一起就是脏检查循环的核心对于数据变化的响应。脏值检测目的只有监控的值发生改变的时候我们才执行对应的。思路存储上一次的值,和这一次值的进行比对。中默认的为,对外暴露可修改。 Scope object Scope对象其实就是一个简单的POJO(plain old JavaScript Object)。我们可以给它任意的添加属性。 /...

    Rainie 评论0 收藏0
  • 创建自定义指令

    摘要:我们通常通过其区分大小写的规范化名称例如,来定义指令。在其目前的实现上,我们应该需要去创建一些不同点控制器用来重用这个指令。如此,绑定是理想的将回调函数绑定到指令行为。这被指令调用指明。前缀表示该指令在其父元素上搜索控制 文档翻译至angularjs.org. 文档解释了您何时想在AngularJS应用程序中创建自己的指令,以及如何实现它们。 | 建议搭配原文食用 | 什么是指令? 在...

    zzbo 评论0 收藏0
  • build your own xxx】实现你自己的call和apply

    摘要:新开一个坑,起名为,自己造一些小轮子。之前貌似在知乎上看到一个问题是说如何使用实现它原生的和方法,今天我来实现一番。但是,这样等于说只给传了一个数组参数,并不能达到目的。同理来实现参考资料深入之和的模拟实现 showImg(https://segmentfault.com/img/bVbbHCv?w=1123&h=629); 新开一个坑,起名为【build your xxx】,自己造一...

    qpal 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<