1.创建字符串
var str = 'hello' // 字面量方式
var str1 = new String('hello') //构造函数方式
2.通过字符串索引号访问字符串中字符
3.通过length属性来获得字符串的长度
4.包装对象
=>基本数据类型:number string boolean undefined null
=>复杂数据类型:Object Array String
5.字符串常用方法:
①charAt(索引号) => 返回指定索引位置的字符
var str = 'hello'
var c1 = str.charAt(1) //这里会得到字母e
console.log('c1 :',c1);
②indexOf(字符) => 返回字符所在索引号
=> 如不存在返回-1
var str = 'hello'
var index = str.indexOf('l') //这里会获得索引号2
console.log('index :', index);
③lastIndexOf(字符) => 返回最后一个字符所在索引号
=> 如不存在返回-1
var str = 'hello'
var lastIndex = str.lastIndexOf('l') //这里返回会获得索引号3
console.log('lastIndex :', lastIndex);
④substring(起始索引号,结束索引号) => 返回起始索引号和结束索引号之间的子字符串,不包括结束索引字符
var str = 'hello'
var sub1 = str.substring(1, 3) //这里返回'el'
console.log('sub1 :', sub1);
⑤substring(起始索引号) => 返回从起始索引号开始后面所有字符串
var str = 'hello'
var sub2 = str.substring(1)//这里返回'ello'
console.log('sub2 :', sub2);
⑥substr(起始索引号,字符个数) => 返回从起始索引位置开始指字符个数的子字符串
var str = 'hello'
var sub2 = str.substr(1,4)//这里返回'ello'
console.log('sub2 :', sub2);
⑦ replace(字符串1,字符串2) => 用后面的字符串2替换前面的字符串1
var str = "Visit Microsoft!"
var sub5 = str.replace('Visit', "school")
console.log('sub5 :', sub5); // school Microsoft!
⑧split('分割符') => 分割字符串,将分割之后的字符存入数组返回
var str1 = 'javascript-html-css'
var arr = str1.split('-')
console.log('arr :', arr); // ['javascript', 'html', 'css']
⑨concat('拼接字符串') =>拼接字符串返回
var str = 'hello'
var newStr = str.concat('world') //这里获得'helloworld'
console.log('newStr ', newStr);
⑩ trim() => 方法删除字符串两端的空白符
=> 返回去掉空格的新字符
⑪toUpperCase() =>将字符串变为大写
var s2 = 'hello'
var str2 = s2.toUpperCase() // HELLO
console.log('str2 ', str2);
⑫toLowerCase() =>将字符串变为小写
var s3 = 'HELLO'
var str3 = s3.toLowerCase() // hello
console.log('str3 ',str3);
6.练习
1. 反转字符串 abcdefg => gfedcba
方法①:
function reverseStr() {
var str = 'abcdefg' // => 'gfedcba'
// 0123456
var newStr = ''
var len = str.length //7
for (var i = len - 1; i >= 0; i--) { //i:6,5
var item = str.charAt(i) //item: g, f
newStr = newStr + item // 'g'+'f' 'gf'
}
console.log(newStr);
}
reverseStr()
方法②:
function reverseStrTwo() {
var str = 'abcdefg' // => 'gfedcba'
var arr = str.split('') //字符串->数组
arr.reverse() //反转
var newStr = arr.join('') //数组->字符串
console.log(newStr);
}
reverseStrTwo()
2. 已知字符串 'abcefMMaveqeripMMaeererMMda' 替换大字MM为*号 'abcef**aveqerip**aeerer**da'
方法①:
function replaceStr() {
//str.replace('MM', '**') // 'abcef**aveqeripMMaeererMMda'
// newStr = newStr.replace('MM','**') //abcef**aveqerip**aeererMMda
// newStr = newStr.replace('MM','**')
var str = 'abcefMMaveqeripMMaeererMMda'
while(str.indexOf('MM') != -1){
str = str.replace('MM','**') // 'abcef**aveqerip**aeerer**da'
}
console.log(str);
}
replaceStr()
方法②:
function replaceStrTwo(){
var str = 'abcefMMaveqeripMMaeererMMda' // '[abcef, aveqerip, aeererMMda]'
var arr = str.split('MM')
var newStr = arr.join('**')
console.log('newStr :',newStr);
}
replaceStrTwo()