在學習廖雪峰前輩的JavaScript教程中,遇到了一些需要註意的點,因此作為學習筆記列出來,提醒自己註意! 如果大家有需要,歡迎訪問前輩的博客https://www.liaoxuefeng.com/學習。 JavaScript的字元串就是用 ' ' 或者 “ ” 括起來的字元表示。 如果字元串內部 ...
在學習廖雪峰前輩的JavaScript教程中,遇到了一些需要註意的點,因此作為學習筆記列出來,提醒自己註意!
如果大家有需要,歡迎訪問前輩的博客https://www.liaoxuefeng.com/學習。
JavaScript的字元串就是用 ' ' 或者 “ ” 括起來的字元表示。
如果字元串內部既包含 ‘ 又包含 ” 就需要用轉義字元 \ 來標識,比如:
'I\'m \"OK\"!';
表示的字元串內容是:I'm "OK"!
轉義字元\
可以轉義很多字元,比如\n
表示換行,\t
表示製表符,字元\
本身也要轉義,所以\\
表示的字元就是\
。
ASCII字元可以以\x##
形式的十六進位表示,例如:
'\x41'; // 完全等同於 'A'
還可以用\u####
表示一個Unicode字元:
'\u4e2d\u6587'; // 完全等同於 '中文'
多行字元串
由於多行字元串用\n
寫起來比較費事,所以最新的ES6標準新增了一種多行字元串的表示方法,用反引號 ` ... ` 表示:
`這是一個
多行
字元串`;
註意:反引號在鍵盤的ESC下方,數字鍵1的左邊。
模板字元串
一般我們把多個字元串連接起來,直接採用“+”進行連接:
var name = '小明'; var age = 20; var message = '你好, ' + name + ', 你今年' + age + '歲了!'; alert(message);
但是如果有很多變數需要連接,用+
號就比較麻煩。
在ES6中新增了一種模板字元串,表示方法和上面的多行字元串一樣,但是它會自動替換字元串中的變數:
var name = '小明'; var age = 20; var message = `你好, ${name}, 你今年${age}歲了!`; alert(message);
操作字元串
關於字元串的幾種常用操作如下:
var s = 'Hello, world!'; //1.獲取字元串的長度 s.length; // 13 //2.獲取字元串某個指定位置的字元 s[0]; // 'H' s[6]; // ' ' s[7]; // 'w' s[12]; // '!' s[13]; // undefined 超出範圍的索引不會報錯,但一律返回undefined
需要特別註意的是,字元串是不可變的,如果對字元串的某個索引賦值,不會有任何錯誤,但是,也沒有任何效果:
var s = 'Test'; s[0] = 'X'; alert(s); // s仍然為'Test'
JavaScript為字元串提供了一些常用方法,註意,調用這些方法本身不會改變原有字元串的內容,而是返回一個新字元串:
indexOf
indexOf()
會搜索指定字元串出現的位置:
var s = 'hello, world'; s.indexOf('world'); // 返回7 s.indexOf('World'); // 沒有找到指定的子串,返回-1
substring
substring()
返回指定索引區間的子串:
var s = 'hello, world' s.substring(0, 5); // 從索引0開始到5(不包括5),返回'hello' s.substring(7); // 從索引7開始到結束,返回'world'