javaScript學習小記-----常用函數

來源:互聯網
上載者:User

1.測試變數的資料類型 ----   typeof
"undefined"            -----             如果這個值未定義
2.測試數字是否位於最大數和最小數之間     -----     isFinite()
var result = Number.MAX_VALUE + Number.MIN_VALUE;
alert( isFinite(result));   //false
3.判斷一個參數是否"不是數值",它會努力嘗試將這個參數轉換為數值     ------  isNaN()
alert(isNaN(NaN));           //true
alert(isNaN(10));              //false
alert(isNaN("10"));           //false             
alert(isNaN("blue"));       //true
alert(isNaN(true));           //false
4.非數值轉換為數值          ------        Number()   、 parseInt()   、parseFloat()
var num1 = Number("hello world");      //NaN
var num2 = Number(" ");                         //0
var num3 = Number("0000011");          //11
var num4 = Number(true);                      //1

var num5 = parseInt("0xA");                    //10(十六進位數)
var num6 = parseInt("070");                    //56(八位元)
var num7 = parseInt("1234blue");          //1234
var num8 = parseInt(" ");                          //NaN
var num9 = parseInt(22.5);                      //22
十六進位指定基數可不帶0x
var num10 = parseInt("AF" ,  16);            //175
var num11 = parseInt("AF");                     //NaN
指定基數
var num12 = parseInt("10" , 2);                     //2(按二進位進行解析)
var num13 = parseInt("10" , 8);                     //8(按八進位進行解析)
var num14 = parseInt("10" ,10);                    //10(按十進位進行解析)
var num15 = parseInt("10" , 16);                   //16(按十六進位進行解析)

var num16 = parseFloat("1234blue");         //1234整數
var num17 = parseFloat("0xA");                    //0
var num18 = parseFloat("22.5");                  //22.5
var num19 = parseFloat("22.34.5");            //22.34
var num20 = parseFloat("0980.5");             //980.5
var num21 = parseFloat("3.125e7");           //31250000
5.檢測數組         ------        instanceof            isArray()
if (value instanceof Array) {
      //假定單一全域執行環境   ECMAScript3
}
if (Array.isArray(value)) {
      //ECMAScript5
}
6.數組的插入和刪除      ------   push()   、pop()    、 shift()   、unshift()
var array = new Array();
push()  :  向數組尾部增加元素,返回新數組的長度
var pushLength = array.push("value1","value2");
alert(pushLength);          //2
pop()  :  移除數組最後一項,並返回移除的項
var item = array.pop();
alert(item);      //value2
unshift()  :  向數組的頭部增加元素,返回新數組的長度
var unshiftLength = array.unshift("value3");
alert(unshiftLength);          //2
shift()  :  移除數組的第一項,並返回移除的項
var itemShift = array.shift();
alert(itemShift);      //value1
7.數組的操作方法  -   刪除、插入、替換  -------splice()
主要是用途是向數組中部插入項
插入:可以向指定位置插入任意數量的項,需提供3個參數:起始位置、0(要刪除的項數)、要插入的項
splice(2,0,"red","blue")     //從數組的位置2開始插入
刪除 :可以刪除任意數量的項,只需提供2個參數:要刪除的第一項的位置和要刪除的項數
splice(2,2)                          //從數組位置2開始刪除,刪除2項
替換:向數組指定位置插入任意數量的項,且同時刪除任意數量的項,只需提供3個參數:起始位置、要刪除的項數、要插入任意數量的項
splice(2,2,"red","blue");    // 從數組位置2開始刪除,刪除2項,然後再從位置2開始插入字串"red","blue"
8.數組的重排序       ------       reverse()  、sort()
var array = [0,1,5,10,15];
sort()  :  根據字串的順序進行排序
array.sort();
alert(array);    // 0,1,10,15,5
reverse()  :  反轉數組順序
array.reverse();
alert(array);     //5,15,10,1,0
實用升序排序:為sort()函數傳遞一個比較函數作為參數
function compare(value1,value2) {    //升序排列
      if (value1 < value2) {
             return   -1;      //升降序控制
      }  else if (value1 > value2) {
            return    1;       //升降序控制
      } else  {
            return 0;
      }
}
array.sort(compare);
alert(array);     //0,1,5,10,15
簡化版的compare函數
function simpleCompare(value1,value2) {
      return  value2 - value1;
}
9.在數組中截取新數組,該操作不會影響原數組   ------   slice()
var array = [1,2,3,4,5,6,7,8,9];
var array1 = array.slice(3);        //4,5,6,7,8,9
var array2 = array.slice(2,4);     //3,4
10.數組構建   ------     concat()
var array = [1,2,3];
var array1 = array.concat(4,5);     //array1 : 1,2,3,4,5
var array2 = array.concat([4,5,6]);      //array2  :  1,2,3,4,5,6
var array3 = array.concat(4,5,[6,7,8]);     //array3  :  1,2,3,4,5,6,7,8
11.位置方法     ------      indexOf()     、   lastIndexOf()
indexOf(param1,param2)  :  param1:要尋找的項(數組內是否包含次元素) ,param2(可選的)尋找的起點位置的索引
var array = [1,2,3,4,5,6,7,8,9];
alert(array.indexOf(5));     //4
alert(array.indexOf(5,5));   //-1     查不到返回-1
12.數組迭代方法:  ------ every()  、filter()  、forEach()  、map()  、some()     IE9+,Firefox2+,Safari3+,Opera9.5+,Chorme
every()  :  對數組中的每一項運行給定函數,如果該函數對每一項都返回true,則返回true;
判斷數組A中的所有元素都在數組B內:
var A = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var B = [1, 2, 5, 6, 6, 8];
var boo = B.every(function(item, index, array){
        if (A.indexOf(item)!= -1) {
                 return true;               
          }
 });
