开始接触JavaScript是从慕课网开始的,基础篇学完。懵了一逼,可能是自己太蠢。感觉跟没学差不多,属性,方法,对象,什么都不懂。有的方法知道起的是什么效果,但是原理什么的都不知道。

还好,基础篇学完,天猫上买的书到了,买的是网友强推的《JavaScript DOM编程艺术》,看了一半多了。怎么说呢?我觉着,还是跟书学习比较靠谱。这本书除了教你怎么使用JavaScript表现网页行为以外,还经常提醒你在编写代码的时候容易遇到的各种坑,教你形成良好的代码编写风格。总之,受益匪浅。至少我现在对上面提到的三个术语概念比较清楚了。比如下面这段代码:

 function myFunction(a,b)
{
return a*b;
} document.getElementById("demo").innerHTML=myFunction(4,3)

代码第一行是建立一个叫myFunction的函数,参数为两个变量 a 和 b。

代码第三行是返回 a 和 b 的乘积。

代码第五行是将 myFunction函数的执行结果替换到网页中一个ID为 demo 的标签里。

其中,document.getElementById("demo")为对象,通俗理解就是方法要实行的目标。innerHTML为方法。另外,我一直没能理解函数里的参数是起什么作用,可能是接触得不多,还不太明白原理。初步推测参数应该是一个变量。那这个变量应该是怎么赋值的,上边那段代码的方法显然不适合其他场景。这是个坑,希望下次更新的时候能填上。

另外,我还翻了几页《JavaScript面向对象编程指南》,感觉这本书的编写思路和《JavaScript DOM编程艺术》不一样。如果把前者比喻为《九阳神功》的话,后者就是《独孤九剑》。很难说出优劣,只看你的需求。《JavaScript DOM编程艺术》着重指导读者使用JavaScript 语言表现网页的行为。除了讲解JavaScript在网页端的各种方法表现以外,还多次强调了JavaScript和HTML/CSS的结合。而《JavaScript面向对象编程指南》则是把JavaScript当成一门编程语言来讲解。概念方面讲得比较透彻,也容易理解。两本都是入门的好书。

接下来的学习安排是把《JavaScript DOM编程艺术》这本书争取在年前看完,案例代码都敲一遍。《JavaScript 面向对象编程指南》作为参考书。前者完事以后,重心转移到后者,加深理解。离预期转行的时间还早,接下来的安排仍然是《JavaScript 面向对象编程指南》看完以后,继续《JavaScript 语法精粹》。这三本看完以后,应该对JavaScript的理解会透彻很多。也就敢上源码网站去看别人写的代码了。那时候,应该学JQuery等框架也会容易得多,定一个小目标的话,三月份以前完成吧。

贴一段最近写的代码,虽然也是照抄的案例代码,希望各种山寨以后,百炼成金吧!

/*这段代码的作用是获取网页中的缩略词并生成列表显示*/
/*这是一个名叫displayAbbreviations的函数*/
function displayAbbreviations(){
if(!document.getElementsByTagName || !document.createElement || !document.createTextNode) return false;
var abbreviations = document.getElementsByTagName("abbr"); if(abbreviations.length<1) return false;
var defs = new Array(); for(var i=0; i<abbreviations.length; i++){
var current_abbr = abbreviations[i];
if (current_abbr.childNodes.length < 1) continue;
var definition = current_abbr.getAttribute("title");
var key = current_abbr.lastChild.nodeValue;
defs[key] = definition;
}
var dlist = document.createElement("dl"); for(key in defs){
var definition = defs[key]; var dtitle = document.createElement("dt");
var dtitle_text = document.createTextNode(key);
dtitle.appendChild(dtitle_text); var ddesc = document.createElement("dd");
var ddesc_text = document.createTextNode(definition);
ddesc.appendChild(ddesc_text); dlist.appendChild(dtitle);
dlist.appendChild(ddesc);
}
if (dlist.childNodes.length < 1) return false;
var header = document.createElement("h2");
var header_text = document.createTextNode("Abbreviations")
header.appendChild(header_text); document.body.appendChild(header); document.body.appendChild(dlist);
}

<strong>加油!</strong>

05-08 15:10