開博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