日期:2014-05-16 浏览次数:20548 次
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>