P1 你知道什麼是 SPA
P1 你知道怎麼樣用 PHP 自己寫出 API
P1 你知道如何在前端與自己開的 API 串接
P1 你知道在 server 與在 client render 的差別
P1 你知道 jQuery 是做什麼的
P1 你知道 jQuery 與 vanilla js 的差別
P1 你知道什麼是 Bootstrap
P2 你知道 Bootstrap 原理及如何應用
Q1 : 熟悉Bootstrap在前端業界來說是必備技能嗎 ?
A1 : 不是,比起必備應該是快速上手新的工具。
Q2 : 在做 week11 hw 的時候,因為 bug 建立了重複的 帳號密碼,全部都是相同的,可是資料庫中 hash 過後的 password 為什麼會長的不一樣,不是應該一樣嗎?
A2 : 加鹽 !
根據 HASH 的特性,相同的 input HASH 過後會是相同的結果,我們也用了這個特性去驗證密碼是否相同。因為演算法、鹽都包在 hash 裡面,所以要驗證一定要用 password_verify()。
參考資料 :
現代PHP PASSWORD_HASH 雜湊加密採用隨機SALT 使用方式
Q3 : 認為 junior 程度必須涵蓋哪些?
A3 : 涵蓋課綱、扎實的網頁學習路線
Q4 : 真正工作時,從零到一寫 code 的比例多嗎?感覺許多地方用套件的效率大很多,而有些性質又偏維護,所以實際上應該是除錯佔大部分?
A4 : 除錯佔大部分、維護現有的功能、看 CODE、架 CODE 的功力很重要
Q5 : 工具要不要全域下載完全看個人習慣使用嗎?上網查是說怕污染環境,什麼情況下會污染環境~?
A5 : 不一定看個人習慣使用,要思考是否會在不同地方用不同版本的工具。
全域下載只能裝一個版本,如果每個資料夾都裝一份,就不會汙染外面的環境,外面打 webpack 他就找不到任何東西,因為他沒有裝。如果是全域裝,你在資料夾裡面打 webpack 你以為用到的是資料夾裡的 webpack 但事實上用到的是外面的 webpack,這樣就會有一些除錯問題要解決,這就是污染環境的狀況。
Q6 : 老師請問第十一周的 BLOG 作業檢討中對於經由 GET 得到的 id 再使用 intval() 處理的用意是什麼? 也是為了資訊安全嗎?
A6 : 這是一個好習慣,與資安無關
資料庫存的文章 ID 是數字,用 $_GET()
、$_POST()
的東西一定是字串或陣列,要知道你每個資料的型態,將他轉成你想要的不然某些時刻會出問題!
3 + '2' = 32
3 + 2 = 5
Q7 : 想請問老師~在目前有跟上課程進度狀況下,若之後求職薪資以超過45k為目標,於跟課上老師覺得我們可以往哪方面做努力 謝謝老師
A7 : final project、課程簡答題 (esp 16 週)、挑戰題、觀念
Q8 : 使用 gulp webpack 這些工具,是每一個有用到的專案資料夾都要分別安裝並設定嗎 ?
A8 : 對
因為版本問題,所以會建議每個資料夾各別安裝。
好處一、不會汙染全域的東西
好處二、版本之間問題較好解決
好處三、如果裝在資料夾內,在 git 上他就只要 npm install
Q9 : jQuery ajax 的錯誤處理上有哪些是比較需要做的
A9 : 原本 XHR 要處理那些錯誤、jQuery 就要處理那些
jQuery ajax() 成功錯誤 VS .done() 。fail()
Q10 : 請問el.childNodes el.children 的區別?
A10 : nodetype 的差別
Polyfill 不支援的功能就自己用其他功能寫出來。
用 childNodes 找到的是所有 nodetype、children 拿到的是 nodetype === 1 (表示元素 element 的節點)
Q11 : 可以請老師講一下 編碼、加密、雜湊的差異跟運用嗎 ?
A11 :
密碼三兄弟,各自目的
加密:隱藏內容
雜湊:辨識原始內容是否一致
編碼:轉換內容 (ex: base64)。為了轉換成另一種相同格式,才能保留意思但不破壞一些東西
加密 <=> 解密
加密的檔案透過 KEY 還原內容
======
雜湊 (一樣的 INPUT 產生一樣的 OUTPUT)
無法逆推,應用:密碼
hash function N % 10
(碰撞)
123 % 10 = 3
1003 % 10 = 3
======
編碼:沒有任何 key 的概念,只是換一種表達方式
舉例、
瀏覽器有兩個 function
btoa 將東西轉成 base64 (base64 是用 64 個字元表示資料,一個字元對應 6bit 的資料。)
atob 將 base64 轉回來
base 64 可以將任何 binary 檔案變成文字 (week13 DATA URI)
encodeURLComponent
舉例、id ='1&a=23'
https://post?id=1&a=23 但我不是想表達兩個參數的意思,所以需要透過編碼轉換
經過 URL encode
https://post?id=1%26a%3D23
Q12 : 很常在程式碼中看到 this. 像是request.onload = function() {if (this.status >= 200 && this.status < 400) {var resp = this.response;}}; 裡面的 this. 是什麼意思呢?
A12 : 參照 16 週 (你把這個東西放在誰身上,this 就是誰)
button.addEventListener('click', function() {
this === button
})
request.onload = function() {
if (this.status >= 200 && this.status < 400) {
this === request
var resp = this.response;}
};
Q13 : 有看過前後端分離的文章了,但對前端 MVC 跟後端 MVC 的差異跟 MVC 還是有點不清楚,可以再請老師講解一次嗎?
A13 : 參照 20 週、21 週、22 週
Q14 : 那通常我們要把內容丟到網址上是不是就要先 encodeURL,使用 $_GET['id']
才不會出錯?
A14 : 沒錯 ! 除非很確定東西不會有干擾 url 的參數,ex:= &