2022-01-11 day07 字符串+Math

一. 什么是字符串?

  • 由一组单引号或双引号组成的字符, 就是字符串

二. 字符串的创建方式

  1. 字面量表示
var str = 'hello';
var str2 = "hi";
console.log(typeof(str)); // string

2.构造函数创建字符串

var str = new String('hello');
console.log(typeof(str)); // object

3.类似于强制转换创建字符串

var str = String('hello');
console.log(typeof(str)); // string

三. 字符串的恒定性

  • 字符串的任何方法不会改变原字符串
var str = 'abc123';
console.log(str.substr(1, 3)); // bc1
console.log(str); // abc123

四. 字符串的length属性

  • 字符串的length属性可用于下标取值
  • 字符串的下标从0开始
  • 字符串的length不能被修改
  • 可用for或for...in遍历字符串
var str = 'how do you do ?'
console.log(str.length); // 15
str.length = 10;
console.log(str.length); // 15

五. 字符串的方法

1. str.charAt(index)
  • 获取字符串中下标为index的值
  • 返回该值
var str = 'abc1';
console.log(str.charAt(1)); // b
2. str.charCodeAt(index)
  • 获取字符串中下标为index的值
  • 返回该值的ASCII码
var str = 'abc1';
console.log(str.charCodeAt(1)); // 98
3. String.fromCharCode(ASCII码)
  • 将传入的ASCII码转换为对应字符
  • 是String的静态方法, 所以使用String调用
  • 可以同时传入多个参数
var str = String.fromCharCode(98, 97);
console.log(str); // ba
4. str.concat(string) 和 +
  • str.concat 和 +: 字符串的拼接
  • str.concat: 字符串的浅拷贝
// (1)字符串的拼接
var str = 'hello';
console.log(str.concat(" world!")); // hello world!
console.log(str + " world!"); // hello world!
// (2)字符串的浅拷贝
var str = 'hello';
var str1 = ''.concat(str); 
console.log(str1); // hello
5. str.indexOf(string, start)
  • 字符串查找方法
  • string: 要查找的字符串
  • start: 查找的开始位置, 默认是0
  • 省略start, 默认查找字符串第一次出现的位置
  • 找到返回对应下标
  • 找不到返回 -1
var str = 'abc1abcef2';
console.log(str.indexOf('ab')); // 0
console.log(str.indexOf('ab', 3)); // 4
console.log(str.indexOf('i')); // -1
6. str.lastIndexOf(string)
  • 从字符串末尾开始查找字符串
  • 找到返回对应下标
  • 找不到返回 -1
var str = 'abc1abcef2';
console.log(str.lastIndexOf('ab')); // 4
console.log(str.lastIndexOf('i')); // -1
7. str.search(string)
  • 查询字符串
  • string: 字符串或正则表达式
  • 找到了返回下标, 找不到返回 -1
  • 返回字符串第一次出现的位置
  • 支持正则
var str = 'a01abc1abcef2';
console.log(str.search('abc')); // 3
console.log(str.search('i')); // -1
console.log(str.search(/abc/gi)); // 3
8. str.math(string)
  • 匹配字符串
  • string: 字符串或正则表达式
  • 匹配到了返回一个新数组, 否则返回 null
  • 支持正则, 可以结合正则进行全局匹配
var str = 'a0abc1abcef2ABC';
console.log(str.match('abc')); // ['abc', index: 2, ...]
console.log(str.match('123')); // null
console.log(str.match(/abc/gi)); // ['abc', 'abc', 'ABC']
9. str.replace(string, reString)
  • 替换字符串
  • string: 字符串或正则表达式
  • reString: 替换的新内容
  • 默认只能替换一次
  • 支持正则, 结合正则进行全局替换
var str = 'abc1abcef2';
console.log(str.replace('abc', '哈哈哈')); // 哈哈哈1abcef2
console.log(str.replace(/abc/gi, '哈哈哈')); // 哈哈哈1哈哈哈ef2
10. str.split(separator, length)
  • 根据指定字符拆分成数组
  • separator: 字符串或正则表达式
  • [注] 如果separator是空字符串 -> '', 那么会将str中的每一个字符进行分割
  • length:可以指定返回的数组的最大长度, 可以省略
  • 支持正则
var str = '2022-01-11';
console.log(str.split('-')); // ['2022', '01', '11']
console.log(str.split(/-/)); // ['2022', '01', '11']
console.log(str.split('')); // ['2', '0', '2', '2', '-', '0', '1', '-', '1', '1']
console.log(str.split('-', 1)); // ['2022']
11. str.slice(start, end)
  • 截取字符串
  • 截取范围: [start, end)
  • 若只有一个参数, 则表示从这个数截取至字符串的末尾
var str = 'abc1abcef2';
console.log(str.slice(3, 7)); // 1abc
console.log(str.slice(3)); // 1abcef2
12. str.substring(start, end)
  • 截取字符串
  • 截取范围: [start, end)
  • 若只有一个参数, 则表示从这个数截取至字符串的末尾
  • 参数会自动调整, 默认从小到大
var str = 'abc1abcef2';
console.log(str.substring(3, 6)); // 1ab
console.log(str.substring(6, 3)); // 1ab
console.log(str.substring(3)); // 1abcef2
13. str.substr(start, length)
  • 字符串的截取
  • start: 开始截取的下标
  • length: 截取的个数
  • 若不写length, 则从start位置截取至字符串末尾
var str = 'abc1abcef2';
console.log(str.substr(3, 2)); // 1a
console.log(str.substr(6)); // cef2
14. str.toLowerCase()
  • 把字符串转换成小写
 var str = 'ABC1ABCEF2';
console.log(str.toLowerCase()); // abc1abcef2
15. str.toUpperCase()
  • 把字符串转换成大写
var str = 'abc1abcef2';
console.log(str.toUpperCase()); // ABC1ABCEF2
16. str.trim()
  • 去掉字符串前后空格
var str = '   哈哈哈123   ';
console.log(str); //   哈哈哈123
 console.log(str.trim()); //哈哈哈123

六. Math的方法

1. Math.round() 四舍五入
console.log(Math.round(3.5)); // 4
console.log(Math.round(3.4)); // 3
2. Math.random() 随机数
  • 返回 [0, 1) 之间的随机数
console.log(Math.random()); // [0, 1)
console.log(Math.ceil(Math.random() * 10)); // [1, 10]的随机数
3. Math.max() 返回较大的数
console.log(Math.max(1, 2)); // 2
console.log(Math.max(1, 2, 3)); // 3
4. Math.min() 返回较小的数
console.log(Math.min(1, 2)); // 1
console.log(Math.min(-2, 3, 4)); // -2
5. Math.abs() 绝对值
console.log(Math.abs(1)); // 1
console.log(Math.abs(-1)); // 1
6. Math.ceil() 向上取整
console.log(Math.ceil(1.1)); // 2
console.log(Math.ceil(1.9)); // 2
7. Math.floor() 向下取整
console.log(Math.floor(1.1)); // 1
console.log(Math.floor(1.9)); // 1
8. **与Math.pow() 求次方
console.log(Math.pow(2, 3)); // 8
console.log(2 ** 3); // 8
9. Math.sqrt() 开平方
console.log(Math.sqrt(4)); // 2
console.log(Math.sqrt(9)); // 3
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容