函数
1,理解参数
Js,并不介意传递进来多少个参数也不在乎传递进来的参数是什么类型的,即便你定义是一个参数,调用函数时也可以传入两个参数,因为在参数内部是用一个数组来表示的,函数接收的始终是这个数组,可以用arguments对象来访问这个数组
因为js函数没有重载,所以我们可以根据传入函数中的参数的类型和数量作出不同的反应,实现伪重载,
function siHi() {
alert("Hello "+arguments[0]+","+arguments[1])
}
siHi("Jack", "how are you today!");
function doAdd() {
if(arguments.length == 1) {
alert(arguments[0]);
}
else if(arguments.length == 2) {
if(typeof arguments[1] == “string") {
alert(arguments[0] + " " + arguments[1])
}
}
}
doAdd(10, "20");
doAdd(30);
2,Array类型
1,length属性,因为在js中length不是只读的,
所以我们可以为其赋值,可以利用这一点方便在数组未尾添加值,
?
|
关于Array的几个方法
1,栈方法
push与pop(后进先出)
A ,push()方法可以接受任意数量的参数,把它们逐个添加到数组的末尾,并返回修改后数组的长度。而pop()方法则从数组末尾移除最后一项,减少数组的length值返回移动的项
var colors = new Array();
var count = colors.push("red", "green"); //推入两项
alert(count); //2
count = colors.push("black"); //推入另一项?
alert(count); //3
var item = colors.pop(); //取得最后一项?
alert(item); //"black"
alert(colors.length);//2
队列方法(先进先出)
shift()
它能够移除数组中的第一个项并返回该项,同时将数组长度减1.
var colors = new Array();
var count = colors.push("red", "green"); //推入两项
alert(count); //2
count = colors.push("black"); //推入另一项
alert(count); //3
var item = colors.shift(); //取得第台一项
alert(item);//red
alert(colors.length);//2
重排序方法
reverse()和sort()
Reverse() 反转数组顺序
Sort(),按升序排列数组项,它会调用每个数组项的toString()转型方法,然后比较得到的字符串,即使每一项都是数值类型也会转换成字符比较。
var values = [1, 2, 3, 4, 5];
values.reverse();
alert(values);
var values = [0, 1, 5, 10, 15];
values.sort();
alert(values);
//比较函数 如果第一个参数应该位于第二个之前则返回一个负数,相等返回0
function compare(value1, value2) {
if(value1 < value2) {
return -1;
} else if(value1 > value2) {
return 1;
}
else {
return 0;
}
}
var values = [0, 1, 5, 10, 15];
values.sort(compare);
alert(values);
//该函数和上一个函数效果一样,从这里可以看出一个算法,逻辑,思路够牛的编码方式是多么的牛逼!
function compare(value1, value2) {
return value2 - value1;
}
数组中最强大的方法 splice()
主要用途是向数组的中部插入项。
a,删除---可以删除任意数量的项,只需传入两个参数:要删除的第一项的位置和要删除的项数,例如,splice(0,2),删除数组中的前两项。
b,插入---可以向指定位置插入任意数量的项,只需提供3个参数:起始位置,0(要删除的项数),和要插入的项。例如,splice(2,0,”red”,”green”)会从当前数组的位置2开始插入字符“red”和”green”.
c,替换---与插入操作类似,也是提供三个参数,但这次是要删除你将要替换的值。然后插入新值,完成替换操作。例如,splice(1,1,”red”,”green”)会从当前数组的位置2开始插入字符“red”和”green”.
3 Date类型
Date.parese(),是根据UTC(国际协调时间)1970-1-1年夜开始经过的毫秒数来保存日期的,
var startDate = "2012/07/08 12:00:00";
var endDate = "2012/07/08 13:00:00";
alert(Date.parse(startDate));
if(Date.parse(startDate) > Date.parse(endDate)) {
alert(1);
}
注意,没有定义date.parese()应该支持那种日期格式,因此这个方法的行为因实现而异,而且因地区而异,将地区设置为美国的浏览器通常都接受下列日期格式。月/日/年,英文月名 日,年 如January 12 2004,英文星期几 英文月名 日 年 时:分:秒 时区 如Tue May 25 2004 00:00:00 GMT-0700
4 操作符
相等操作符
1,相等与不相等:先转换类型再比较
2,全等与全不等:仅比较而不转换
在转换不同的数据类型时,相等与不相等操作符遵循下基本原则(简单列举):
--操作符是布尔值时,会将false转换为0,ture转换为1,再比较。
--null与undefined是相等的。
--NaN与NaN是不相等的。
--一个字符串一个数值会,先将字符串转换成数值再比较。
//相等与不相等
null==undefined true
‘NaN’==NaN false
5==NaN false
NaN=NaN false
false=0 true
“5”==5 true
true==1 true
//全等与全不等
“5”===5 false
“5”!==5 true