alert(boo);     //true
var C = [1, 2, 5, 6, 6, 8];
var booc = C.every(function(item, index, array){
        if (A.indexOf(item)!= -1) {
                 return true;               
          }
 });
alert(booc);     //false
filter()  :  對數組中的每一項運行給定函數,返回該函數會返回true的項組成的數組。
forEach()  :  對數組中的每一項運行給定函數,無傳回值。
取出數組B中的元素在數組A中出現(未出現)過的元素:
var A = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var B = [1, 2, 5, 6,0, 8];
var arr = new Array();
B.forEach(function(item, index, array){
      if (A.indexOf(item)!= -1) {
             arr[arr.length] = item;           
       }
 });
 alert(arr);    //1,2,5,6,8
map()  :  對數組中的每一項運行給定函數,返回每次函數調用的結果組成的數組。
some():  對數組中的每一項運行給定函數,如果該函數對任一項都返回true,則返回true;
13.縮小方法:      -------      reduce()   、reduceRight()                    IE9+,Firefox3+,safari 4+,Opera 10.5,chrome
迭代數組的每一項,然後構建一個最終的傳回值。函數接收4個參數:前一個值、當前值、項的索引、數組對象
這個函數返回的任何值都會作為第一個參數自動傳給下一項。第一次迭代發生在數組的第二項上,因此第一個參數是數組的第一項。
var array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var sum = array.reduce(function(pre,cur,index,array) {
return pre + cur;
})
alert(sum);    //45
reduceRight()只是反向遍曆,結果不變
14.取得調用方法時的日期和時間的毫秒數  ------      Date.now();
15.日期格式化方法:
toDateString()  :  以特定於實現的格式顯示星期幾、月、日和年。
toTimeString()  :  以特定於實現的格式顯示時、分、秒和時區。
toLocaleDateString()  :  以特定於地區的格式顯示星期幾、月、日和年。
toLocaleTimeString()  :  以特定於地區的格式顯示時、分、秒。
toUTCString()  :  以特定於實現的格式顯示完整的UTC日期。
16.日期/時間組件的方法:
getTime()      ------      返回表示日期的毫秒數;與valueOf()方法返回的值相同

 


17.作為值的函數:比較對象的某一個參數,可根據參數(對象屬性)進行排序。
function createComparisonFunction(propertyName) {
        return function(object1,object2) {
             var value1 = object1[propertyName];
var value2 = obejct2[propertyName];
if (value1 < value2) {
     return -1;
} else if (value1 >value2) {
     return 1;
} else {
     return 0;
}
        }
}

var data = [{name : "zhang" , age : 20 } , {name : "li" ,age : 25 }];
data.sort(createComparisonFunction(name));
alert(data[0].name);     // "li"
data.sort(createComparisonFunction(age));
alert(data[0].name);      //"zhang"
18.函數的內部屬性:     ------         arguments.callee()
階乘計算:
 function factorial(max){
          if (max <= 1) {
                    return 1;
          } else {
                    return max * arguments.callee(max - 1);
          }
}
alert(factorial(5));   //120
一定數值範圍內的階乘計算:
function betweenFactorial (max,min) {
return factorial(max)/factorial(min-1);
}
alert(betweenFactorial(5,4));    //20
19.函數的內建屬性和方法 :    -------       apply()
選出數組中最大/最小的值
var data = [1,2,3,4,65,6,5,8];
var maxValue = Math.max.apply(Math,data);
alert(maxValue);     //56
var minValue = Math.min.apply(Math,data);
alert(minValue);     //1


 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.