###### tags: `JavaScript` ###### tags: `學習` {%hackmd BJrTq20hE %} # 字串型別 ## 宣告字串 let a = 'hello'; 變數類型 變數名稱 賦值 值 值用單引號或雙引號,不可以混用 例如: ```javascript= let a = 'hellow"; 或let a = "hellow'; ``` 建議全部統一使用單引號或是雙引號。除了特定的情況 例如: ```javascript= let a = "Let's go." ``` 需要用到引號的字串時就可以改用雙引號。 ## 字串相加與樣板字面值 字串是可以相加的 例如: ```javascript= let a ='hellow'+'你好嗎?'; console.log(a) // hello你好嗎? ``` 字串如果中間要留白也可以這樣寫 例如: ```javascript= let a ='hellow'+' '+'你好嗎?'; console.log(a) // hellow 你好嗎? let name = 'Jack'; let sayHellow = name+' '+a; console.log(sayHellow)// Jack hellow 你好嗎? ``` 樣板字面值 範例 ```javascript= let a ='hellow'; let name = 'Jack'; let total = `我是${name},${a}` console.log(total)// 我是Jack,hellow ``` ## 透過typeof了解當前變數的類別 利用typeof了解變數的類型,因為有的時候使用console.log會不知道變數的類別 例如: ```javascript= let friendName ='Tom'; let age = 18; let num = '18'; console.log(age)// 18 console.log(num)// 18 ``` 會弄不清楚那個是數字哪個是字串,這個時候就需要用到typeof。 例如: ```javascript= console.log(typeof age)// number console.log(typeof num)// string console.log(typeof friendName)// string ``` ## 自動轉型 JavaScript在做變數相加的時候,會自動轉型為字串 例如: ```javascript= let a = 1; let b = '5'; let c = a+b; console.log(c)// 15 console.log(typeof c)// string let d = 'Jack'; let e = b+d; console.log(e)// 5Jack console.log(typeof e)// string ``` 在變數的相減相乘相除,會轉型為數字做計算,如果無法計算會表示NaN但型態依然是數字。 例如: ```javascript= let a = 1; let b = '5'; let c = a-b; console.log(c)// -4 console.log(typeof c)// number let d = 'Jack'; let e = b-d; console.log(e)// NaN console.log(typeof e)// number ``` 把以上的減替換為乘或除都會是一樣的結果,可以計算就顯示計算後的結果,型態轉為數字,不能計算顯示NaN,但型態依然是數字。 ## 轉換型別 有時候變數需要轉換型別才能使用,以下為兩個轉換型別的語法,parseInt()與toString() 範例: ### 轉為數字 ```javascript= let a = '123'; let b = parseInt(a) console.log(typeof b)// number ``` 如果不是數字就會轉型失敗 ```javascript= let a ='abc' a = parseInt(a) console.log(a)//NaN ``` 在HTML文字表單(input)中取出的都是字串,如果需要計算就需轉型為數字。 ### 轉為字串 ```javascript= let a = 123; a = a.toString() console.log(typeof a)// string ``` 需要作文字合併時可以使用例如電話號碼與區碼合併 "08" +"電話",轉成字串就不會向數字一樣加總。 ## 字串的常用處理方法 字串常用的處理方法有length()與trim(),分別為字串長度與去除字串頭尾控排,()為執行。 範例: ```javascript= let a =' 123 '; a.length// 5 空白也會算入長度 a.trim// '123'字串頭尾空白被去除 ```