Author:Mr.柳上原
- 付出不亞於任何的努力
- 願我們所有的努力,都不會被生活辜負
- 不忘初心,方得始終
終於還是走到了這一天
要奔向各自的世界
一路我們曾攜手並肩
用汗和淚寫下永遠
拿歡笑榮耀換一句誓言
夜夜在夢裏相約
原生javascript結業
nodejs結業
mongodb結業
vuejs結業
該出去找工作了
這幾天廢寢忘食的寫完兩個項目
一個nodejs+mongodb結合pug的全棧博客
一個vue的類商城手機app
上傳到了github上,有需要的朋友可以看看
js的學習筆記
我會上傳完的
謝謝大家!
謝謝老師!
謝謝同學!
謝謝所有人!
放心去飛
勇敢地去追
追一切我們未完成地夢
放心去飛
勇敢地揮別
說好了這一次不掉眼淚
<!DOCTYPE html> <!-- 文檔類型:標準html文檔 --> <html lang='en'> <!-- html根標籤 翻譯文字:英文 --> <head> <!-- 網頁頭部 --> <meat charset='UTF-8'/> <!-- 網頁字符編碼 --> <meat name='Keywords' content='關鍵詞1,關鍵詞2'/> <meat name='Description' content='網站說明'/> <meat name='Author' content='作者'/> <title>前端59期學員作業</title> <!-- 網頁標題 --> <link rel='stylesheet' type='text/css' href='css/css1.css'/> <!-- 外鏈樣式表 --> <style type='text/css'> /*內部樣式表*/ </style> </head> <body> <!-- 網頁主幹:可視化區域 --> <script> /* 閉包: 1.函數a嵌套函數b 2.函數b使用父級函數a的變量或參數 閉包的特性: 閉包內使用的父級函數的變量或參數會永久保存 */ // 普通函數與閉包的區別 document.onclick = function (){ let i = 0; // 每次調用都會從新賦值爲變量原來的值 console.log(++ i); // 普通函數每調用一次後,值都會被回收 } // 解決辦法:定義一個全局變量,或使用閉包 let i = 0; // 在函數外面定義一個全局變量,全局變量不會被回收,長生不老 document.onclick = (function (j){ let i = 0; // 無需定義全局變量 return function ( ){ console.log(++ i, ++j); // 變量i和參數j的值永久保存 } }(0)); // 閉包的應用 // 計算結果緩存 // 階乘 function fn(){ let obj = { "1!": 1 }; let b = 0; return function ff(n){ console.log(`我會運行${b += 1}次`); let attr = `${n}!`; // 階乘 1! 2! 3! if(obj[attr]){ console.log(obj); return obj[attr]; } else { obj[attr] = n * ff(n - 1); return obj[attr]; } } } const fy = fn(); fy(10); // 第一次爲緩存,沒有輸出 fy(9); // console console.log("fy"); // 輸出結果 console.count("我執行了幾次:"); // 監控代碼執行次數 console.dir(fn); // 輸出數據類型的屬性 console.time("fn"); fn(10); console.timeEnd("fn"); // 查看中間代碼執行的時間段 console.assert(1, "斷言提示"); // 當第一個參數爲true,後面的參數不會被輸出到控制檯 console.group("組一"); console.log(1); console.log(1); console.groupEnd("組一"); // 成組輸出信息 console.group("組二"); console.groupCollapsed(1); // 輸出信息加粗 console.groupEnd("組二"); </script> </body> </html>