| 
注册时间2011-5-26最后登录2011-6-12阅读权限10积分11精华0帖子1
 
 
 | 
| 1.Array类 Array对象的三种创建形式:
 第一种、var arr = new Array(10)
 第二种、var arr = new Array(“one”,“two”,“three”)
 第三种、var arr = [“one”,“two”,“three”]
 
 由于js的数组的长度是可变的,所以第一种方法并不实用,第三种方法采用了数组的字面量方法创建数组对象完全等价于使用new方法创建数组对象的效果,而且可以简写成var arr = [],提高数组的灵活性。
 
 1>  push方法和pop方法
 使数组实现了栈的数据结构,可以使用arr[arr.length] = newValuew方法向arr数组添加一个新的元素并置于数组尾,更好的方法是使用push
 arr.push(newValue)
 pop 方法则是实现与 push 相反的作用,返回数组的最后一个元素,并出栈。
 arr.pop()
 2> toString()、ValueOf()、toLocaleString()
 把每一项都调用toString()方法,然后用逗号连接
 var arr = [1,2,3,4,5];
 document.write(arr.toString())//OutPut: 1,2,3,4,5
 document.write(arr.ValueOf())//OutPut: 1,2,3,4,5
 document.write(arr.toLocaleString())//OutPut: 1.00, 2.00, 3.00, 4.00, 5.00
 3> join  将数组转换为一个字符串
 arr.join(‘*’) // OutPut: 1*2*3*4*5
 
 3> concat 和 slice
 concat 方法,该方法将其参数们按序加入数组元素中。
 var arr = [1,2,3,4,5];
 arr = arr.concat(6,7,8); // OutPut: 1,2,3,4,5,6,7,8,9
 注意, concat 并不修改数组对象本身,而是将数组元素与 concat 方法的数组元素合并后返回。所以需要给数组元素进行赋值运算才行。
 
 slice 方法则是从数组对象中返回一个子数组。该子数组是从 slice 方法的第一个参数所指位置至第二个参数所指的位置。这是一个半开半闭区间 [a,b) 。
 var arr1 = arr.slice(1,3);
 alert(arr1); //output:2,3
 
 4> shift 和 unshift
 这两个方法实现了数组的队列数据结构。
 shift ,他删除数组对象的第一个元素并返回:
 var ele = arr.shift(); //OutPut: 1
 unshift ,他将新元素插入数组对象的第一项
 
 5> sort 和 reverse
 sort 方法接收一个匿名函数(其实,它同样可以接收一个非匿名的函数,但是通常不推荐为此而创建一个这样的命名函数,除非该函数可重用)作为自己的排序的条件。
 Object.prototype.toString = function(){
 var str = '';
 for(var item in this) {
 str += item + ":" + this[item] + ",";
 }
 return str.length?str.substr(0,str.length-1):str;
 };
 
 var arr = [{key:3,value:"three"},{key:1,value:"one"},{key:2,value:"two"}];
 arr.sort(function(a,b){
 return a.key - b.key;
 });
 alert(arr);
 //output:key:1,value
  ne,key:2,value:two,key:3,value:three reverse 方法可以将数组对象反转。他和 sort 方法一样是修改数组对象内部元素顺序的。
 arr.reverse(); // output : 5,4,3,2,1
 6> splice
 splice 方法,他是替换和删除数组对象元素的方法。根据参数的改变而拥有不同的实现结果。
 splice(pos,count[,insertParams]);
 pos 参数是删除元素的第一个项的位置, count 参数是删除元素的个数,当为0时则不删除, insertParams 则是参数列表,这些参数是即将插入的元素集合。插入的位置为 pos 。那么就出现了以下几种情况了。
 1、 insertParams 忽略时,该方法就是删除数组元素
 2、 当 count 参数为0时,该方法将只是将 insertParams 插入到 pos 位置
 3、 当 count 参数不为0且 insertParams 不忽略时,该方法就是删除 pos 位置开始的 count 个元素,并替换 insertParams 参数集合。
 
 2. Math类
 Math 通常是一个“静态”类
 Math.random 方法返回的是一个 0到1 之间的开区间浮点数,即 (0,1)
 当我们需要取整的时候,对需要使用floor和ceil方法。前者使得 random 间接转换为前闭后开区间,而后者则是前开后闭区间,前者是向上取整,而后者则是向下取整。
 需要一个取1-100的随机数,那么有如下的两种常用解决方案
 方法一:Math.ceil(Math.random*100);
 方法二:Math.floor(Math.random*100)+1;
 Math.round 方法,他在取整时根据数值进行靠近取整 (四舍五入)
 
 3. String类
 创建一个字符串对象有以下几种方法:
 方法一:var str = new String("Hello World");
 方法二:var str = String("Hello World");
 方法三:var str = "Hello World";
 推荐大家使用最后一种方法,及字符串字面量。
 
 String 对象有且只有一个属性 length ,返回字符串的长度 ,需要注意的是,JavaScript 是 unicode 编码,那么汉字和英文都当作一个字符长度来处理 。
 return this.replace(/[^\u0000-\u00FF]/g,“**").length
 
 1> indexOf 和 lastIndexOf 方法。
 这两个方法从是从字符串中查找一个字符或字符子串,区别在于查找方向,前者是从位置 0 处开始查找,并返回第一个查找到的位置,后者从位置 length-1 处开始查找,并返回第一个查找到的位置。如果查找不到呢,返回 -1 。
 2> charAt 和 charCodeAt
 charAt 和 charCodeAt 方法根据一个位置索引来返回字符,其中前者是返回字符本身,后者返回字符编码。
 var str = “北极博导前程信息技术有限公司”;
 alert(str.charAt(5)); //output:程
 alert(str.charCodeAt(5));//output:31243
 
 3>  slice , substr 和 substring
 slice(start[,end]) 方法需要提供至少一个整数参数,作用是返回从 start 的位置开始到 end 位置的字符子串。当参数 start 为负数的时候他将从字符串尾部开始计算。当 end 没有指定时, end 即为字符串的结尾。如果为负数呢,他也要从字符串尾部开始计算。
 var str = "
  rofessionalC#2008"; document.write(str.slice(0,5));//Profe
 document.write(str.slice(-6));//C#2008
 document.write(str.slice(-8,-2));//alC#20
 
 substr 方法, substr(pos[,length]) 方法中,如果 pos 为负数,则与 slice 的负数解释相同, length 省略时与 slice 的 end 省略也相同。
 
 substring 方法, substring(from[,to]);
 从定义上就可以看到,后一个参数是一个位置,而非长度,因此他更像 slice ,但是与之有一点重要的区别,那就是 slice 方法不包含 to 位置。即是一个半开半闭区间。另一个区别是 substring 不支持负向位置,如果第一个参数为负数,那么就是从位置 0 开始。后一个位置如果是负数,则返回空串,如果第二个参数小于第一个参数,那么同样返回空串,但是如果相等呢,还是空串,因为这是一个半开半闭区间 [from,to) 。
 document.write(str.substring(5,12));//ssional
 4. Date类
 创建一个日期对象可以有这些方法
 方法一:var d = new Date(ms);//ms代表从1970.1.1凌晨0点的毫秒数
 方法二:var d = new Date(year,month[,day,hour,minute,second,millisecond]);
 方法三:var d = new Date(“localDateString”);//这里不是那么的通用。2011/5/5格式相对通用。
 
 getDate/setDate。该方法操作的是天数,而非日期值。这个还是有点不大直观的。
 getDay/setDay。该方法操作的是周数,序数从0开始,即周日的值是0。
 getMonth/setMonth。该方法操作的是月数没有疑问,但是月数是从0开始。
 getFullYear/setFullYear。我通常建议用这组方法来代替直观的getYear/setYear。
 toDateString/toTimeString==输出日期的方法。但是并不是那么的好用。
 
 5. 全局对象
 编码、解码方法
 encodeURI :可把字符串作为 URI 进行编码document.write(encodeURI("http://www.w3school.com.cn/My first/"))
 //http://www.w3school.com.cn/My%20first/
 encodeURIComponent() : 可把字符串作为 URI 组件进行编码。
 document.write(encodeURIComponent("http://www.w3school.com.cn"))
 //http%3A%2F%2Fwww.w3school.com.cn
 decodeURI() : 可对 encodeURI() 函数编码过的 URI 进行解码。
 decodeURIComponent() : 可对 encodeURIComponent() 函数编码的 URI 进行解码。
 isNaN() 函数用于检查其参数是否是非数字值。如果是特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true。如果是其他值,则返回 false。
 Number方法只能把真正的数字转换为数字
 此外还有eval函数,settimeout,setInterval 等函数
 
 
 
 | 
 |