# 如何透過 OpenAI 提升你 JavaScript 學習能力!
## 洧杰老師近況
1. * 12/18:[JS 直播班專題成果發表會](https://zoom.us/webinar/register/WN_mFC96NTNRFqRaE15bfwtvg)
1. * 12/19~12/30:休息、看牙齒
1. * 1~2 月:Vue 專題班
1. * 4~6 月:Node 專題班
1. * 5~6 月:2000 人程式體驗營
1. * 7~8 月:切版直播班
1. * 10~12 月:JS 直播班班
## 用一句話來解釋 AI
* 工程師價值在「整合」,讓 AI 來解決單點問題,你來整合
* AI 紅利 1~3 年,盡情吃 AI 紅利,拉開跟其他人的差距
* 教你如何成為「AI 溝通師」
## 官網介紹
* [官網](https://openai.com/api/)
## AI 介紹
* [模型介紹](https://beta.openai.com/docs/models)
## 介面介紹
1. [免費差異](https://chat.openai.com/chat)
a. 無法連網
3. 付費差異
a. 插入模式
c. 自動補全模式
## 幫助你學習的方法
### 給你更多你聽得懂得範例
```
// 請介紹什麼是 promise
// 可以給我一些範例嗎?
// 可以給我跟跑步有關的範例嗎?
// 你可以給我一些 promise 三個題目嗎?設計成單選題,我想答答看
// 上面答案是多少?
```
### 幫你解釋程式碼邏輯
```
// Function 1
const fullNames = [];
for (var i = 0; i < 50; i++) {
fullNames.push(names[Math.floor(Math.random() * names.length)]
+ " " + lastNames[Math.floor(Math.random() * lastNames.length)]);
}
// 解釋上面的程式碼在做什麼?
```
### 幫你轉換程式碼
* [範例程式碼連結](https://codepen.io/hexschool/pen/OJEKzWd?editors=1010)
```
可以幫我將這裡的程式碼改成 Vue 3 版本嗎?
```
### 幫你改成其他陣列方法
```
let data = [1, 2, 3, 4, 5];
let sum = 0;
data.forEach(function(value){
sum += value;
});
console.log(sum); // 15
我想學用 map 的寫法改寫
```
### 幫你除錯(edit)
* [範例程式碼連結](https://codepen.io/hexschool/pen/OJEKzWd?editors=1010),刪除功能怪怪的,幫我除錯
### 許願功能!
1. 做一個 bootstrap 5 版型
```
請你幫我做一個是腳踏車電商網站,必須使用 bootstrap 5 來排版
第一個區塊是表頭,會有一個 logo
第二個區塊是一列三欄的排版,每欄裡面有標題跟段落,主要描述腳踏車店的三大優點
第三個區塊是表尾,主要講解授權的部分
```
2. 寫一個 Vue3 範例,提供的[程式碼](https://codepen.io/hexschool/pen/LYrwdrb?editors=1000)
```
請用 vue3 cdn 版本,寫一個代辦事項,可以做到新增刪除修改
點擊編輯按鈕時,會使用 cdn sweetalert2 的彈跳視窗來進行編輯
```
3. 幫我加上一個[編輯](https://codepen.io/hexschool/pen/GRGVxzx?editors=1010)功能,[範例用程式碼](https://codepen.io/hexschool/pen/GRGVxzx?editors=1010),[AI 給的程式碼](https://codepen.io/hexschool/pen/MWXNGwY)
4. 加入 [sweetalert2 cdn 套件](https://codepen.io/hexschool/pen/jOKgxVN)後,請他幫你寫編輯功能、[AI 給的程式碼](https://codepen.io/hexschool/pen/MWXNGbK):`請用 SweetAlert2 套件,點擊編輯代辦按鈕時,彈跳視窗進行編輯
`
### 重構程式碼
請幫我將以下程式碼改成 es6 版本,例如改成 let、const 與箭頭函式
```javascript
var a = 1;
var b = 2;
a+=1;
var c = [1,2,3]
var d =0;
c.forEach(function(item){
d+=item
})
```
### Vera:希望 AI 幫你補程式碼,並用指定函式
`請設計函式 checkEmail,讓她判斷是否為 Email 格式`
```
cons myEmail = "gonsakon@gmail.com";
function checkEmail(email){
}
checkEmail(myEmail)
```
### 圈圈:要求不同解法
* [資料出處](https://github.com/hexschool/2021-ui-frontend-job/blob/master/frontend_data.json)
* 請設計函式 checkSexTotal,幫我判斷 data 裡面男女性各有幾人
```javascript
const data = [
{
"job": "前端工程師",
"gender": "男性",
"age": "21~25 歲",
"education": "高中畢業",
"major": "非資訊、設計、語言科系相關(歷史、會計、國貿)",
"first_job": {
"tenure": "1 個月以下",
"leave": "想要轉職成前端工程師",
"position": "視覺設計 (UI、平面)",
"skill": "後端語言 (Node.js、Python、PHP、JAVA、Ruby), AWS, GCP 等雲服務知識",
"render": "不確定這是什麼"
},
"works": {
"window": "非技術主管",
"market": "4"
},
"company": {
"industry": "接案公司",
"score": "10",
"work": "實體辦公室",
"area": "台灣 - 高屏",
"scale": "21~49 人",
"people": "1 人",
"job_tenure": "1 年以下",
"salary": "36~50 萬",
"salary_score": "10",
"industry_message": ""
}
},
{
"job": "前端工程師",
"gender": "女性",
"age": "26~30 歲",
"education": "大專院校畢業",
"major": "非資訊、設計、語言科系相關(歷史、會計、國貿)",
"first_job": {
"tenure": "3 個月左右",
"leave": "目前還在原公司,尚未離開",
"position": "無",
"skill": "任務指派工具(Trello, Asana...)",
"render": "不確定這是什麼"
},
"works": {
"window": "老闆, PM 企劃部門",
"market": "8"
},
"company": {
"industry": "接案公司",
"score": "5",
"work": "實體辦公室",
"area": "台灣 - 北北基",
"scale": "6~10 人",
"people": "2 人",
"job_tenure": "1 年以下",
"salary": "36~50 萬",
"salary_score": "6",
"industry_message": ""
}
}
]
```
## 幫你寫專題作品文案!
1. **想品牌名稱**:我媽在賣玫瑰精油,幫我想五個品牌名稱,要跟大海意境有關聯
2. **想品牌的一句話**:請幫我寫一個 slogan,必須是一個句子,我要七個範例
3. **表頭表尾設計**:請設計一個精油網站常會用到的 footer 表尾文案設計
4. **想產品優勢**:我選第三個,這個精油幫我寫七大優勢療效,請寫七大療效標題,然後要各個要寫對應段落來介紹
5. **服務預約流程**:我選擇第三個,我想設計一個讓客戶可以跟我預約時間,可以來找我上課,瞭解精油該怎麼使用,請幫我設計一個五大步驟,讓客戶可以透過這五大步驟來進行線上預約流程。
6. **寫好友推薦**:幫我寫好評推薦,並模擬一些人名各撰寫 20~30 字的推薦文
7. **常見QA**:請幫我寫5個使用精油的常見QA
8. **聯絡我們**:請設計一個聯絡我們常會用到的表單資訊欄位,並用 js 物件來表示
## 看網路上的 GitHub Code
1. [GitHub](https://github.com/gonsakon)
## 計費方式
1. [計費方式](https://openai.com/api/pricing/)