只在此山中,雲深不知處


聽首歌



© 2018 by Shawn Huang
Last Updated: 2018.5.27

字串(String)

String也是內建的物件,型態是string。宣告時可以使用單引號或雙引號,或是使用new String("...")物件方式宣告(此時型態為object)。>>
第一個結果是因為兩個字串內容相同,之後幾個結果是因為型態不同或物件不同。(在JavaScript內比較兩個物件永遠都是false)

字串屬性


其實字串就是字元的陣列(array),所以一樣有length這個屬性。 >>
跟array的做法相同,若要使用forEach需要先分拆字串,在後面的方法介紹。不過字串雖然是個array,但是方法不大相同,無法通用,例如我們可以使用 s1[1]來得到字元,但是卻無法使用s1[1]='d';來改變字串內容。

字串方法(methods)


字串也有許多內建方法供我們使用,如下:
  1. charAt(): 在某個index位置的字元。
  2. charCodeAt():在某個index位置字元的Unicode value。 >>
    第一行傳回b的unicode value而第二行是使用該value來印出b,但為何要使用62?那是因為要換成16進位。
    換成16進位也可以讓電腦幫忙。 >>
    若要知道數字的2進位或8進位只要把其中的數字改為2或8即可。
    也可以不換成16進位,使用String.fromCharCode()方法即可。 請注意fromCharCode()是String類別方法,不是物件方法,所以要在之前加上String。 >>
    unicode範圍介於0到65535(0xFFFF),這個方法輸入10進位或16進位皆可,你可以試著自己輸入不同數字。
  3. concat(): 連結兩個字串並傳回新字串。 跟array相同,不過字串也可以使用+號來串聯。
  4. endsWith():檢查字串是否結尾於某子字串,傳回boolean。 >>
  5. includes: 檢查字串是否包含某子字串,傳回boolean。 >>
  6. indexOf(): 尋找字串某一個子字串,傳回第一個出現的index,若不包含則傳回-1。 >>
  7. lastIndexOf(): 與indexOf()類似,只是搜尋方向自後向前。 >>
  8. localeCompare(): 比較兩個字串排序的先後,傳回1表示原字串在比較字串(傳入參數)之後,-1在之前,0則表示相同。 >>
  9. match(): 傳回符合regular expression(RE)的子字串。 >>
    regular expression可以幫助我們尋找符合某種描述的字串。
  10. repeat(): 將字串重複給定次數。 >>
  11. replace(): 用新字串替代字串中符合某re規則的子字串。 >>
    沒有re規則只替換了第一個子字串。
  12. search(): 搜尋字串中符合某re規則的子字串,傳回index,-1表示不包含該re規則的子字串。 >>
  13. slice(): 傳回某一範圍內之子字串。 >>
    若是僅給一個數字表示直至字串的最後。
  14. split(): 將字串根據某字元分拆為數個單元並傳回包含所有單元之array。 >>
  15. startsWith(): 檢查字串是否開始於某子字串,傳回boolean。 >>
  16. substr(): 傳回某位置之後某長度的子字串。>>
  17. substring(): 傳回某一範圍內之子字串。效果同slice()。 >>
  18. toLocaleLowerCase(): 將字串中字元轉換成小寫。 >>
  19. toLowerCase(): 將字串中字元轉換成小寫。與toLocaleLowerCase()同。 >>
  20. toUpperCase(): 將字串中字母轉換為大寫。 >>
  21. trim(): 去除字串頭尾的空白。 >>