字符串基本知识:
- String类型用于表示由笭或多个16位Unicode字符组成的字符序列,即字符串。字符串可以由双引号(")或单引号( ’ )表示
- 字符串中的每一个字符都有一个自己对应位置的索引,也有类似数组一样的length代表自己的长度
字符串常用方法
- ECMAScript中的字符串是不可变的。也就是说,字符串一旦创建,它们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量
- 字符串是基本数据类型,字符串的每一次操作都是对值直接进行操作,而数组是基于空间地址来操作的,所以不存在原有字符串是否改变这一说,原有字符串肯定都是不变的
charAt / charCodeAt
- 作用:charAt根据索引获取指定位置的字符,
charCodeAt
不仅仅获取字符,它获取的是字符对应的Unicode编码值(ASCII码值) ,另外String.fromCharCode
返回的是编码对应的字符 - 参数:索引
- 返回值:字符或者对应的编码
和直接操作索引方式获取的区别:
- 当索引不存在的时候,
str[xxx]
获取的结果是undefined,运行的机制和对象是一样的而str.charAt(xxx)
获取的是空字符串
indexOf / lastIndexOf
(与数组的该方法类似)
- 作用:基于这两个方法,可以获取字符在字符串中第一次或者最后一次出现位置的索引,有这个字符,返回大于等于零的索引,不包含这个字符,返回的结果是-1。所以可以基于这两个方法,验证当前字符串中是否包含某个字符
- 参数:待查找的字符
- 返回值:-1或大于等于零的索引值
slice
- 作用:
str.slice(n,m)
从索引n开始找到索引为m处(不包含m) - 参数:索引
- 返回值:把得到的字符当做新字符串返回
与数组中的slice操作是一样的:
- 不写m是查找字符串的末尾
- n/m都不写是字符串的克隆
- 支持附属索引:用字符串总长度+负数索引做运算
substring
- 作用:和slice语法一模一样,唯一的区别在于:slice支持负数索引, 而substring不支持负数索引
substr
- 作用:字符串截取的方法
- 参数:
str.substr(n,m)
从索引n开始截取m个字符 - 说明:和
substring
一样,第二个参数不传,截取到末尾,但是它支持第一个索引为负数,负数也是总长度+负数索引 - 返回值:把得到的字符当做新字符串返回
toUpperCase / toLowerCase
- 作用:实现字母的大小写转换,
toUpperCase
小写转大写,toLowerCase
大写转小写
split
- 作用:和数组中的
join
相对应,数组中的join
是把数组们一项按照指定的连接符变为字符串,而split
是把字符串按照指定的分隔符,拆分成数组中每一项 - 返回值:拆分后的新数组
replace
- 作用:替换字符串中的原有字符|
- 参数:原有字符,要替换的新字符
- 返回值:替换后的字符串
var str = 'my name is xxx and xxx' ;
str = str.replace ('xxx','liming');
=>在不使用正则的情况下,没执行一次replace只能替换一个“xxx”
=>"my name is liming and xxx"
=>使用正则:
str=str.replace(/xxx/g,'liming')
=> "my name is liming and liming"
JS中的数学函数Math
1. 概念
Math称为数学函数,但是它是属于对象的
typeof Math =>"object"
- 之所以叫做数学函数,是因为Math这个对象中提供了很多操作数字的方法
2. Math常用方法
abs
:取绝对值
ceil / floor
:向上或者向下取整
round
:四舍五入
sqrt
:开平方
pow(n,m)
:取幂(N的M次方)
max/min
:获取最大最小值(在多个数中)
PI
:获取圆周率
random
:获取0~1之间的随机小数
规律:
Math.round(Math.random()*(m-n)+n)
:获取n-m之间的随机整数