??個人主頁:「小楊」的csdn博客
??系列專欄:【JavaScript速成之路】
??希望大家多多支持??一起進步呀!
前言
??前言:小楊在上一篇帶著大家一起學(xué)習(xí)了JavaScript中的內(nèi)置的數(shù)組對象,想必大家對JavaScript的內(nèi)置的數(shù)組對象已經(jīng)有所了解了,那么今天我們將繼續(xù)帶著大家學(xué)習(xí)一下JavaScript的內(nèi)置對象中的字符串對象這部分相關(guān)知識,希望大家收獲多多!
字符串對象
1,初識字符串對象
<script>
var str = new String('abcdefg');
console.log(str);
console.log(str.length);
var str = 'abcdefg';
console.log(str);
console.log(str.length);
</script>
示例結(jié)果:
拓展1:字符串對象String與字符串變量str的區(qū)別
為了更好地了解字符串對象String與字符串變量str的區(qū)別,示例如下:
<script>
//String字符串對象 與 str 字符串變量區(qū)別
var obj = new String('abcdef');
console.log(typeof obj);
console.log(obj instanceof String);
var str = 'abcdef';
console.log(typeof str);
console.log(str instanceof String);
</script>
示例結(jié)果:
2,據(jù)字符返回位置
成員 | 作用 |
---|---|
indexOf(searchValue) | 獲取searchValue在字符串中首次出現(xiàn)的位置 |
lastIndexOf(searchValue) | 獲取searchValue在字符串中最后出現(xiàn)的位置 |
為了更好地理解上述方法的使用,示例如下:
<script>
//根據(jù)字符返回位置
var str = 'abcdefedc';
console.log(str.indexOf('d'));
console.log(str.lastIndexOf('d'));
</script>
示例結(jié)果:
3,據(jù)位置返回字符
成員 | 作用 |
---|---|
charAt(index) | 獲取index位置的字符,位置從0開始計算 |
charCodeAt(index) | 獲取index位置的字符的ASCll碼 |
str[index] | 獲取指定index位置處的字符(HTML5新增) |
為了更好理解上述方法的使用,示例如下:
<script>
//根據(jù)位置返回字符
var str = 'abcdef';
console.log(str.charAt(2));
console.log(str.charCodeAt(2));
console.log(str[2]);
</script>
示例結(jié)果:
4,字符串操作方法
成員 | 作用 |
---|---|
concat(str1,str2,…) | 連接多個字符串,等效于+,+更實用 |
slice(start,end) | 截取從start位置到end位置之間的一個子字符串,截取范圍為[start,end-1] |
substring(start,end) | 截取從start位置到end位置之間的一個子字符串,基本和slice相同,但不接收負值 |
substr(start,end) | 截取從start位置開始到length長度的子字符串 |
toLowerCase() | 獲取字符串的小寫形式 |
toUpperCase() | 獲取字符串的大寫形式 |
split(separator,limit) | 使用separator分隔符將字符串分隔成數(shù)組,limit用于限制數(shù)量 |
replace(str1,str2) | 使用str2替換字符串中的str1,返回替換結(jié)果,只會替換第1個字符 |
為了更好地理解上述方法的使用,現(xiàn)對上述方法逐一介紹:
1)concat()方法
concat()方法,連接多個字符串
<script>
var str1 = 'abc';
console.log(str1.concat('de')); //連接一個字符串
console.log(str1.concat('de','fg')); //連接兩個字符串
console.log(str1.concat('de','fg','h')); //連接三個字符串
console.log(str1); //查看方法對原字符串的影響
</script>
示例結(jié)果:
2)slice()方法
slice()方法,截取從start位置到end位置之間的一個子字符串,截取范圍為[start,end-1]
<script>
var str2 = 'abcdefg';
console.log(str2.slice()); //無參數(shù),默認截取字符串,截取范圍:[0,len-1]
console.log(str2.slice(2)); //有參數(shù)start,從start開始截取字符串,截取范圍:[start,len-1]
console.log(str2.slice(2,4)); //有參數(shù)start和end,從start開始截取字符串,截取范圍:[start,end-1]
console.log(str2); //查看方法對原字符串的影響
</script>
3)substr()方法
substr()方法,截取從start位置開始到length長度的子字符串
<script>
var str3 = 'abcdefg';
console.log(str3.substr()); //無參數(shù),默認截取字符串,截取范圍:[0,len-1]
console.log(str3.substr(2)); //有參數(shù)start,從start開始截取字符串,截取范圍:[start,len-1]
console.log(str3.substr(2,2)); //有參數(shù)start和length,從start開始截取字符串,截取長度:length
console.log(str3.substr(0,2)); //有參數(shù)length,從0開始截取字符串,截取長度:length
console.log(str3); //查看方法對原字符串的影響
</script>
示例結(jié)果:
4)toLowerCase(),toUpperCase()
toLowerCase()方法,獲取字符串的小寫形式
toUpperCase()方法,獲取字符串的大寫形式
<script>
var str4 = 'ABCdef';
console.log(str4.toLowerCase()); //將字符串轉(zhuǎn)為小寫形式
console.log(str4.toUpperCase()); //將字符串轉(zhuǎn)為大寫形式
console.log(str4); //查看方法對原字符串的影響
</script>
示例結(jié)果:
5)split()方法
split()方法,使用separator分隔符將字符串分隔成數(shù)組,limit用于限制數(shù)量
<script>
var str5 = 'ab,cd,efgh';
console.log(str5.split(',')); //有參數(shù)separator,以分隔符將字符串分隔成數(shù)組
console.log(str5.split(',',2)); //有參數(shù)separator和limit,以分隔符將字符串分隔成數(shù)組,limit限制個數(shù)
console.log(str5);
</script>
示例結(jié)果:
6)replace()方法
replace()方法,使用str2替換字符串中的str1,返回替換結(jié)果,只會替換第1個字符
<script>
//replace()方法,使用str2替換字符串中的str1,返回替換結(jié)果,只會替換第1個字符
var str6 = 'abcdefg';
console.log(str6.replace('a','b')); //將字符串中的str1替換為str2,返回替換結(jié)果,只會替換第1個字符
console.log(str6);
</script>
示例結(jié)果:
5,基本包裝類型
為了方便操作基本數(shù)據(jù)類型,JavaScript還提供了三個特殊的引用類型:String、Number和Boolean。基本包裝類型就是把簡單數(shù)據(jù)類型包裝成為復(fù)雜數(shù)據(jù)類型,這樣基本數(shù)據(jù)類型就有了屬性和方法。
var str = 'andy' ;
console.log(str. length);
按道理基本數(shù)據(jù)類型是沒有屬性和方法的,而對象才有屬性和方法,但上面代碼卻可以執(zhí)行,這是因為js 會把基本數(shù)據(jù)類型包裝為復(fù)雜數(shù)據(jù)類型,其執(zhí)行過程如下︰
//1.生成臨時變量,把簡單類型包裝為復(fù)雜數(shù)據(jù)類型
var temp = new string ( 'andy' );
//2.賦值給我們聲明的字符變量
str = temp;
//3.銷毀臨時變量
temp = null;
6,字符串的不變性
字符串的不變性指的是里面的值不可變,雖然看上去可以改變內(nèi)容,但其實是地址變了,內(nèi)存中新開辟了一個內(nèi)存空間。
<script>
var str = 'abc';
console.log(str);
var str = 'bcd'; //當(dāng)重新給str賦值的時候,常量"abc'不會被修改,
console.log(str); //依然在內(nèi)存中重新給字符串賦值,會重新在內(nèi)存中開辟空間,這個特點就是字符串的不可變
</script>
示例結(jié)果:
注意:由于字符串的不可變,在大量拼接字符串的時候會有效率問題。
結(jié)語
這就是本期博客的全部內(nèi)容啦,想必大家已經(jīng)對JavaScript中的內(nèi)置對象中的字符串對象的相關(guān)內(nèi)容有了全新地認識和理解吧,如果有什么其他的問題無法自己解決,可以在評論區(qū)留言哦!
最后,如果你覺得這篇文章寫的還不錯的話或者有所收獲的話,麻煩小伙伴們動動你們的小手,給個三連唄(點贊??,評論?,收藏??),多多支持一下!各位的支持是我最大的動力,后期不斷更新優(yōu)質(zhì)的內(nèi)容來幫助大家,一起進步。那我們下期見!文章來源:http://www.zghlxwxcb.cn/news/detail-409555.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-409555.html
到了這里,關(guān)于【JavaScript速成之路】JavaScript內(nèi)置對象--字符串對象的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!