課程介紹
淺拷貝
深拷貝----------|======>遞歸
遍歷DOM樹-------|======>遞歸------晚上可以把代碼寫出來是最好的
正則表達式-------很重要的東西
元字符
寫幾個正則表達式
寫代碼
正則表達式的案例=========>代碼寫出來
數組和僞數組的區別
複習
apply和call方法的使用和區別
均可以改變this指向的
使用方式:
函數名.apply (對象,[參數1,參數2,參數3,...]);
函數名.cal (對象,參數1,參數2,參數3,....);
我想要使用其餘對象的某個方法, 其餘對象.方法名.apply(當前對象,參數,...);
這個方法就會被當前的對象所使用,同時這個方法中的this就是當前的對象,在調用方法的時候改變了this的指向
bind方法的使用和區別
複製一個方法或者是函數,是在複製的同時改變了this的指向
使用方式:
函數名.bind(對象,參數1,參數2,...);------>返回值是複製以後的這個函數
高階函數---->函數的使用的方式:函數做爲參數使用,函數做爲返回值使用
函數做爲參數使用的時候,這個函數能夠是匿名函數,也能夠是命名函數
做用域和做用域鏈及預解析
閉包: 函數中有另外一個函數, 或者是一個函數中有另外一個對象, 裏面的函數或者是對象均可以使用外面函數中定義的變量或者數據, 此時造成閉包
function f1(num){
return function(){
console.log(num);
}
}
f1(20)
閉包模式: 函數模式閉包, 對象模式的閉包
閉包的做用: 緩存數據, 延長做用域鏈, 同時也是缺點, 函數中的變量不能及時的釋放
沙箱: 就是一個環境, 也能夠叫黑盒, 在這個環境中模擬外面真實的開發環境, 完成需求, 效果和外面的真實的開發環境是同樣的
沙箱避免命名衝突
遞歸: 函數中調用函數本身, 遞歸必定要有結束的條件, 不然就是死循環
遞歸: 通常應用在遍歷上
遞歸輕易不要用,效率很低