字符串
- 有两种形式的字符串:基本类型,对象类型
- 对象类型的字符串封装了一些属性以及方法,而基本类型则没有
- 可以直接用基本类型字符串调用字符串对象封装的属性及方法,无须手动转换
var str = 'hello world'
console.log(typeof str) //string
var str1 = new String('hello world')
console.log(typeof str1) // object
字符串的长度
- 字符串中的length是只读属性,不可更改
- 按照各国标注字符来计算长度
字符串的常用方法
1.charAt(index)
- 功能:获取对应下标处的字符
- 参数:下标
- 返回值:获取到的字符,没有对应下标则返回空字符串
var str = 'I am a student'
console.log(str.charAt(3)) // m
console.log(str.charAt(30)) // ""
console.log(typeof str.charAt(30)) // string
2.charCodeAt(index)
- 功能:获取对应下标处的字符编码
- 参数:下标
- 返回值:获取到的字符编码(0-65535),没有对应下标则返回NaN
var str = 'I am a student'
console.log(str.charAt(3)) // m
console.log(str.charAt(30)) // ""
console.log(typeof str.charAt(30)) // string
3.String.fromCharCode(ASCII码)
- 功能:获取ASCII码对应的字符
- 参数:ASCII码
- 返回值:对应的字符
var charStr = String.fromCharCode(117)
console.log(charStr)
4.toLowerCase(),toUpperCase()
- 功能:字符串的大小写转换
- 返回值:转换后的字符串
- 注意:不会改变原字符串
var str = 'Hello'
console.log(str.toUpperCase()) // HELLO
console.log(str) // Hello
console.log(str.toLowerCase()) // hello
console.log(str) // Hello
5.==, ===判断相等
- ==:只比较值相等,不对类型进行比较
- ===:要求值和类型均相等
console.log(1 == "1") //true
console.log(1 == true) // true
console.log(1 === "1") //false
console.log(1 === true) //false
6.localeCompare()
-
字符串比较大小
-
规则:两个字符串从下标为0的字符开始比较,如果谁的ASCII码值大,那么谁大,如果相等继续比较后面的字符,当两个字符不相等时停止比较,此时谁的ASCII码值大谁就大
-
返回值:
- 1:前面字符串大于后面的字符串
- -1:前面的字符串小于后面的字符串
- 0:前面的字符串等于后面的字符串
var str1 = "abcd"
var str2 = "abdd"
var result = str1.localeCompare(srt2)
if(result > 0) {
console.log(str1 + ">" + str2)
} else if (result < 0) {
console.log(str1 + "<" + str2) // abcd < abdd
} else {
console.log(str1 + "==" + str2)
}
7.indexOf(searchValue,fromIndex)
-
功能:从左至右查找第一次出现的字符串
-
参数:
- searchValue:要查找的字符串
- fromIndex:可选参数:表示从指定下标开始往后查找
-
返回值:子串第一次出现的下标,如果没有子字符串,则返回-1
8.lastIndexOf(searchValue,fromIndex)
-
功能:从右至左查找第一次出现的字符串
-
参数:
- searchValue:要查找的字符串
- fromIndex:可选参数:表示从指定下标开始往后查找
-
返回值:子串第一次出现的下标,如果没有子字符串,则返回-1
9.replace(oldStr, newStr)
- 字符串替换
- 默认只能替换第一次出现的oldStr
- 通过正则表达式可以实现全部替换
var str = "Tom is a good student! Tom is a nice man"
var newStr = str.replace("Tom", "Jerry")
console.log(str) //Tom is a good student! Tom is a nice man
console.log(newStr) //Jerry is a good student! Tom is a nice man
newStr = str.replace(/Tom/g, "Jerry")
console.log(str) //Tom is a good student! Tom is a nice man
console.log(newStr) //Jerry is a good student! Jerry is a nice man
10.substring(start,stop)
-
定义:substring()方法用于提取字符串中介于两个指定下标之间的字符
-
参数:
- start:必需。一个非负的整数,要提取的子串的第一个字符在原字符中的位置
- end:可选。一个非负的整数,要提取的子串的最后一个字符在原字符中的位置+1,如果省略该参数,那么返回的子串会一直截取到原字符串的末尾
-
返回值:一个新的字符串,该字符串值包含stringObject的一个子字符串,其内容时从start处到stop-1处所有字符,其长度等于stop-start.
-
注意:
- substring()方法返回的子串包括start处的字符,但不包括stop处的字符
- 如果参数start和stop相等,那么该方法返回的就是一个空串(即长度为0的字符串)
- 如果start比stop大,那么该方法在提取子串之前会先交换这两个参数
- 不会改变原字符串
var str = "Tom is a good student! Tom is a nice man"
console.log(str.substring(0, 3)) //Tom
console.log(str.substring(3, 0)) //Tom
console.log(str.substring(3)) //is a good student! Tom is a nice man
console.log(str.substring(1, 1)) //""
11.substr(start,length)
-
定义:substr()方法用于在字符串中抽取从start下标开始的指定数目的字符。
-
参数:
- start:必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1指字符串中最后一个字符,-2值倒数第二个字符,类推。
- length:可选。子串中的字符数,必须是数值,如果省略了该参数,那么返回从原字符串的开始位置到结尾的子串。
-
返回值:一个新的字符串
-
注意:不会改变原字符串
var str = "Tom is a good student! Tom is a nice man!"
console.log(str.substr(9, 4)) //good
console.log(str.substr(-9, 4)) //nice
console.log(str.substr(3)) //is a good student! Tom is a nice man
12.stringObject.split(separator,howmany)
-
定义:split()方法用于把一个字符串分割成字符串数组
-
参数:
- separator:必需。字符串或者正则表达式,从该参数指定的地方分割stringObject
- howmany:可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
-
返回值:一个字符串数组
-
注意:如果把空字符串(“”)用作separator,那么stringObject中的每个字符之间都会被分割
var str = "I am a student"
console.log(str.split(" ")) // ["I","am","a","student"]
console.log(str.split(" ", 2)) // ["I","am"]
13.concat()
- 用于将一个或多个字符串拼接起来
14.trim()
- 这个方法创建一个字符串的副本,删除前缀以及后缀的所有空格,然后返回结果
var str = " hello "
console.log(str.trim()) //"hello"
console.log(str) //" hello "
math对象
1.四舍五入
- Math.round(4.5)
2.向上取整
- Math.ceil(3.1)
3.向下取整
- Math.floor(3.9)
4.取最大值
- Math.max(3,4,6,76,8,89,32)
5.取最小值
- Math.min(3,4,6,76,8,89,32)
6.取绝对值
- Math.abs(-10)
7.x的y次方
- Math.pow(x,y)
8.开平方
- Math.sqrt(25)
9.生成一个0-1之间的随机数
- Math.random()
// 四舍五入
console.log(Math.round(4.5)) // 5
// 向上取整
console.log(Math.ceil(3.1)) // 4
// 向下取整
console.log(Math.floor(3.9)) // 3
// 取最大值
console.log(Math.max(3,4,6,76,8,89,32)) //89
// 取最小值
console.log(Math.min(3,4,6,76,8,89,32)) // 3
// 取绝对值
console.log(Math.abs(-10)) // 10
// x的y次方
console.log(Math.pow(2,3)) // 8
// 开平方
console.log(Math.sqrt(25)) // 5
// 生成一个0-1之间的随机数
console.log(Math.random()) //0-1之间的随机数