千鋒教育JavaScript全套視頻教程(10天學(xué)會(huì)Js,前端javascrip

indexOf 根據(jù)傳入的字符串返回第一次出現(xiàn)的下標(biāo)(找不到返回-1)從前往后
console.log('aaaabbbb'.indexOf('a'))//0
console.log('aaaabbbb'.indexOf('ab'))//3
lastIndexOf 根據(jù)傳入的字符串返回第一次出現(xiàn)的下標(biāo) (找不到返回-1)(從后往前)
console.log('aaaabbbb'.lastIndexOf('a')) //3
console.log('aaaabbbbab'.lastIndexOf('ab')) //8
search 方法類似于indexOf 支持正則表達(dá)式
// search 返回對(duì)應(yīng)的下標(biāo) 找不到返回-1 支持正則表達(dá)式
console.log('aaabbb'.search('ab'))//2
console.log('aaabbb'.search('ab',3))//2 search只有一個(gè)參數(shù)?沒有開始位置
底層實(shí)現(xiàn)lastIndexOf及indexOf
//簡易實(shí)現(xiàn)indexOf
var str = 'abcbcaabcd'
function myIndexOf(value,index){
??if(value == undefined){
????throw new Error('傳參個(gè)數(shù)錯(cuò)誤')
??}
??//如果index沒有傳入設(shè)置默認(rèn)值
??if(index == undefined){
????index = 0
??}
??//遍歷查找
??//得到對(duì)應(yīng)的長度
??//如果當(dāng)前的開始位置+value的長度大于本身的字符串長度 那么返回-1
??if(index+value.length > str.length){
????return -1
??}else{
????//遍歷對(duì)應(yīng)的字符串
????for(var i=index;i<str.length - value.length;i++){
??????//根據(jù)value長度來拼接
??????var v = str[i]
??????for(var j=1;j<value.length;j++){
????????v+=str[i+j]
??????}
??????//根據(jù)對(duì)應(yīng)的value來比較
??????if(value == v){
????????return i
??????}
????}
??}
??return -1
}
console.log(myIndexOf('abc',2))
//lastIndexOf的實(shí)現(xiàn)
function myLastIndexOf(value,index){
??if(value == undefined){
????throw new Error('傳參個(gè)數(shù)錯(cuò)誤')
??}
??//如果index沒有傳入設(shè)置默認(rèn)值
??if(index == undefined){
????index = str.length
??}
??//遍歷查找
??//得到對(duì)應(yīng)的長度
??for(var i=index;i>=0;i--){
????//字符串拼接
????var v = str[i]
????for(var j=1;j<value.length;j++){
??????v+=str[i+j]
????}
????if(v == value){
??????return i
????}
??}
??return -1
}
charAt 根據(jù)下標(biāo)返回字符
charCodeAt 根據(jù)下標(biāo)返回字符串的ascii碼
console.log('abc'.charCodeAt(0))//97
靜態(tài)方法 String.fromCharCode
//靜態(tài)方法
// 將asscii碼變成字符串 String
var str = String.fromCharCode(97) //返回一個(gè)字符串
console.log(str)
截取相關(guān)的方法 (如果只傳遞一個(gè)參數(shù)那么默認(rèn)都是截取到最后)
substring 傳入開始下標(biāo)及結(jié)束下標(biāo)(包含開始的下標(biāo)不包含結(jié)束的)
var str = 'abcdef'.substring(3,5)//de
substr 傳入開始下標(biāo)和個(gè)數(shù)
var str = 'abcdef'.substr(2,2)//從下標(biāo)2開始截取倆個(gè) cd
slice 傳入開始下標(biāo)及結(jié)束下標(biāo) (可以一個(gè)參數(shù)都不傳遞默認(rèn)截取所有)
var str = 'abcdef'.slice(2,4)//cd
連接的方法
concat
var str = 'hello'
//返回一個(gè)新的字符串
var concatStr = str.concat('world')
console.log(concatStr) //helloworld
支持正則的四個(gè)方法
search
//search 查找(根據(jù)傳入的字符串返回第一次出現(xiàn)位置的下標(biāo))
var str = '1_abcd'
//\w數(shù)字字母下劃線
var index = str.search(/\w/)
console.log(index)//0
match
//match 匹配 返回一個(gè)數(shù)組(包含匹配的內(nèi)容)執(zhí)行一次
var str = '_abc?789'
var strArr = str.match(/\w/)
console.log(strArr)
replace
?//replace 替換 根據(jù)對(duì)應(yīng)的匹配內(nèi)容進(jìn)行替換 執(zhí)行一次
?var str = 'abcabc'
?// var str1 = str.replace('a','f')//傳入字符串形式 將a替換為f
?var str1 = str.replace(/a/,'f')//傳入正則形式 將a替換為f
?console.log(str1)
?//高階函數(shù)寫法的replace 支持傳入函數(shù)作為參數(shù)
?//傳入一個(gè)函數(shù)作為參數(shù)的形式 里面的參數(shù)是匹配的內(nèi)容 里面的return是替換的內(nèi)容
?var replaceStr = str.replace(/a/,function(value){
???console.log(value)//a
???return 'f'
?})
?console.log(replaceStr)
split
//split 分割的 將對(duì)應(yīng)的字符串分割為一個(gè)數(shù)組返回
//數(shù)組的join相反 將數(shù)據(jù)拼接成一個(gè)字符串返回 將字符串拆分為數(shù)組
var str = 'a,b,c'
//如果不傳參 他就將這個(gè)字符串直接填入數(shù)組返回
// var arr = str.split(',')
var arr = str.split(/,/)
console.log(arr)