基本包装类型
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var str = 'andy';
console.log(str.length);
// 对象 才有 属性和方法 复杂数据类型才有 属性和方法
// 简单数据类型为什么会有length 属性呢?
// 基本包装类型:把简单数据类型 包装为 复杂数据类型
// (1)把简单数据类型包装成复杂数据类型
var temp = new String('andy');
// (2)把临时变量的值给 str
str = temp;
// (3)销毁这个临时变量
temp = null;
</script>
</body>
</html>
字符串的不可变形
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// 虽看上去内容改变 但只是地址改变 内存又开辟了新的内存空间
var str = 'andy';
console.log(str);
str = 'red';
console.log(str);
// 因字符串的不可变 所以不要大量的拼接字符串
var str = '';
for (var i = 1; i <= 100; i++) {
str += i;
}
console.log(str);
</script>
</body>
</html>
字符串返回位置
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// indexOf('要查找的字符,[起始位置]')
var str = '花开堪折直须折,莫待无花空折枝';
console.log(str.indexOf('花')); //0
console.log(str.indexOf('花', 3)); //11 从索引号 3 的位置开始往后查找
console.log(str.indexOf('莫')); //8
</script>
</body>
</html>
根据位置返回字符
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// 1.charAt(index) 根据位置返回字符
var str = 'andy';
console.log(str.charAt(3)); //y
// 遍历所有的字符
// for (var i = 0; i <= str.length; i++) {
// 多加了 = 多
for (var i = 0; i < str.length; i++) {
console.log(str.charAt(i)); //andy
}
// 2.charCodeAt(index) 返回相应的索引号的字符ASCII 目的:判断用户按下哪个键
console.log(str.charCodeAt(0)); //97
// 3.str[index] H5新增 指定位置处字符
console.log(str[0]); //a
</script>
</body>
</html>
统计出现最多的字符和次数
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// 有一个对象 判断是否有该属性 对象['属性名']
var o = {
age: 18
}
if (o['age']) {
console.log('里面包含');
} else {
console.log('没有包含');
}
if (o['sex']) {
console.log('里面包含');
} else {
console.log('没有包含');
}
// 判断一个字符串'abcoefoxyozzopp'中出现次数最多的字符,并统计其次数。
// o.a = 1
// o.b = 1
// o.c = 1
// o.o = 4
// 1.核心算法:利用charAt()遍历这个字符串
// 2.把每个字符都存储给对象,如果对象没有该属性,就为1,如果存在了就+1
// 3.遍历对象,得到最大值和该字符
var str = 'abcoefoxyozzopp';
var o = {};
for (var i = 0; i < str.length; i++) {
var chars = str.charAt(i); //chars 是字符串的每一个字符
if (o[chars]) { //o[chars] 得到的是属性值
o[chars]++;
} else {
o[chars] = 1;
}
}
console.log(o);
//2.遍历对象
var max = 0;
var ch = '';
for (var k in o) {
// k 得到属性名
// o[k] 得到属性值
if (o[k] > max) {
max = o[k];
ch = k;
}
}
console.log(max);
console.log('最多的字符是:' + ch);
</script>
</body>
</html>
字符串操作方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// 1.concat('str1','str2',...)
var str = 'andy';
console.log(str.concat('red')); //andyred
// 2.substr('截取的起始位置','截取几个字符') sunbstr(start,length)
var str1 = '花开堪折直须折';
console.log(str1.substr(2, 2)); //堪折 第一个 2 是索引号 第二个 2 是去几个字符
// 3.替换字符 replace('被替换的字符','替换为的字符') 只会替换第一个字符
var str2 = 'andy';
console.log(str2.replace('a', 'b')); //bndy
var str2 = 'andyandy';
console.log(str2.replace('a', 'b')); //bndyandy 只会替换第一个字符
// 有一个字符串 'abcoefoxyozzopp' 要求把里面的所有的 o 换成 *
var str3 = 'abcoefoxyozzopp';
while (str3.indexOf('o') !== -1) {
str3 = str3.replace('o', '*');
}
console.log(str3); //abc*ef*xy*zz*pp
// 4.字符转换为数组 split('分隔符') 与join相反,join把数组转换成字符串
var str4 = 'red,green,pink,blue';
console.log(str4.split(',')); //(4) ['red', 'green', 'pink', 'blue']
var str5 = 'red&green&pink&blue';
console.log(str5.split('&')); //(4) ['red', 'green', 'pink', 'blue']
// 5.toUpperCase() 转换成大写
var str6 = 'red';
console.log(str6.toUpperCase());
// 6.toLowerCase() 转换成小写
var str7 = 'GREEN';
console.log(str7.toLowerCase());
</script>
</body>
</html>