這些年我們沒用過的JS


     開博1年多了,還是第一次發表文章,頓感慚愧,但一想凡事都有第一次,要不然,不知道要等到什么時候發我的技術文章了。其實老早就想寫了,但之前總覺得自己技術不夠好,文筆不夠好,所以就沒想過了。其實現在的技術也不是很牛,還是屬於菜鳥階段,希望文章之中有不足之外可以大膽的指出。

好吧,還是入正題吧,標題其實寫的還有點吹了,只是自我感覺對於js的強大之處,知道的還是不夠完善!想和大家分享幾個片段。

1  函數  

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類型

1length屬性,因為在jslength不是只讀的,

所以我們可以為其賦值,可以利用這一點方便在數組未尾添加值,

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轉換為0ture轉換為1,再比較。

--nullundefined是相等的。

--NaNNaN是不相等的。

--一個字符串一個數值會,先將字符串轉換成數值再比較。

//相等與不相等

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM