所有字符串的方法返回的都是新的字符串 不会修改原来的字符串 JavaScript中字符串是不可变的
1.字符串的length属性
// 1.字符串的length属性 返回字符串的长度
let str = 'lvyang';
console.log(str.length); // 6
2.indexOf方法
/** 2.indexOf方法
* 返回字符串中文本首次出现的索引
* 如果未找到返回-1
* 接收第二个参数开始查找的位置
* */
let str = 'lvyang';
console.log(str.indexOf('v')); // 1
console.log(str.indexOf('abc')); // -1
console.log(str.indexOf('v', 2)); // -1
3.lastIndexOf方法
/** 3.lastIndexOf方法
* 返回字符串中文本首次出现的索引
* 从后面往前面查找
* 如果未找到返回-1
* 接收第二个参数开始查找的位置
* 注意索引是从前面开始算的
* */
let str2 = 'lvyang';
console.log(str2.lastIndexOf('v')); // 1
console.log(str2.lastIndexOf('abc')); // -1
// 从索引3往左查找 发现自己就是 返回索引3
console.log(str2.lastIndexOf('a', 3)); // 3
4.search方法
/**
* 4.search和indexOf用法一样
* 区别:
* 1.不可以传第二个参数
* 2.不支持正则表达式
* 所以为什么不用indexOf呢
* */
let str = 'lvyang'
console.log(str.search('v')); // 1
console.log(str.search('abc')); // -1
5.slice方法
/**
* 5.slice方法
* 截取字符串的方法
* 第一个参数开始截取的位置
* 第二个参数截取结束的位置
* 如果参数为负数那就从后面开始计数 后面计数从1开始算
* 不传第二个参数截取剩余部分
* */
let str = 'lvyang'
console.log(str.slice(0)); // lvyang
console.log(str.slice(2)); // vyang
console.log(str.slice(1, 2)); // v
console.log(str.slice(-1)); // g
6.substring方法
/**
* 6.substring方法
* 类似slice
* 区别:不接收负数的索引值为参数
* */
let str = 'lvyang'
console.log(str.substring(0)); // lvyang
console.log(str.substring(2)); // vyang
console.log(str.substring(1, 2)); // v
// 如果写负数直接相当于0
console.log(str.substring(-3)); // lvyang
7.substr方法
/**
* 7.substr方法
* 类似slice
* 区别:第二个参数规定截取的字符串长度
* */
let str = 'lvyang'
console.log(str.substr(0)); // lvyang
console.log(str.substr(2)); // vyang
// 规定截取出来的长度为2所以截取的是vy slice截取是到哪一个索引
console.log(str.substr(1, 2)); // vy
console.log(str.substr(-1)); // g
8.replace方法
/**
* 8.replace方法
* 替换字符串
* 返回的新字符串 因为js字符串不可改变
* 注意:
* 1.这个方法大小写敏感
* 2.好消息是可以写正则表达式
* */
let str = '祖安钢琴家'
// 钢琴家换成 ***
console.log(str.replace('钢琴家', '***')); // 祖安***
9.toUpperCase方法
/**
* 9.toUpperCase方法
* 把字符串转为大写
* */
// let str = 'lvyang';
// console.log(str.toUpperCase()); // LVYANG
10.toLocaleLowerCase方法
/**
* 10.toLocaleLowerCase方法
* 把字符串转为小写
* */
let str = 'LVYANG';
console.log(str.toLocaleLowerCase()); // lvyang
11. concat方法
/**
* 11.concat方法
* 连接两个字符串等价与+运算符
* */
let str1 = 'Hello '
let str2 = 'World'
console.log(str1.concat(str2)); // Hello World
12.trim方法
/** 12.trim方法
* 去掉字符串左右两边的空格 中间的不去哦
* 正则加replace也是可以实现的
* */
// let str = ' lvyang ';
// console.log(str.trim()); // lvyang
13.charAt方法
/**
* 13.charAt方法
* 返回字符串指定下标位置的字符串
* */
let str = 'lvyang';
console.log(str.charAt(1)); // v
14.charCodeAt方法
/**
* 14.charCodeAt方法
* 返回字符串中指定索引的unicode编码
* 注意:
* 1.编码大于255说明字节长度为2 也就是中文字符
* */
let str1 = 'a';
console.log(str1.charCodeAt(0)); // 97
let str2 = '洋';
console.log(str2.charCodeAt(0)); // 27915 这么大...
15.split方法
/**
* 15.split方法
* 将字符串以一个分割符分割成数组
* */
let str1 = 'lvyang';
console.log(str1.split()); // ["lvyang"]
let str2 = 'Hello world';
// 以空格进行分割
console.log(str2.split(' ')); // ["Hello", "world"]