## 1函數遞歸函數遞歸 自己調用自己 ## 2變數 全局變數 1在函數外部定義的變數 2在任何地方可以使用 局部變數 1函數體內部通過var定義的變數 2局部變數只能在所在函數內使用 3當局部變數與全局變數同名時,用自己的 變數不加var 預設是隱形的全局變數 但是書寫的時候一定要加 瀏覽器 js ...
## 1函數遞歸
函數遞歸---自己調用自己
## 2變數
全局變數
1在函數外部定義的變數
2在任何地方可以使用
局部變數
1函數體內部通過var定義的變數
2局部變數只能在所在函數內使用
3當局部變數與全局變數同名時,用自己的
變數不加var 預設是隱形的全局變數 但是書寫的時候一定要加
瀏覽器
js解析器或js引擎
1預解析
沒有解讀代碼之前的操作 會找var function
變數聲明提升
2逐行去解讀代碼
# 3數組API
api application interface 應用程式介面
數組的增加與刪除
arr.push() 在數組的末尾增加一個或者多個元素
arr.unshift()在數組的前面增加一個或者多個元素
arr.pop()在數組的末尾刪除一個元素
arr.shift()在數組的前面刪除一個元素
刪除的時候括弧裡面不需要加東西
splice()在數組任意位刪除或添加元素
splice(3,2)從索引為3開始 刪除兩個元素 索引3也刪除
splice(3,0,3,5)從索引為3的位置開始 刪除0個 插入兩個 插入的元素下標從3開始
```
var arr1=[1,2,3,4];
var arr2=[5,6,7,8];
var res =arr1.concat(arr2,9);
console.log(res);
Array(9) [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
```
concat表示數組連接其他值 不改變原數組
迭代器方法
every方法會迭代數組中的每個元素 直到遇到返回false
arr.every(function);
也會迭代每個元素 直到遇到true結束
arr.some(function);
迴圈整個數組與for迴圈結果相同
arr.forEach(function)
返回一個新數組 新數組返回函數所有的true和false
arr.map(function)
返回一個新數組 新數組由函數返回值為true的元素組成
arr.filter()
arr.reduce()
數組逆序
reverse()
數組排序
sort() sort是把數組中的元素按照字元串排序的
搜索問題
indexOf()
從數組的末尾去找
lastIndexOf()
# 4字元串
api
str.charAt(n); 返回位置n上的字元
str.charCoedAt(n)返回位置n上的字元的Unicode編碼
"a" 97 "A" 65 "0" 48
String.fromCharCode(n)返回數字對應的字元
indexOf("字元")從左到右在字元串中查到第一個符合的字元找不到返回-1
lastIndexOf("字元")從右開始就是從後面開始
substr(n)表示字元串從n這個位置一直截取到最後 原來的字元串不變
substr(n,length)表示字元串從num這個位置截取length長度的的字元串
substring(n)表示字元串從n這個位置一直截取到最後 原來的字元串不變
substring(n,n)表示字元串從n開始截取到n的位置,但是不包含n這個位置
split()把字元串分隔為字元串數組
join()把字元串連接