1. 程式人生 > >數據類型總結——String(字符串類型)

數據類型總結——String(字符串類型)

布爾類型 start 指定 1.3 red font 6.4 shu ont

相關文章

  簡書原文: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(字符串類型)