1.字串嵌套
字串可以嵌套使用
在單引號包裹的字串內部,應該使用雙引號進行嵌套
在雙引號包裹的字串內部,應該使用單引號進行嵌套
在 json決議的時候字串需要單引號,因此推薦在各種情況都使用單引號的方式進行宣告
2.轉義字符,用特殊的符號來替代在字串中,容易引起歧義的內容
\' 表示單引號
\" 表示雙引號
一個字串一般寫在一行內,不要分成多行
如果必須分成多行,可以采用反斜杠 “\” 作為連接符,或者將其分成多個字串,通過拼接的方式進行組合
3.字串長度
① 測量字串長度:length屬性,
語法格式:字串變數 . length
② 字符索引:[]方法,
在字串后面接中括號,中括號內寫數字,能夠訪問字串中每一個字符
代碼示例:
var name=Franklin;
var firstname=name[0];
一次只能索引一個字符,如需索引多個,則使用加號(+)連接符多次索引
索引從0開始,0表示第一個字符
③ 獲取指定位置字符:charAt()方法和 charCodeAt()方法,
兩種方法均是獲取指定位置字符,不同的是charAt()回傳的是具體的字符,而charCodeAt()回傳的是字符對應的Unicode編碼
代碼示例;
var name=Franklin;
var cat=name.charAt(0);
var ccat=name.charCodeAt(0);
var cat結果為“F”,而var ccat結果為“70”
兩個重要的字符編碼,A——65,a——97,其他字母累加即可
如果index是負數,或者大于等于字串長度的值,則 charCodeAt()回傳的值為 NaN,
④ 字串連接:concat()方法,
將兩個或多個字串拼接起來,組成一個新的字串,用法與加號(+)有相同之處
語法格式:var str=str1.concat(str2,str3,……);
4.轉義字符
反斜杠 “\” 被稱作轉義字符
轉義字符可以將特殊字符轉換為字串字符,可以用于轉義撇號、換行、引號等特殊字符
常見轉義符號:\' (單引號)、\" (雙引號)、\\ (反斜杠)、\n (換行)、\r (回車)、\t (制表符)、\b (退格)、\f (換頁符)
\n、\r、<br/>區別
\n,英文是 new line,表示使游標下移一格
\r,英文是carriage return,表示使游標移到行首
<br/>是瀏覽器換行
總結:\n \r表示源代碼換行(瀏覽器不解釋),<br/>表示瀏覽器文字換行
5.字串物件
JavaScript中提供了另外一種字串的宣告方式,叫作字串物件,使用 new關鍵字將字串定義為一個物件
語法示例:var newString=new String('Franklin');
var str1=‘frank’; //(typeof str1)回傳值為 String
var str2=new String(‘frank’); //(typeof str2)回傳值為Object,String首字母必須大寫
通常不要創建 string物件,它會拖慢程式執行速度,并可能產生其他副作用
字串和字串物件雖然效果相似,但它們是完全不同型別的資料
6. 字串屬性及方法
substring,截取字串
substr,截取字串(長度)
slice,截取字串
indexOf,回傳當前查找字串的位置,如果沒有回傳-1
lastindexOf,倒過來查找
trim,去掉字串兩端的空格
toUpperCase和toLowerCase,大小寫轉換
localeCompare,比較兩個字串大小
match,回傳一個指定字串的陣列
search,回傳位置
replace,替換字串
split,字串切割,回傳陣列
7.substring截取字串
通過指定開始和結束位置,對字串變數進行截取
語法:str . substring(index1, index2);
第一個引數表示截取的開始位置(包含index1),第二個引數表示結束位置(不包含index2)
結束位置理論上應該大于開始位置,如果第一個引數值大于第二個引數值,substring方法會自動調換兩個引數的位置
8.substr截取字串
通過指定開始截取的位置和截取的長度,對字串變數進行截取
語法:str . substr(num1, num2);
substr方法的語法格式與substring方法很相似,但表達含義和用法差別很大,substr兩個引數不能互換
9.slice截取字串
通過指定開始和結束位置,對字串變數進行截取
語法:str . slice(num1,num2);
slice的兩個引數不能互相調換位置,如果第一個引數大于第二個引數,則回傳結果為一個空字串
substring、substr、slice三個方法的第一個引數都表示截取開始的位置,如果省略第二個引數,那么這三種方法都表示從開始位置截取一直到字串本身結束
10.indexOf
查找一個字符或字串在另一個字串中的位置
語法:str . indexOf(‘sub’);
字串的查找是從源字串開始處進行向后查找,且只針對首次出現的位置查找,回傳值為所在位置的索引,如果查找失敗則回傳 -1
11.lastindexOf
查找一個字符或字串在另一個字串中的位置
語法:str . lastindexOf(‘subStr’);
字串的查找是從原字串的末尾處進行向前查找,如果查找失敗則回傳 -1
12.indexOf和 lastindexOf還可以接受第二個引數,用于表示開始查找的位置
對于indexOf而言,表示從這個位置開始向后查找,語法:str. indexOf('subStr', num);
對于lastindexOf而言,表示從這個位置開始向前查找,語法:str.lastindexOf('subStr', num);
13.replace
將查找到的首次出現的字串替換成目標字串,如果查找失敗則不發生替換,而是將原字串完整拷貝出來
語法:str . replace('oldStr','newStr');
replace方法并不會對原本字串產生任何影響,而是生成一個新的字串
replace方法只能替換首次出現的字串,如果要替換多個, 需要依賴于正則運算式
14.trim
去掉字串兩端多余的空格,中間部位的空格不受影響,語法:str . trim();
trim()方法并不會對原本的字串產生任何影響,而是生成一個新的字串
15.toUpperCase
將字串中的英文字母全部轉換成大寫字母
語法:str .toUpperCase();
16.同LowerCase
將字串中的英文字母全部轉換成小寫字母
語法:str .toLowerCase();
17.localeCompare
根據本地的排序規則對兩個字串進行大小比較
語法:str1 .localCompare(str2);
如果計算結果大于0則表示 str1大于 str2,如果計算結果等于0則表示 str1等于 str2,如果計算結果小于0則表示 str1小于 str2
ECMAscript標準沒有規定如何進行本地特定的比較操作,只規定了該函式采用底層作業系統提供的排序規則,自定義比較方法也是可以的
18.match
查找原字串是否匹配某個子字串,回傳結果是匹配的子字串資訊陣列,如果沒有找到則回傳null
回傳的陣列內容包含:尋找的子字串、子字串位置索引、原字串
語法:str . match('substr');
示例:var string= 'hello world!';
string.match('hello'); //結果:['hello', index:0, input:'hello world!']
match方法只能查找到匹配的第一個字串,但通過正則運算式的方式可以查找到所有匹配的字串
19.search
與match方法相似,都是查找子字串在指定字串的位置資訊
不同的是search方法回傳的結果為下標(索引),如果沒有找到匹配字串則回傳 -1
語法:str . search('substr');
示例:var string= 'hello world!';
string.search('hello'); //結果:0
20.split
根據指定的符號將字串進行分割,分割后的所有子字串整合成為一個陣列回傳
如果無法分割,則只回傳一個元素——字串本身
語法:str . split('symbol');
示例:var string = ‘see you soon!’
string . split(' '); //回傳結果:[‘see’,‘you’,‘soon’]
分隔符號不同,回傳的陣列就可能不同
21.JavaScript字符集
js使用的是Unicode字符集,在JavaScript引擎內部,所有字符都用Unicode表示
js不僅以Unicode存盤字符,還允許在程式中直接使用Unicode編碼表示字符
決議代碼時,js會自動識別一個字符是字面形式表示,還是Unicode形式表示,輸出給用的時候,所有字符都會轉成字面形式
示例,var eg = '\u00A9';
console.log(eg); //©
\n(換行符),\u000A
\'(單引號),\u0027
\"(雙引號),\u0022
\\(反斜杠),\u005C
22.字串Base64編碼
Base64本身是一種加密方式,可以將任意字符轉換成可列印字符,通常主要是為了簡化程式處理,不出現特殊字符,使用這種編碼方法
JavaScript中為字串提供了兩種有關Base64編碼的方法:
btoa() 字串或二進制值轉換為Base64編碼(加密)
atob() Base64編碼轉換為原來的編碼(解密)
示例:
var string = 'frank';
console.log(btoa(string)); //ZnJhbms=
var string = 'ZnJhbms=';
console.log(atob(string)); //frank
這兩種方法不適合非ASCII碼的字符,但可以通過中間插入一個轉碼環節的方式,使用這兩種方法將非ASCII碼字符與Base64進行轉換
這兩種方法限于決議非中文代碼,決議中文(包括英文)的方法為:encodeURIComponent() (加密)、decodeURIcomponent() (解密)
可以通過將中文加密后,再進行Base64加密,解密時操作順序相反
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/5462.html
標籤:JavaScript
上一篇:代碼之旅:基礎規范
