數據類型總結——String(字符串類型)
相關文章
簡書原文:https://www.jianshu.com/p/546a755c3eb6
數據類型總結——概述:https://www.cnblogs.com/shcrk/p/9266015.html
數據類型總結——String(字符串類型):https://www.cnblogs.com/shcrk/p/9277107.html
數據類型總結——Number(數值類型):https://www.cnblogs.com/shcrk/p/9277040.html
數據類型總結——Boolean類型(布爾類型):https://www.cnblogs.com/shcrk/p/9265597.html
數據類型總結——null和undefined:https://www.cnblogs.com/shcrk/p/9266100.html
數據類型總結——基本包裝類型:https://www.cnblogs.com/shcrk/p/9266066.html
數據類型總結——Array(數組類型):https://www.cnblogs.com/shcrk/p/9276989.html
大綱
前言
1、String字符串類型的相關知識
2、字符串的創建
3、字符串的比較
4、轉換字符串
5、字符串的基本操作——連接字符串
6、字符串的基本屬性和方法
前言
數據類型是每一種語言都需要掌握的內容,掌握每一種數據類型的使用是掌握這門語言必不可少的。而我也對數據類型寫了一系列的博客,其中包含了對某一數據類型的概念的認識和理解以及常使用的方法。以下就是我對String類型的一些認識和理解,希望能對讀者有所幫助。並且這是關於ES6之前的一篇,之後還會有一篇關於ES6對字符串的新增的知識的總結。
1、String字符串類型的相關知識
1.1、String類型用於表示由零或多個16位Unicode字符組成的字符序列,即字符串。字符串可由單引號或者雙引號表示。
1.2、字符串由零個或多個字符構成。字符包括字母、數字、標點符號和空格。字符串必須放在引號裏——單引號和雙引號都允許使用。
1.3、如果字符串包含雙引號字符,就應該把整個字符串放在單引號中;如果字符串包含單引號字符,就應該把整個字符串放在雙引號中;如果執意要使用一種引號來包括字符串,那麽可以使用轉義字符(escaping)來使得字符串中的內容不被解釋成這個字符串的結束標誌。在JavaScript語言中,對字符進行轉義需要用到反斜杠字符。
2、字符串的創建
通常情況下創建一個字符串對象可以通過方法var string1 = "Hello",而不是 var string1 = new String("Hello"),通過直接復制字符串的賦值的方式創建字符串的對象相對於直接new String對象來說要簡潔的多,而JavaScript會自動幫助我們將字符串轉換成字符串對象。
3、字符串的比較
字符串的比較是將會比較實際的字符串大小是否相等,而字符串對象的比較比較的是兩個對象的引用是否相等。
4、轉換字符串
要把一個值轉換為一個字符串有兩種方式:
4.1、就是使用幾乎每個值都有的toString()方法,這個返回唯一要做的就是返回相應值的字符串表現。
var num = 10; console.log(num.toString()); //10 console.log(num.toString(2)); //1010 console.log(num.toString(8)); //12 console.log(num.toString(10)); //10 console.log(num.toString(16)); //a
4.2、在不知道要轉換的值是不是null或undefined的情況下,還可以使用轉型函數String([value]),這個函數能夠將任何類型的值轉換為字符串。
String(12);
5、字符串的基本操作——連接字符串
字符串的連接只需要將兩個字符串通過“+”連接即可,字符串和數值通過“+”連接起來,那麽數值就會自動轉換成字符串的數據,從而變成兩個字符串連接。
var concatString = "Hello " + "Paul";
6、字符串的基本屬性和方法
6.1、length屬性
length屬性:返回字符串中字符的個數,即字符串的長度
6.2、concat()
str.concat([string1[,string2...]])
concat方法返回字符串值,該值包含了兩個或多個提供的字符串的連接。
string1,string2要和所有其他指定的字符串進行連接的String對象或文字。
var str = "ABCDEF"; var newStr = str.concat("ABCDEF","ABC"); console.log(str); //ABCDEF console.log(newStr); //ABCDEFABCDEFABC
6.3、charAt()
strObj.charAt(index)
charAt方法返回指定索引位置處的字符。如果超出有效範圍的索引值返回空字符串。
index想得到的字符的基於零的索引。有效值是0與字符串長度減一之間的值。
var str=‘abcd‘; var a=str.charAt(0); console.log(a); //‘a‘ console.log(str); //‘abcd‘
6.4、charCodeAt()
strObj.charCodeAt(index)
charCodeAt方法返回一個整數,代表指定位置字符的Unicode編碼。
index將被處理字符的從零開始計數的編號。有效值為0到字符串長度減1的數字。 如果指定位置沒有字符,將返回NaN。
var str = "ABC"; str.charCodeAt(0); //65
6.5、slice()
strObj.slice(start[,end])
slice方法返回字符串的片段。
start下標從0開始的strObj指定部分其實索引。如果start為負,將它作為length+start處理,此處length為字符串的長度。
end小標從0開始的strObj指定部分結束索引。如果end為負,將它作為length+end處理,此處length為字符串的長度。
var str = "ABCDEF"; str.slice(2,4); //CD
6.6、indexOf()和lastIndexOf()
查找子串在字符串中的位置
用於一個字符串中是否包含某個子串(其它字符串)
傳參:
1、需要查找的子串
2、從哪個位置查找(可選)indexOf()的默認值是0,而lastIndexOf()默認是length-1
返回參數:
返回查找到的子串在字符串中的位置,如果沒有找到則返回-1
var string1 = "strkiudstrkknstskjustrkui"; var indof = string1.indexOf(‘str‘); var indofNum = string1.indexOf(‘str‘,2); var lasindeof = string1.lastIndexOf(‘str‘); var lasindeofNum = string1.lastIndexOf(‘str‘,15); console.log(indof);//0 console.log(indofNum);//7 console.log(lasindeof);//19 console.log(lasindeofNum);//7
6.7、substr()
strObj.substr(start[,length])
substr方法返回一個從指定位置開始的指定長度的子字符串。
start所需的子字符串的起始位置。字符串中的第一個字符的索引為0。
length在返回的子字符串中應包括的字符個數。
var str = "ABCDEF"; str.substr(2,4); //CDEF
6.8、substring()
strObj.substring(start,end)
substring方法返回位於String對象中指定位置的子字符串。
start指明子字符串的起始位置,該索引從0開始起算。
end指明子字符串的結束位置,該索引從0開始起算。
substring方法使用start和end兩者中的較小值作為子字符串的起始點。如果start或end為NaN或者為負數,那麽將其替換為0。
var str = "ABCDEF"; str.substring(2,4); // 或 str.substring(4,2); //CD
6.9、toUpperCase() / toLocaleUpperCase()
toUpperCase方法返回一個字符串,該字符串中的所有字母都被轉換為大寫字母。
var str = "ABCabc"; var newStr = str.toUpperCase(); console.log(str); //ABCabc console.log(newStr);//ABCABC
6.10、 toLowerCase() / toLocaleLowerCase()
toLowerCase方法返回一個字符串,該字符串中的字母被轉換成小寫。
var str = "ABCabc"; var newStr = str.toLowerCase(); console.log(str); //ABCabc console.log(newStr);//abcabc
6.11、trim()
trim():刪除前置及後綴的所有空格,然後返回副本結果
var str = " ABCa bc "; var newStr = str.trim(); str = str + "111111"; newStr = newStr + "111111"; console.log(str); // ABCa bc 111111 console.log(newStr); //ABCa bc111111
6.12、split()
strObj.split([separator[,limit]])
將一個字符串分割為子字符串,然後將結果作為字符串數組返回。
根據某種分割標誌符將一個字符串拆分成由子串組成的數組
separator字符串或 正則表達式 對象,它標識了分隔字符串時使用的是一個還是多個字符。如果忽略該選項,返回包含整個字符串的單一元素數組。
limit該值用來限制返回數組中的元素個數。
var str = "AA BB CC DD EE FF"; alert(str.split(" ",3));//結果: AA,BB,CC
6.13、replace()
replace()方法:將制定的字符串中的子串替換成指定的另一子串,replace()方法將返回一個新的字符串,不會改變原有的字符串。
var myString = "The event will be in May, the 21st of June"; myCleanedUpString = myString.replace("May","June"); console.log(myCleanedUpString);//The event will be inJune, the 21st of June
6.14、search()
strObj.search(reExp)
search()方法:查找指定子串在字符串中的位置
search方法返回與正則表達式查找內容匹配的第一個字符串的位置。
reExp包含正則表達式模式和可用標誌的正則表達式對象。
var str = "ABCDECDF"; str.search("CD"); // 或 str.search(/CD/i); //結果:2
6.15、match()
match()方法:返回一個數組,數組中的每一個元素即為根據傳入的模式字符串匹配到的子串。
var myString = "1997, 1998, 1999, 2000, 2001, 2002"; myMatchArray = myString.match("2000"); console.log(myMatchArray.length);//1
6.16、String對象其它方法的使用:anchor()、blink()、italics()、link() 、fontcolor()
/* anchor() 生產錨點 blink() 為元素添加blink標簽 charAt() 返回指定索引位置處的字符。 charCodeAt() 返回一個整數,代表指定位置上字符的 Unicode 編碼。 fontcolor() 把帶有 COLOR 屬性的一個 HTML <FONT> 標記放置在 String 對象中的文本兩端 indexOf() 返回 String 對象內第一次出現子字符串的字符位置 italics() 把 HTML <I> 標記放置在 String 對象中的文本兩端。 link() 把一個有 HREF 屬性的 HTML 錨點放置在 String 對象中的文本兩端。 replace() 返回根據正則表達式進行文字替換後的字符串的復制 split() 切割 Substr() 截取子串 toUpperCase() 轉大寫 toLowerCase 轉小寫 */ document.write("第五章".anchor("five")+"<br/>"); document.write("第五章".blink()+"<br/>"); document.write("abc".charAt(1)+"<br/>"); document.write("abc".charCodeAt(1)+"<br/>"); //chatCodeAt返回的是索引值對應的字符的碼值。 document.write("第六章".fontcolor("red")+"<br/>"); //fontcolor() 給字符串添加font標簽, //然後設置color的屬性值。 document.write("abchellohehehello".indexOf("hello")+"<br/>"); //返回指定字符串第一次出現的索引值。 document.write("第五章".italics()+"<br/>"); //給文本添加一個i標簽,把文本內容設置成斜體。 document.write("傳智".link("http://www.itcast.cn")+"<br/>"); // 給文本添加一個a標簽, document.write("明天我們講xml".replace("xml","DOM編程")+"<br/>"); var str = "我們-大家-好"; var arr = str.split("-"); for(var index = 0 ; index<arr.length ; index++){ document.write(arr[index]+","); } document.write("<br/>"); document.write("abc".toUpperCase()+"<br/>"); //轉大寫 document.write("ABC".toLowerCase()+"<br/>"); //轉小寫
數據類型總結——String(字符串類型)