开博1年多了,还是第一次发表文章,顿感惭愧,但一想凡事都有第一次,要不然,不知道要等到什么时候发我的技术文章了。其实老早就想写了,但之前总觉得自己技术不够好,文笔不够好,所以就没想过了。其实现在的技术也不是很牛,还是属于菜鸟阶段,希望文章之中有不足之外可以大胆的指出。
好吧,还是入正题吧,标题其实写的还有点吹了,只是自我感觉对于js的强大之处,知道的还是不够完善!想和大家分享几个片段。
1 函数
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不是只读的,
所以我们可以为其赋值,可以利用这一点方便在数组未尾添加值,
var colors = ["red", "blue", "green"];
colors[colors.length] = "black";
colors[colors.length] = "brown";
alert(colors.toString());
关于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
PS:感觉写的有点乱,排版不太好,不知道怎么排版比较好!有事可以给我写邮件 766116452@qq.com