原生JS 必定要學會本身封裝函數,否則還怎麼‘原生’?

對於一些編程新手來講,他們最煩惱的事情莫過於本身封裝函數了,既要實現該它的本來功能,還能封裝成函數,爲了方便之後書寫代碼時候更加便利,因此你們每次在封裝一個函數以後,使用的時候直接調用就能夠了。接下來就讓小編帶你走進個人代碼世界吧。node

封裝一個isNaN函數

思想: 把處理好的數字,轉成字符串,再去和isNaN做比較編程

function myIsNaN(n) {
    var num = Number(n);
    if (num + '' === 'NaN') {
        // 把處理出來的數字轉化成字符串,在去和NaN作比較
        return true
    }
    return false //打斷函數的執行
}
複製代碼

封裝一個myPush方法

function myPush(ary,n){
    ary[ary.length] =n;
}
var ary=[1,2];
myPush(ary,222);
console.log(ary);  
複製代碼

封裝一個方法,能夠獲取某個元素下的全部元素子節點

function getChildren(ele){
    // 從childNodes中篩選出元素子節點便可
    var ary=[];
    for(var i=0;i<ele.childNodes.length;i++){
        if(ele.childNodes[i].nodeType == 1 ){
            ary.push(ele.childNodes[i])
        }
    }
    return ary;
}    
複製代碼

封裝一個函數,使用splice 實現 push pop unshift shift

function mypush2(arr,...abc){   //剩餘運算符...在函數中
    //abc是個數組,存儲的是除了第一項以後的全部項   
    <!-- var ary=arguments[0];  咱們要操做的數組   -->
    arr.splice(arr.length,0,...abc)
    //在數學中,就叫擴展運算符(解構),把abc數組拆開  
    return arr.length;
}
var ary=[1,2]
mypush2(ary,4,5,[6,7,8],9)

function mypop(arr){
    return arr.splice(arr.length-1,1)[0]
}
mypop2=ary
複製代碼

封裝一個函數,mypush,返回值是改變後的數組長度

function mypush(arr){
    var ary=arguments[0]; // 咱們要操做的數組
    for(var i=1;i<arguments.length;i++){
        arr[arr.length]=arguments[i]
    }
return arr.length
}   
var ary=[1,2]
mypush(ary,4,5,[6,7,8],9)
console.log(ary); //[1,2,4,5,[6,7,8,],9]
複製代碼

封裝一個本身的pop

function mypop(arr) {
        var a=arr[arr.length-1]
        arr.length--
        return a
    }
    var ary = [1, 2, 3];
    var res=mypop(ary);
    console.log(ary,res)
複製代碼

數組的排序和反轉 sort

  • 排序 sort(function(a,b)){ //支持任意數 這是一個升序 } sort(function(a,b){ return b-a; //降序 })

封裝一個myReverse方法(翻轉函數)

  • 原理: 循環傳進來的數組arr,把數組中的每一項經過unshift添加到一個新數組中,而後把新數組返回。數組

    function myReverse(arr) {        
          var a = [];
          for (var i = 0; i < arr.length; i++) {
              var temp = arr[i];
              a.unshift(temp)
          }
          return a;
      }
      var ary = [1,2,3,4];
      var res2 = myReverse(ary);
      console.log(res2, ary);
      //這個方法不改變原來數組,新數組是倒敘輸出。    
    複製代碼

從新封裝一個新的myRevers2

  • 原理:第一項和最後一項換位置,第二項和倒數第二項換位置....以此類推,若爲基數,中間值保持不動 function myRevers2(arr){ for(var i=0; i<arr.length/2; i++>){ var temp = arr[i]; arr[i] = arr[arr.length-1-i]; //arr[i]帶表前邊的項,arr[arr.length-1-i]表明後面的項 arr[arr.length-1-i] = temp; } return arr;
    }
    var res3=myRevers2(arr1) consloe.log(res3,arr1)

封裝一個方法,和join()用法同樣,按照指定字符拼接成字符串,不穿餐廚,默認逗號拼接。

var res2=ary.join('+')
var ary = [1,2,3,4];
function myjoin(arr,str){
    var s='';
    //把數組中的每一項拿出來,跟指定字符拼接便可
    for(var i=0;i<arr.length-1;i++){
        s += arr[i] +str
    }
    return s
}   
var res=myjoin(ary,'+'); 複製代碼
相關文章
相關標籤/搜索