箭頭函式(Arrow Function)
ES6 增加了箭頭函式使我們的程式碼更簡潔
去掉
function
加入=>
只有一個參數()
可加可不加,兩個以上一定要加(params,params2)
箭頭函式this
指向外層
函式比較
1 | // ES5 |
1 | // ES6 |
this比較
1 | // ES5 |
1 | // ES6 |
ES6 增加了箭頭函式使我們的程式碼更簡潔
去掉
function
加入=>
只有一個參數()
可加可不加,兩個以上一定要加(params,params2)
箭頭函式this
指向外層
1 | // ES5 |
1 | // ES6 |
1 | // ES5 |
1 | // ES6 |
在 ES6 之前 JavaScript 沒有區塊域的概念,因此經常使用 var
來宣告變數,
而造成區域變數覆蓋到全域變數,因此才有 let
、const
來避免此狀況產生。
用法就跟 var
沒有差別,但作用域只在括號內,讓我們看個經典例子來瞭解
1 | for (var i = 0; i < 3; i++) { |
我們會發現出來的結果是 這執行第3次
,而不是我們要的結果,
因為 var
宣告 i
會變成全域變數,造成 for
迴圈累加,
在 setTimeout
實際執行時只會拿到 3 這個數字。
此時在查找 i
,發現 i=3
,疑~🧐 不是只會作用在函式裡嗎?
怎麼 window 也讀得到?
let
改寫1 | for (let i = 0; i < 10; i++) { |
我們會發現結果會依序跑出,且查找i
,
顯示 Uncaught ReferenceError: i is not defined
,i
變數未被宣告,因為 let
作用域只在括號內。
是宣吿一個常數,且必須一定要有值,不可被更改。
1 | const a=1; |
因為物件是傳址而不是傳值
1 | const CLOTHES ={ |
盡量少用
var
用let
、const
做取代const
可以宣告不太會更動的內容。ex: DOM 、物件、apiconst
常數可以用大寫,以利區分
s
在開發中我們會有許多版本,像是開發版、測試版,測試功能都正常,才會合併到上線版。
分支就像是影分身術的概念,而我們會透過
git
的指令,來取需要分身的部分。
1 | 新增分支:git branch 分支名稱 |
HEAD
表示目前在哪裡,預設是指向master
1 | 切換分支:git checkout 分支名稱 |
HEAD
代表目前位置HEAD^
代表 HEAD 往前一個版本,HEAD^^
代表 HEAD 往前二個版本HEAD~1
代表 HEAD 往前一個版本,HEAD~4
代表 HEAD 往前四個版本
在使用 merge
合併分支的時候,git
預設會以 fast-forward
的模式進行,那什麼是 fast-forward
和 no-fast-forward
呢?
1 | git merge 分支名稱 |
1 | git merge 分支名稱 --no-ff |
可以很清楚的看到同樣都是 merge
,使用 no-fast-forward
的模式,會長出小耳朵,可以讓成員在日後很清楚辨識不同的 Commit
歷程,但小耳朵過多會造成混亂,所以會需要 fast-forward 用來 merge
些較不重要的 Commit
,像是零碎的 bug fix
,保持 Commit
的乾淨。
重要的合併用
git merge 分支名稱 --no-ff
不重要的合併用git merge 分支名稱
當同時修改同一個檔案的同一行code,就會發生衝突,
因為 git
無法知道哪個才是正確的內容,
這時就需要雙方溝通,看要用誰的code。
假設我們在 cat
分支修改了 index.html
的內容如下:
然後在 dog
分支剛好也修改了 index.html
,內容如下:
這時候進行合併,發現因為第 9 行重複,所以產生了衝突,
此時狀態,已被放置至暫存區。
選要用哪個內容,在跑過一次 Commit
流程,就解決衝突了。
從字面上來看,「rebase」是「re」加上「base」,翻成中文大概是「重新定義分支的參考基準」的意思。
優點:很自由可以自己決定歷史順序
缺點:有時候恍神失智,忘了自己 Rebase
到哪,
不小心弄壞了還不知道怎麼 reset
回來 (¬_¬),
發生衝突時會停在一半,對不熟悉 Rebase
的人來說是個困擾
通常在還沒有推(Push
)出去但感覺得有點亂(或太瑣碎)的 Commit
,可以先使用 Rebase
分支來整理完再推出去。但如同前面提到的,Rebase
等於是修改歷史,修改已經推出去的歷史可能會對其它人帶來困擾,所以對於已經推出去的內容,非必要的話請盡量不要使用 Rebase
。
創立
branch
用git branch 分支名稱
切換HEAD
位置git ckeckout 位置
合併到主要版本用git merge 分支名稱 --no-ff
整理commit
點 可以用git rebase
和git merge
本篇適用於完全不會Git
的人,將一步步帶你上傳檔案至GitHub
首先到 Git 官網 ,下載Git
以下為 windows
環境下示範 ,開始選單> 所有程式> Git
> Git Bash
然後開啟 Git Bash
command
指令1 | $ git config --global user.name "<使用者名字>" |
1 | 新增一個資料夾 |
commit
, 系統建議我們先把它加入索引,不然會 commit
不到1 | $ git status |
$ git status
,我們得知檔案已被加入索引。1 | $ git add '檔案名稱' //加入指定檔案 |
commit
命令提交檔案git commit -m "更新註解"
就可以將本次更新的內容提交到數據庫了。1 | $ git commit -m "update1" |
GitHub
帳號,我們要創建一個資料夾,來當遠端數據庫。透過 $ git clone 'GitHub 的 URL'
,連結至 GitHub
的遠端數據庫
1 | $ git clone 'GitHub 的 URL' |
透過 $ git push
將本地端數據庫上傳至雲端數據庫 ,會要求你輸入 GitHub
的帳號密碼以確認。
1 | $ git push |
操作過一次流程,我們就瞭解
$ git init
建立工作目錄$ git add .
把工作目錄的檔案加入索引$ git commit -m ''
將索引的檔案提交至本地數據庫
$ git clone 'URL'
連接至遠端數據庫
$ git push
本地端數據庫上傳至雲端數據庫
開啟目錄資料夾中的 _config.yml
搜尋site
1 | # Site |
下載 themes 並解壓縮到資料夾內的 themes 資料夾內,
開啟目錄資料夾中的 _config.yml
搜尋theme
1 | # Extensions |
這邊使用 NexT 7.8.0 模板作舉例。
進入主題 (Next) 中尋找 _config.yml
檔案,搜尋Google Analytics
1 | google_analytics: |
1 | google_analytics: |
進入主題 (Next) 中尋找 _config.yml
檔案,搜尋scheme
想要使用哪一個,打開註解即可。
1 | # Schemes |
進入主題 (Next) 中尋找 _config.yml
檔案,搜尋menu
,
想要使用哪一個,打開註解即可,若tags
、categories
跳出 404,
請參照此解決辦法。
1 | menu: |
進入主題 (Next) 中尋找 _config.yml
檔案,搜尋menu
,
想要使用哪一個,打開註解即可。
1 | social: |
由於要使用 Gitalk 必須先有 GitHub OAuth,首先開啟 GitHub → Setting
接下來選擇 Developer settings
然後點 OAuth Apps ,新增 New OAuth Apps
接下來依照欄位填寫即可
1 | Application name - 應用程式名稱 |
申請完之後,你會獲得兩組 ID (Client ID、Client Secret)
進入主題 (Next) 中尋找 _config.yml
檔案,搜尋Gitalk
1 | gitalk: |
從今年開始學習前端技術,不知不覺也過了半年了,覺得自己的技術有所成長,
可以藉由寫文章幫助大家並整合自己的技術。平台這麼多,為何我會選擇 Hexo ?
因為 Hexo 是要用指令來開發,也必須配合 Git 做使用,,是不是摸蜊仔兼洗褲呢!
Hexo 是使用 Markdown 撰寫格式,也需要熟悉 Git 指令還有一點 npm 的知識,
可以參考下方連結教學。
作業系統: macOs
Nodejs::v12.18.3 LTS
IDE:VS Code
hexo: 5.0.0
使用指令安裝 Hexo,開啟終端機,輸入以下指令:
1 | npm install hexo-cli -g |
指令說明:透過 npm 在 全域 (-g) 下安裝 Hexo-Cli
可以透過以下指令,確認是否安裝成功
1 | hexo -v |
在要存取的硬碟中開啟一個新資料夾,並自訂名稱 (建議用英文),之後的資料就會在這個資料夾內,並輸入以下指令:
1 | hexo init projectname |
在終端機輸入:
1 | cd projectname |
1 | npm install |
完成上方內容後再輸入下方指令:
1 | hexo server |
1 | git init //創建一個 git 初始檔 |
需要安裝一個 Hexo 沒有安裝的插件
1 | npm install hexo-deployer-git --save |
修改 _config.yml 中的 Depolyment 如下:
1 | deploy: |
修改完後輸入下方指令:
1 | hexo g d |
1 | hexo new "title" |
1 | hexo s |
1 | hexo g d |
1 | hexo clean |
1 | hexo g d |
參考文章:https://hsiangfeng.github.io/hexo/20190411/932826160/
參考文章:https://www.youtube.com/watch?v=jOJI9ekTzK8&t=3809s
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
1 | $ hexo new "My New Post" |
More info: Writing
1 | $ hexo server |
More info: Server
1 | $ hexo generate |
More info: Generating
1 | $ hexo deploy |
More info: Deployment