├── .gitignore └── readme.md /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | bower_components 3 | .tmp 4 | *.log 5 | *.out 6 | *.pid 7 | npm-debug.log 8 | .DS_STORE 9 | .netbeans 10 | nbproject 11 | .idea 12 | .node_history 13 | config/ssl 14 | www 15 | coverage 16 | .editorconfig 17 | lib 18 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | __使用指南:__ 2 | 3 | - 有问题,任何问题,直接 [新建 issue](https://github.com/sofish/learn-js/issues) 4 | - 每天更新的文章都放在这个 [Milestone 里](https://github.com/sofish/learn-js/milestones/Daily%20Post) ,共计会更新 60 篇 5 | - 想要收藏的点 star,想了每个更新细节的点 watch,不要 fork(除非你想提 pull-request) 6 | 7 | 8 | # 从 0 开始 JavaScript 9 | 10 | 从玩儿角度来说,老婆想学 JavaScript 这件事其实是政治义务,算是一个幸福的抱怨。抱歉各位编辑, 11 | 写书对我来说太正式,不如像写散文一样写几篇文章发在 GitHub,顺路尝试一下当老师的感觉, 12 | 也可能顺路教会一个人一门编程语言,这种方式比较适合我。从正儿八经的角度来说,对于 JavaScript 这门日新月异 13 | 的语言来说,我也需要找时间好好总结和学习一下,因为她和几年前对比已经不再那么简单, 14 | 甚至那些简单的一运行就知道解决的代码,也已经可以考倒我。 15 | 16 | 举个例子,某天老婆问我一道题让我给解释一下答案的原理: 17 | 18 | ```js 19 | var a = 1; 20 | var b = { 21 | a: 2, 22 | c: function() { 23 | console.log(this.a); 24 | } 25 | } 26 | 27 | // 求值 28 | b.c(); 29 | (b.c)(); 30 | (0, b.c)(); 31 | ``` 32 | 33 | 为什么不同方式 `b.c` 的返回结果不一样,每一种的原理是什么?像这样的问题,有关作用域、返回值、操作符,都是 34 | 一些 ECMAScript 标准里描述的内容。当然,也会在这个教程里,一一解答,这个以及这类问题。 35 | 36 | 像以上说的是 JavaScript 本身,那么学会了语言的基本用法,实际上我们会遇到的一些问题,比如「速度优化」这样 37 | 的实践问题,本身可以写成「一千零一个 JavaScript 故事」,看时间,看老婆想不想学吧。 38 | 39 | 这是一个可能烂尾的项目,所以不用抱什么期望。 40 | --------------------------------------------------------------------------------