目前在自学JavaScript,感觉非常的吃力,是不是我的方法不对?

2014-01-22 12:03:02 +08:00
 83f420984
我自己的学习方法是,看JavaScript DOM编程艺术,第一章节我研究了近3个星期,始终不明白它里面的讲的对象与数组与代码表示的意思,然后实现是看不下去了;

转而去看妙味课堂Javascript视频教程,里面前5节就是JS学前预热课程,这5节课程重复看了10遍以上,不停地练习视频里的例子,自己已经可以写点简单的JS效果了;

然后重新去看JavaScript DOM编程艺术,感觉很容易上手,没有刚刚开始看时的迷惑

现在的问题是,我还是不明白什么是对象,什么是数组,什么是闭包,怎么隐藏全局变量,等
23892 次点击
所在节点    程序员
77 条回复
Mutoo
2014-01-22 15:09:23 +08:00
@raincious

风格习惯是一回事,但我想表达是这样的例子,我看过很多同学这样写程序(当然,是在他们还不懂数组的时候):

var ball0 = new Ball();
var ball1 = new Ball();
var ball2 = new Ball();

// loop
ball0.update();
ball1.update();
ball2.update();
ball0.render();
ball1.render();
ball2.render();
...

而用数组就不再需要起这么蹩脚的名字了:

var balls = [];
for(var i=0;i<counts;i++) balls.push(new Ball());

// loop
for(var i=0;i<counts;i++) {balls[i].update(); balls[i].render()};
raincious
2014-01-22 15:19:20 +08:00
@Mutoo

你上面的例子本身就需要用到数组,因为是大量建立同一类型的对象。为了后期对这些对象进行批量维护,也需要建立数组。

但是 “你再也不用去给里面的东西起名字了,而可以通过索引来引用它们” 这句是不对的。因为在很多情况下,建立变量(好吧,其实你建立的数组也是一个变量的值)来储存数据并不适用你说的情况。比如要建立一个配置表,之类。

代码是给人读的,保持易读性相当重要。
flynngao
2014-01-22 16:34:52 +08:00
为何非常吃力……,我觉得js是超级蠢的语言了,弱类型而且很多情况不用考虑溢出……
bzw875
2014-01-22 16:39:03 +08:00
@84840 我也是看完《javascript DOM 编程的艺术》后选择这本《JavaScript高级程序设计(第3版)》来看的。
kran
2014-01-22 17:03:15 +08:00
不建议初学者学习js
wity_lv
2014-01-22 17:06:22 +08:00
@flynngao

Javascript非常接近两门门非常优秀的语言(C + Lisp). 其实javascript也非常优秀。
推荐看这两本书,很薄,很无压力:
Javascript Good Part
http://book.douban.com/subject/2994925/

Functional Javascript
http://book.douban.com/subject/22733640/

踩坑踩怕了,看这个:
http://bonsaiden.github.io/JavaScript-Garden/zh/

@84840
建议跟着这里的教程学一遍:
http://www.codecademy.com/zh/dashboard

书,推荐: turing的《Javascript 基础教程》

《Javascript高级编程》,不推荐。如果没有大量的js实战做经验,这本书属于自虐。
《Javascript权威指南》,不推荐,理由同上。此书的厚度等同于新华字典,通读纯属自虐。当工具书翻看非常合适。

关于DOM方面,看书不合适,看“编程艺术”类的书更不推荐,没有大量经验,不踩大量坑,对此类书不会有什么共鸣,反而会对初学者造成很多束缚。
学习DOM推荐w3cschool的文档,过一遍非常轻松.

http://www.w3school.com.cn/htmldom/index.asp?utm_source=twitterfeed&utm_medium=twitter
whatsupbitch
2014-01-22 17:15:32 +08:00
javascript的dom操作很蛋疼 所以我觉得还是python php好 一边写网站一边练js
mactaew
2014-01-22 17:18:25 +08:00
所以我个人觉得那个入门先学C的年代挺好的,我是从C入门的,后面的学习理解起其他需要来都还是很快的。
MingZhe
2014-01-22 17:24:52 +08:00
有关看技术类的书籍我来说一下吧,像楼主那么看,一章看几个星期,看不懂是正常的,不懂的东西,再盯着看也不一定懂。读书一定要快,迅速看完一本书,能记住多少就记住多少。离散的点多了,就串成线了。。。在没有认识自然数的时候,就想找到1~10中所有的点,是不太现实的。
yyfearth
2014-01-22 17:33:59 +08:00
@83f420984 不明白什么是对象,什么是数组,什么是闭包
这个不是JS的问题,而是计算机编程基础,看来LZ没有计算机专业的背景啊,需要了解一些计算机编程的基础,任何一门语言C/C++/Java/C#入门比较推荐,另外就是基本的数据结构和算法
如果LZ学过C啊,数据结构算法啊之类的,学学JS也还不错
如果LZ真的是完全从零开始学编程,JS确实不是很推荐,对以后的学习可能会造成不好的影响
而且你说的书基本上都对你来说太难了,因为你很多基础概念不熟悉,不知道所以然
另外JS最麻烦的地方就是 DOM操作 面向对象编程 以及 闭包,这些东西至少要你比较了解基本的程序开发,数据结构和熟练使用简单的JS或者jQuery之类的类库之后再慢慢啃
bombless
2014-01-22 19:59:32 +08:00
先有别的语言的基础当然会学的快……所以个人感觉重点在于没有捷径……
miniwade514
2014-01-22 20:15:12 +08:00
我认为,没有编程基础的时候还不适合学 JavaScript,这门语言多少有点非主流,建议先通过 C 或者 C++ 来学习一下最基本的编程,把对象、数组、作用域这些东西理解了,再学 JavaScript。按这样的流程,你应该会觉得 JavaScript 这门语言本身很简单、很单纯,需要下功夫的地方是活用、善用。

《JavaScript DOM 编程艺术》这本书是最早让我迷上 JavaScript 的书。把书上代码都敲下来,一个 Demo 就出来了,这 Demo 比其他语言在终端里面的 output 生动太多了,兴趣一下子就上来了。当然,这本书里涉及的知识还是比较窄的,系统学习还需要其他的书。
January
2014-01-22 20:33:17 +08:00
"是"
zzNucker
2014-01-22 21:04:01 +08:00
javascript哪里接近lisp了。。。
83f420984
2014-01-22 21:08:32 +08:00
@bombless
@miniwade514
@yyfearth 谢谢提醒
flynngao
2014-01-22 21:31:40 +08:00
@wity_lv 为何是@我…………
jesse_luo
2014-01-22 21:39:04 +08:00
学js时花了几天写了个chrome插件,算是了解了语法

我觉得些chrome插件不错,学习的时候可以把重心放在js语言上
wity_lv
2014-01-22 22:12:48 +08:00
@flynngao "我觉得js是超级蠢的语言了,弱类型而且很多情况不用考虑溢出……"
我把"超级蠢"理解成“烂”。
我一直很喜欢javascript这门语言,希望能推广一下javascript好的部分,减少对js误解。

P.S:
"弱类型而且很多情况不用考虑溢出……" 求详解.
dorentus
2014-01-22 23:06:13 +08:00
Geeker
2014-01-22 23:06:41 +08:00
必然是项目驱动学习更好啊,最近实习要做网页,看了看就得上手了,用到不会的立马google,然后现学现用,学起来很快的。不要想把细节问题搞清楚,有些坑说不定一辈子也碰不到,所以先掌握核心,遇到了自然再搜

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/97962

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX