标签:
JavaScript的作用十分巨大,在Web开发中占据了重要的位置,今天来总结一下最近学习的JavaScript的内容。
一,基本数据类型
Number:不区分整型和浮点型,统一用Number表示。
String(字符串):用单引号或双引号括起来的任意文本。
注:推荐在JS中用单引号表示字符串,因为在HTML标签行间样式中一般用双引号设置属性,这样做能做区分。
Boolean(布尔类型):true|false。
Null:null
Undefined:undefined---一般表示数据未定义
注:typeof(undefined)会返回object,这实际上是 JavaScript 最初实现中的一个错误,然后被 ECMAScript 沿用了。现在,null 被认为是对象的占位符,从而解释了这一矛盾,但从技术上来说,它仍然是原始值(引用W3C)。
Object:JavaScript的对象是一组由键-值组成的无序集合。
二,数组
数组在JS中应用十分广泛,作用也很强大,所以单独抽出来介绍。
1)数组属于Object类型的数据。
2)定义数组的两种方式
①new Array(1,2,3);
②var array=[1,2,3];
两种方式均可以定义数组,不过第一种似乎更符合面向对象定义对象的风格。
3)数组的length属性
length属性标志着这个数组中存在的元素的个数,通过array.length可以得到数组的长度。
另外我们随时可以通过length属性的值改变数组的长度,设置为0可以快速清空数组元素,也可以设置大于原数组长度的值,扩充数组(自动用undefined填充)。
4)数组的常用方法
①数组的添加和删除元素
push();向数组的尾部添加元素。
pop();弹出数组的尾部元素。
-->push()和pop()就是栈的操作,如果数组只允许使用这两个方法,数组就变成了和栈一样的数据集合。
shift();弹出数组头部的元素。
unshift();向数组头部添加元素。
-->如果数组只允许使用push()和shift()方法,那么数组就变成了队列一样的数据集合。
②splice()方法
这个方法从数组中添加/删除项目,然后返回被删除的项目。
splice(起始索引,长度);删除从起始位置开始指定长度的元素并返回删除的元素集合。
splice(起始索引,长度,添加元素1,添加元素2...);先删除从起始位置开始指定长度的元素然后从起始位置添加新的元素最后返回删除的元素集合(依然返回删除的元素)。
③concat()方法
方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
var a1 =new Array(1,2,3,4,5); var a2=new Array(10,20); var a3=a1.concat(a2); alert(a1);//1,2,3,4,5 alert(a2);//10,20 alert(a3);//1,2,3,4,5,10,20
可以看出concat对原数组不会有任何影响。
④join()方法
join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。
var a1 =new Array(1,2,3,4,5); var a2=a1.join(‘-‘); alert(a1);//1,2,3,4,5 alert(a2);//1-2-3-4-5
join和concat一样不会影响原数组。
⑤sort()方法
sort()方法很常见,就是一个排序的方法,但是JS数组自带的sort方法很不好用(默认的字符串排序),往往需要我们自己重写。
var a1 =new Array(12,111,524,24,5); a1.sort(); alert(a1);//111,12,24,5,524
默认的字符串排序,我们想使用自定义的排序规则怎么写?
var a1 =new Array(12,111,524,24,5); a1.sort(function(n1,n2){ if(n1<n2){return -1;} else if(n1>n2){return 1;} else {return 0;} //其实上面的代码可以直接写return n1-n2; }); alert(a1);//5,12,24,111,524
这里用到了匿名函数,和JAVA匿名函数类似。
⑥slice()方法
slice(start,end) 方法可从已有的数组中返回选定的元素。返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。
三,事件
事件是与函数不同的概念,事件的发生往往是函数的调用触发条件。也就是说往往某个事件的触发,会导致一个或多个函数的调用,以便实现某种效果。
标签:
原文地址:http://www.cnblogs.com/lfjjava/p/5473385.html