日期:2014-05-16 浏览次数:20413 次
Javascript发展到今天,很高兴看到她的成功。曾经好多人都这么说:写程序这么多年,现在最看不懂的程序是javascript!javascript虽然是一种弱类型语言,但是她却有着“高贵”的理论。下面是学习javascript过程中的一些小激动时刻,记录下来,大家可以跟我一起感受。
缩略标记
在创建对象和数组的过程中可以使用缩略标记。过去,我们需要创建一个对象时,我们会这样写:
var car =new Object(); car.colour ='red'; car.wheels =4; car.hubcaps ='spinning'; car.age =4;
现在可以这样写:
var car ={ colour:'red', wheels:4, hubcaps:'spinning', age:4 }
这样写更加简洁,并且不用重复写对象名。
JSON数据格式
JSON改变了javascript存储数据的方式,运用JSON,你可以使用javascript自带的格式存储各种复杂的数据并且不需要进行额外的转换,JSON是JavaScript Object Notation的缩写。
例如:想要描述一个乐队的话,可以这样写:
var band ={ "name":"The Red Hot Chill Peppers", "members":[ { "name":"Anthony Kiedis", "role":"lead vocals" }, { "name":"Micheal", "role":"bass guitar" }, { "name":"Chad", "role":"drums" }, { "name":"John", "role":"lead" } ], "year":"2009" }
通读了javascript的数学、数组和字符串函数后,意识到他们会让编程变得非常方便,使用他们可以避免使用许多循环和条件。例如:当需要找到一组数中的最大数时,需要写这样一个循环:
var numbers =[3,324,23,22,124]; var max =0; for (var i=0; i<numbers.length;i++){ if(numbers[i]>max){ max=numbers[i]; } } alert(max);
可以不通过循环这样实现:
var numbers =[3,324,23,22,124]; numbers.sort(function(a,b)(return b-a)); alert(numbers[0]);
其余操作字符串的常用函数式split()和join()。最经典的例子可能就是利用一个函数将css的类添加到元素中。
现在的问题是,当需要在DOM元素中添加一个类时,要么是将它作为第一个类添加,要么是将它和一个空格键一起加在已经存在的类前面。当删除该类时,也需要删除相应的空格。
因此,原始方程应该写成这样:
function addclass(elm,newclass){ var c =elm.className; elm.className=(c==='')?newclass:c+' ' +newclass; }
可以运用split()和join()函数来自动实现:
function addclass(elm,newclass){ var classes =elm.className.split(' '); classes.push(newclass); elm.className =classes.join(' '); }
这样操作可以保证类与空格自动分类且结果被附加在最后。
事件代理
事件使得网络应用可以工作,他的存在,使得用户不需要接触核心代码就可以使产品具有更好的可拓展性。当某一特定的元素或其上DOM层的所有元素发生某一事件时,可以通过单一的处理程序对父元素进行处理来简化事件处理过程,而不是使用大量的程序。比如说想要获得一个连接列表,而且想要通过函数的调用而不是通过加载来获得,其HTML实现方法如下:
<h2>Great Web resources</h2> <ul id ="resources"> <li><a href ="#">Opera Web Standards Curriculum</a></li> <li><a href ="#">Sitepoint</a></li> <li><a href ="#">A List Apart</a></li> <li><a href ="#">YUI Blog</a></li> <li><a href ="#">Blam it on the voices</a></li> <li><a href ="#">Oddly specific</a></li> </ul>