從零開始學習前端JAVASCRIPT — 3、JavaScript基礎string字符串介紹
1:字符串
JS中的任何數據類型都可以當作對象來看。所以string既是基本數據類型,又是對象。
2:聲明字符串
基本數據類型:var sStr = ‘字符串’;
對象的方法:var oStr = new String(‘字符串’);
//統計每個字符出現的次數,結果顯示 a 2、b 1、c 2、d1,去掉重復的字符,使結果顯示 abcdfgj。
//var定義的變量賦值字符串以對象[]的方式訪問單個字符IE8以上支持
var str="abcdafgcj";
var arr={};
var newstr="";
for (var i = 0; i < str.length; i++) {
if (arr[str[i]]) {
arr[str[i]]++;
}
else {
arr[str[i]]=1;
}
}
for(newarr in arr){
newstr+=newarr+":"+arr[newarr]+"、";
}
document.write(newstr)
//以string.charAt方式獲取字符串對應位置的值兼容低版本瀏覽器
var str="abcdafgcj";
var arr={};
var newstr="";
for (var i = 0; i < str.length; i++) {
var code=str.charAt(i);
if (arr[code]) {
arr[code]++;
}
else {
arr[code] =1;
}
}
for(newarr in arr){
newstr+=newarr+":"+arr[newarr]+"、";
}
document.write(newstr)
聲明字符串使用demo
3:字符串屬性
1.length: 計算字符串的長度(不區分中英文)。
2.constructor:對象的構造函數。
4:字符串方法
序號 | 方法名 | 作用 |
1 | myStr.charAt(num) | 返回在指定位置的字符 |
2 | myStr.charCodeAt(num) | 返回指定位置的字符的Unicode(是字符編碼的一種模式)編碼。 |
3 | String.fromCharCode() | String的意思就是不能用自己定義的字符串名字來調用,例如定義一個變量字符串 var str="";只能用String來定義調用。接受一個或多個指定的Unicode值,然後返回一個或多個字符串。(把unicode編碼轉換為字符串)。 |
4 | myStr.indexOf() | 返回某個指定的字符串,在字符串中首次出現的位置。如果要檢索的字符串值沒有出現,則該方法返回 -1。第二個參數指定開始查找的起始位置。 |
5 | myStr.lastIndexOf() | 返回一個指定的字符串值最後出現的位置,如果要檢索的字符串值沒有出現,則該方法返回 -1。第二個參數指定開始查找的起始位置,只能指定正數。 |
6 | myStr.match() | 在字符串中檢索指定的值,返回的值是數組。如果匹配不到返回null。配合正則來用。 |
7 | myStr.search() | 返回出現的位置,查找不到返回-1。配合正則來用。 |
8 | myStr.replace(“需替換的字符串”,“替換後的字符串”) | 將字符串中的一些字符替換為另外一些字符。配合正則使用。 |
9 | myStr.slice(start,end) | 從指定的開始位置,到結束位置(不包括結束位置)的所有字符串。如果不指定結束位置,則從指定的開始位置,取到結尾。註意的是,myStr.slice() 與 myArr.slice() 相似。 |
10 | myStr.substring(start,end) | 從指定的開始位置,到結束位置(不包括)的所有字符串。如果不指定結束位置,則從指定的開始位置,取到結尾。 |
11 | substr(start,length) |
從指定的位置開始取指定長度的字符串。如果沒有指定長度,從指定開始的位置取到結尾。 ECMAscript 沒有對該方法進行標準化,因此反對使用它。 如果substr的start指定為負數,則該參數聲明從字符串的尾部開始算起的位置。也就是說,-1 指字符串中最後一個字符,-2 指倒數第二個字符,以此類推。 slice(start,end) vs substring(start,end) :slice參數可以是負數,如果是負數,從-1開始指的是字符串結尾。substring參數是負數的時候,會自動轉換為0。 |
12 | split("分割位置",[指定的長度]) | 將一個字符串分割成數組。 |
13 | toLowerCase() | 用於把字符串轉換為小寫。 |
14 | toUpperCase() | 將字符串轉換為大寫。 |
5:ASCII碼和字符集
ASCII:American Standard Code for Information Interchange,美國信息交換標準代碼。
Unicode編碼:
Unicode(統一碼、萬國碼、單一碼)是計算機科學領域裏的一項業界標準,包括字符集、編碼方案等。Unicode 是為了解決傳統的字符編碼方案的局限而產生的,它為每種語言中的每個字符設定了統一並且唯一的二進制編碼,以滿足跨語言、跨平臺進行文本轉換、處理的要求。 Unicode目前普遍采用的是UCS-2,它用兩個字節來編碼一個字符。
如漢字"經"的編碼是0x7ECF,註意字符碼一般用十六進制來 表示,為了與十進制區分,十六進制以0x開頭,0x7ECF轉換成十進制 就是32463,UCS-2用兩個字節來編碼字符,兩個字節就是16位二進制, 2的16次方等於65536,所以UCS-2最多能編碼65536個字符。
GBK編碼:
GBK全稱《漢字內碼擴展規範》(GBK即“國標”、“擴展”漢語拼音的第一個字母,英文名稱:Chinese Internal Code Specification)。GBK 向下與GB2312編碼兼容,向上支持 ISO 10646.1國際標準,是前者向後者過渡過程中的一個承上啟下的產物。
UTF-8編碼:
UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字符編碼,又稱萬國碼。 UTF-8用1到4個字節編碼UNICODE字符。用在網頁上可以同一頁面顯示中文簡體繁體及其它語言(如英文,日文,韓文)。
從零開始學習前端JAVASCRIPT — 3、JavaScript基礎string字符串介紹