請看菜鳥如何看書(憋住,別笑我)

本文用於像我這樣的菜鳥級別,大佬看在碼子不易,給個贊(歡迎指錯和指導),有的是本身寫的,有的嫌麻煩複制的,此文主要用於之後進行內容回顧數組

持續更新中~

js基礎


  • 1.變量做用域---全局變量與局部變量bash

    var str1 = 'global';
    str2 = 'global';
    function myFunction() {
        var str1 = 'local';
        return str1;
    }
    function myOtherFunction() {
        str2 = 'local';
        return str2;
    }
    console.log(str1); //{1}
    console.log(myFunction()); //{2}
    console.log(str2); //{3}
    console.log(myOtherFunction()); //{4}
    console.log(str2); //{5}
    複製代碼

    {1}---輸出global,由於他是全局變量函數

    {2}---輸出local,由於str1是在函數myFunction裏面聲明的,因此僅做用在此函數自己做用域內ui

    {3}---輸出global,str2賦值爲第二行spa

    {4}---輸出local,由於沒有用var至關於str2在本身函數做用域內進行了全局賦值code

    *拓展>變量聲明時使用了var若是在局部就是局部變量,未使用至關於所有變量(其實只是全局的一個屬性)
      >>>變量與屬性的區別:前者不可刪除,後者能夠刪除!如:delete str1 不可刪除, delete str2  能夠刪除
    複製代碼

    {5}---由於{4}進行了從新賦值,此時str2爲localcdn

    注:代碼中應儘可能減小全局變量,或使用let對象


  • 2.操做符---三元運算符blog

    三元運算符排序

    let a = 1
           let b = 2
           let c = 3
           let d = 4
       //1.
           p = a == 1 ? a : b          //a是否等於1,是p=a,不然p=b
           
       //2. ---這裏至關於一個增強版,直接能夠避免寫switch...case,可是也很差理解
           p = a == b ? 1 : (a == c ? a : (a == d ? a : d))     
           //a是否與b相等,若是是p=1. 若是不是,a是否與c相等,若是是,p=a. 若是不是,a是否與d相等,若是p=a,若是不是p=d
    複製代碼

  • 真假 ---這裏直接貼出來參考

    數值類型 轉換成布爾值
    undefined false
    null false
    布爾值 true是 true ,false是 false
    數字 +0、0和 NaN 都是 false ,其餘都是 true
    字符串 若是字符串是空的(長度是0)就是 false ,其餘都是 true
    對象 true

數組

1.斐波那契數列

此數列就是入門級別的,不知道我檔次怎麼都不會(別笑我,笑我我也不認可)

    已知第一個數爲1,第二個數爲2,第三個是前兩個數之和,一次類推,列出前20個數
    已知數組arr[0] = 1, arr[1] = 2;
    而後得出arr[i] = arr[i-1] + arr[i-2]
    那麼就容易了:
複製代碼
let arr = [1,2]
        for (let i=2; i<20; i++) {
            arr[i] = arr[i-1] + arr[i-2]
        }
複製代碼

結果就是

2.組件插入值

在一個數組開頭插入一個值
若是用unshift很簡單,直接arr.unshift(number)
如今用原始方法實現它,原理就是把全部值日後移一位,而後把arr[0]賦值
複製代碼
let arr = [1, 2, 3, 4, 5]
     let newArr = [10]
     for (let i = arr2.length; i>0 ;i--) {
             newarr[i] = arr2[i-1]
     }
複製代碼

結果:

3.多維數組

先接圖一用:

此二維數組,[[72,75,79,79,81,81],[81,79,75,75,73,73]]

傳統若是要將此二維數組合併爲一維數組要先拿到全部數組值,而後賦值給一個新數組,如:
先進行數組遍歷:
            for (var i=0; i<arr.length; i++) {
                for (var j=0; j<arr[i].length; j++) {
                    newArr.push(arr[i][j])
                }
            }
//更加多維數組也能夠用同樣的方法
複製代碼
使用稍微新點的方法
    var newArr=[]
    arr.forEach(item => {
        newArr = [...newArr, ...item]     //這裏使用concat也能夠
    })
複製代碼

都爲

其餘數組方法本身再探索了! 相關數組方法:

方法名 描 述
concat 鏈接2個或更多數組,並返回結果
every 對數組中的每一項運行給定函數,若是該函數對每一項都返回 true ,則返回 true
filter 對數組中的每一項運行給定函數,返回該函數會返回 true 的項組成的數組
forEach 對數組中的每一項運行給定函數。這個方法沒有返回值
join 將全部的數組元素鏈接成一個字符串
indexOf 返回第一個與給定參數相等的數組元素的索引,沒有找到則返回-1
lastIndexOf 返回在數組中搜索到的與給定參數相等的元素的索引裏最大的值
map 對數組中的每一項運行給定函數,返回每次函數調用的結果組成的數組
reverse 顛倒數組中元素的順序,原先第一個元素如今變成最後一個,一樣原先的最後一個元素變成了如今的第一個
slice 傳入索引值,將數組裏對應索引範圍內的元素做爲新數組返回
some 對數組中的每一項運行給定函數,若是任一項返回 true ,則返回 true
sort 按照字母順序對數組排序,支持傳入指定排序方法的函數做爲參數
toString 將數組做爲字符串返回
valueOf 和 toString 相似,將數組做爲字符串返回
相關文章
相關標籤/搜索