本文用於像我這樣的菜鳥級別,大佬看在碼子不易,給個贊(歡迎指錯和指導),有的是本身寫的,有的嫌麻煩複制的,此文主要用於之後進行內容回顧數組
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 相似,將數組做爲字符串返回 |