1、通过索引
2、charAt() 参数是索引
1、通过+号
2、concat() 参数一般是字符串
1、substring(start,end)参数都是索引,从start开始截取到end结束,包含start不包含end。
不会改变原字符串的大小,如果只有一个参数start从start开始到结束,返回新字符串
2、substr(start,length)参数是索引和长度,从start开始截取length个,
不会改变原字符串的大小,如果只有一个参数start从start开始到结束,返回新字符串
1、indexOf() 获取对应字符的索引值,如果有相同的字符,从前往后数第一个字符,如果没有返回-1
2、lastIndexOf() 获取对应字符的索引值,如果有相同的字符,从后往前数第一个字符,如果没有返回-1
trim()
search()
replace(old,new)
split()返回的是一个数组。数组的元素就是以参数的分割的
var str = 'web前端'
str = 'java后端'
console.log(typeof str) //string
var strObj = new String('web前端+移动端')
console.log(strObj)
console.log(typeof strObj) //object
console.log(strObj.length) //9
console.log(strObj + str) //web前端+移动端java后端
//三、
console.log(strObj[3]) //前
console.log(strObj.charAt(3)) //前
console.log(strObj.charAt(7)) //动
//四、
console.log(strObj.concat('学习周期是4-5个月')) //web前端+移动端学习周期是4-5个月
console.log(strObj.concat(false)) //web前端+移动端false
//五、
var new1 = strObj.substring(3, 5)
console.log(new1) //前端
var new1 = strObj.substring(3)
console.log(new1) //前端+移动端
console.log(strObj) //String{'web前端+移动端'}
var new1 = strObj.substr(3, 5)
console.log(new1) //前端+移动
var new1 = strObj.substr(3)
console.log(new1) //前端+移动端
console.log(strObj) //String{'web前端+移动端'}
//六、
console.log(strObj.indexOf('前'))
console.log(strObj.indexOf('端')) //4
console.log(strObj.indexOf('A')) //-1
console.log(strObj.lastIndexOf('端')) //8
//七、
var strPhone = ' 13021891410 '
// strPhone.trim()
console.log(strPhone) // 13021891410
console.log(strPhone.trim()) //13021891410
console.log(strPhone.trim().length) //11
//八、
console.log(strObj.search('web')) //0
console.log(strObj.search('前端+')) //3
console.log(strObj.search('前端')) //3
console.log(strObj.search('前')) //3
console.log(strObj.search('前移动')) //-1
//九、
var new1 = strObj.replace('web', 'java')
console.log(new1) //java前端+移动端
var new1 = strObj.replace('端', 'duan').replace('端', 'duan')
console.log(new1) //web前duan+移动duan
//十、
var arr = strObj.split()
console.log(arr) //['web前端+移动端']
var arr = strObj.split('+')
console.log(arr) //['web前端','移动端']
var arr = strObj.split('端')
console.log(arr) //['web前','+移动','']
// 3、 查找指定字符是否在以上字符串中存在,如:i,c ,b等
var str = new String('abaasdffggghhjjkkgfddsssss3444343')
function checkedStr(item) {
if (str.indexOf(item) == -1) {
console.log(item + '不存在')
} else {
console.log(item + '存在')
}
}
checkedStr('i')
checkedStr('c')
checkedStr('b')
// 5、截取指定开始位置到结束位置的字符串,如:取得1-5的字符串
console.log(str.substring(1, 5)) //baas
console.log(str.slice(1, 5)) //baas
// 6、找出以上字符串中出现次数最多的字符和出现的次数 s 6次
/*
思路:
a、创建一个空对象
b、遍历字符串
c、让每个子字符当做空对象的属性名.如果没有该属性属性值是undefined
d、遍历对象
*/
var str = new String('abaasdffggghhjjkkgfddsssss3444343')
var obj = {}
/* obj = {
a: 1,
} */
for (var i = 0; i < str.length; i++) {
// console.log(str.charAt(i))
// 当i=0时 str.charAt(i)="a" obj[str.charAt(i)]=undefined
// 当i=2时 str.charAt(i)="a" obj[str.charAt(i)]=1
// obj[str.charAt(i)]//undefined
if (obj[str.charAt(i)]) {
// if语句返回为false的六种情况:0 "" NaN false null undefined
obj[str.charAt(i)]++
} else {
// 出现一次,就让其字符当做该对象的属性名
obj[str.charAt(i)] = 1
}
}
for (x in obj) {
console.log('子字符串' + x + '出现的次数是:' + obj[x] + '次')
}
// 如果一个对象没有该属性,此属性值为undefined
var car = {}
console.log(car.color) //undefined
console.log(car.a) //undefined
console.log(car.b) //undefined
console.log(car.c) //undefined
// 7/遍历字符串,并将遍历出的字符两头添加符号“@”输出至当前的文档页面
var strNew = ''
for (var i = 0; i < str.length; i++) {
if (i == 0) {
strNew = '@' + str[i] + '@'
} else {
strNew = str[i].concat('@')
}
document.write(strNew)
}
// 字符串转数组 split()
// 数组转字符串 join() :如果没有参数元素以逗号分隔,如果有参数元素以参数分隔
var arr = ['我', '是', '程', '序', '员']
var str = arr.join("A")
console.log(str)