--- title: 變數 與 資料型別 tags: 六角學院, JS 必修篇 date: 2021/7/26 --- ###### tags: `六角學院` `JS 必修篇` ###### *date: 2021/7/26* # 📜 變數 與 資料型別 [TOC] ## 7/26 (ㄧ) 變數宣告 ```javascript= //步驟指引 //1.請宣告 const 變數名稱為 courseTitle ,並賦予值為字串JavaScript 必修篇 - 前端修練全攻略 const courseTitle = 'JavaScript 必修篇 - 前端修練全攻略' //2.請宣告 let 變數名稱為 courseProgress ,並賦予值 0 let courseProgress = 0 //3.請宣告 const 變數名稱為 teacher ,並賦予值為字串 廖洧杰 const teacher = '廖洧杰' //4.請宣告 const 變數名稱為 activity ,並賦予值為字串 六角筆記王:寫作吧!用文字喚醒你的前端魂! const activity = '六角筆記王:寫作吧!用文字喚醒你的前端魂!' //5.請宣告 let 變數名稱為 prize ,並賦予值為字串小米小愛音箱 Art、米家無線吸塵器 mini、小米手環 let prize = '小米小愛音箱 Art、米家無線吸塵器 mini、小米手環' //最後使用 console.log 印出 console.log(`我參加了${courseTitle}課程,從${courseProgress}開始認真學習,${teacher}老師舉辦了${activity}活動,還有眾多獎項:${prize}等著我!`) ``` ### 變數宣告技術重點 - let 和 const 是**區域**變數 - let 可以重新指定值 - const 是宣告一個常數 - const 物件,內層的屬性依然可以調整,因為物件是傳**參考** - var 不推薦使用 :-1: --- ## 7/27 (二) 型別判斷 ### 題目一 以下變數 a, b, c, d, e, f 它們的值、型別各自為何? ```javascript= let a = 1 +"2"+ 3 ; // a = 123, String let b = "1" * "1"; // b = 1, Number let c = 2 - "1"; // c = 1, Number let d = 1 > 2; // d = false, boolean let e = 2 > 1; // e = true, boolean let f = "我好棒" - 1; // f = NaN, Number ``` ### 型別判斷技術重點 - 因為 JS 是弱型別語言,在執行`+`法運算時,會優先進行字串連接 - 在執行`-`、`*`、`/`、`%`運算時,如果不是強制轉型,則會優先進行數字運算 - 使用比較運算符,會回傳**布林值** ### 題目二 以下選項哪些有問題,請指出有問題的答案,並回答為什麼。 ```javascript= //1 const 不能重複賦予值 const HexSchool = "六角"; HexSchool = "六角學院"; //2 變數名稱不能重複宣告 const HexSchoolMail = "service@hexschool.com"; const HexSchoolMail = "service@hexschool.com.tw"; //3 雖然 JS 會自動變數宣告,但不建議養成習慣 let studentNum = 20000; studentNumber = 30000; //4 保留字不能變數宣告 let const = const; //5 變數宣告不能以數字開頭 const 123 = 123; ``` ### 變數宣告命名技術重點 - 保留字不能宣告,例如:`const`、`delete`、`window`...等。 - 變數開頭不能是數字 - 命名小技巧可以使用駝峰命名法,例如`studentNum`、`student_num`、`student-num`...等。 --- ## 7/28 (三) 變數實作情境題 ### 第一題 媽媽請小明買水果,至少要三樣水果,最多不可超過150元: ```javascript= //近期水果售價,請勿更動 let applePrice = 50; let mangoPrice = 30; let guavaPrice = 30; let bananaPrice = 20; let papayaPrice = 40; let cost; //請依提示幫小明買水果,並印出水果金額 cost = papayaPrice + mangoPrice * 2 + bananaPrice * 2; console.log(`小明總共買了${cost}元`); // 140 元 ``` ### 第二題 媽媽請小明回程的路上記得去雜貨店買醬油1瓶、鹽1包,雜貨店老闆心血來潮幫小明打了九折,小明有200元: ```javascript= //醬油、鹽售價,請勿更動 const soySaucePrice = 80; const saltPrice = 40; let sale = 0.9; let mingMoney = 200; //請幫小明算出還剩下多少錢,並印出結果 mingMoney -= (soySaucePrice + saltPrice) * sale; console.log(`小明還剩${mingMoney}元`); // 92 元 ``` ### 第三題 小明回家後,媽媽為了獎勵小明順利完成跑腿,打算給小明增加下個月零用錢,但在這之前媽媽想先考考小明數學,算對了才願意調漲,以下是媽媽出的題目,請大家一起協助小明: > 情境題 > 農夫種了12顆高麗菜 > 早上賣掉了2顆高麗菜 > 中午賣掉了3顆高麗菜 > 晚上又種了1顆高麗菜 ```javascript= let cabbageNum = 12; //請依早、中、晚的順序去記算高麗菜數量,並使用 console.log 印出最終數量 cabbageNum += -2 + -3 + 1; console.log(`農夫的高麗菜剩下${cabbageNum}顆`) // 8 顆 ``` ### 運算技術重點 - 基礎數學,括號先做後,先乘除後加減 - `x = x - 2`可以簡寫成`x -= 2` --- ## 7/29 (四) 字串處理與轉型 ### 題目一 請使用 trim() 的方式將以下字串濾掉空白: ```javascript= let myEmail = " 123456@gmail.com"; let myPassword = " 987654321"; myEmail = myEmail.trim(); myPassword = myPassword.trim(); console.log(myEmail) // "123456@gmail.com" console.log(myPassword) // "987654321" ``` ### 題目二 請使用 parseInt() 將以下字串轉型為數字: ```javascript= let a = "1"; let b = "2"; a = parseInt(a); b = parseInt(b); let c = a + b; console.log(c) // 3 ``` ### 題目三 請使用 toString() 將以下數字轉型為字串: ```javascript= let countryCode = 886; let myNumber = 123456789; countryCode = countryCode.toString(); myNumber = myNumber.toString(); let myPhoneNumber = countryCode + "+" + myNumber; console.log(myPhoneNumber) // "886+123456789" ``` ### 常用的內建函式技術重點 - `trim()`去除頭尾空白 - `parseInt()`將資料轉為整數 - `toString()`將資料轉為字串 --- ## 7/30 (五) 變數章節總複習 ### 題目一 請問以下變數的值、型別分別為何? ```javascript= let a = 1 + "我好棒"; // a = "1我好棒", String let b = 1 * "我好棒"; // b = NaN, Number let c = 2 > 1; // c = true, boolean let d = 1 < 2; // d = true, boolean let e; // e = undefined, undefined ``` ### 題目二 請利用賦值運算子計算冰箱布丁剩餘數量: >情境題 布丁剩多少? >冰箱裡原有 15 顆布丁 >被妹妹拿走了 3 顆 >被姊姊拿走了 5 顆 >媽媽又冰了 10 顆 >弟弟拿走了 2 顆 ```javascript= //請透過此變數進行運算 let puddingNum = 15; puddingNum += -3 + -5 + 10 + -2; console.log(`布丁還有${puddingNum}顆`) // 15 顆 ``` ### 題目三 小美去飲料店買了很多飲料,但她數學不好,請利用以下步驟算出幫小美算出購買總額: > 1. 1 杯紅茶 30 元 > 2. 小美買了 2 杯 > 3. 她將紅茶數量 * 紅茶價格,算出 60 元 > 4. 1 杯綠茶 25 元 > 5. 小美買了 4 杯 > 6. 她將綠茶數量 * 綠茶價格,算出 ?? 元 > 7. 1 杯奶茶 50元 > 8. 小美買了 6 杯 > 9. 她將奶茶數量 * 奶茶價格,算出 ?? 元 > ```javascript= //帳單從零開始計算 let bill = 0 ; const blackTeaPrice = 30; let blackTeaNum = 2; bill += blackTeaPrice*blackTeaNum; //請接續步驟指引4,協助小美算出帳單金額 const greenTeaPrice = 25; let greenTeaNum = 4; bill += greenTeaPrice*greenTeaNum; const milkTeaPrice = 50; let milkTeaNum = 6; bill += milkTeaPrice*milkTeaNum; console.log(`小美總共花了${bill}元`) // 460 元 ``` ### 題目四 請協助以下字串與數字轉型、過濾空白: ```javascript= let number = "123";//將 number 轉型為數字 let string = 123;//將 string 轉型為字串 let myEmail =" 1235487@gmail.com";//請將 myEmail 的空白過濾掉 number = parseInt(number); string = string.toString(); myEmail = myEmail.trim(); ``` --- {%hackmd @JohnsonMao/theme-Wood-Fired %}