Math对象
Math是 JavaScript 的原生对象,提供各种数学功能。该对象不是构造函数,不能生成实例,所有的属性和方法都必须在Math对象上调用。
常用方法:
Math.ceil():向上取整
Math.floor():向下取整
Math.round():四舍五入
Math.abs():取绝对值
Math.random():默认是取从[0,1)之间的随机数
Math.max(a,b):取最大值 里面个数不限 非数字字符串识别不了
Math.min(a,b):取最大值 里面个数不限 非数字字符串识别不了
Math.sqrt(x):x的平方根
Math.pow(x,y):x的y次幂
字符串方法
- 字符串操作
截取:
substring()与slice()(数组中也有此方法)
参数:指定子字符串的开始位置,子字符串到哪里结束
作用:创建新的子字符串(可以理解为字符串截取)
substr(start,length))
参数:可在字符串中抽取从 start 下标开始的指定数目的字符。
作用:创建新的子字符串(可以理解为字符串截取)
连接:
concat()(数组中也有该方法)
参数:一个或多个字符串,string.concat(string1, string2, ..., stringX)
将一个会多个字符串拼接起来,当然更常用的是使用 “+” 进行拼接
重复:
repeat()(ES6新增)
参数:数字(表示重复的次数)
作用:将原字符串重复n次
如果传入负数,则报错,传入小数和NaN等同于传入0
- 字符串位置
indexOf()和lastIndexOf()(数组中也有该方法)
参数:要搜索的子字符串,开始搜索的位置(可选)
搜索给定的子字符串,如果找到则返回位置,否则返回-1
indexOf()返回 String 对象内第一次出现子字符串的字符位置。
lastIndexOf()返回 String 对象中子字符串最后出现的位置。
ES6新增includes()、startsWith()、endsWith()
- includes():返回布尔值,表示是否找到了参数字符串
- startsWith():返回布尔值,表示参数字符串是否在源字符串的头部
- endsWith():返回布尔值,表示参数字符串是否在源字符串的尾部
这三个方法的参数与indexOf(),lastIndexOf()一样
使用第二个参数n时,endsWith 的行为与其他两个方法有所不同,它针对的是前n个字符,而其他两个方法都是针对从第n个位置(不包含n)直到字符串结束。
3、 字符串大小写转换
ECMAScript中涉及字符串大小写转换的方法有4个:toLowerCase()、toLocaleLowerCase()、toUpperCase()和toLocaleUpperCase()。
其中,toLowerCase()和toUpperCase()是两个经典的方法。而toLocaleLowerCase()和toLocaleUpperCase()方法则是针对特定地区的实现。
对有些地区来说,针对地区的方法与其通用方法得到的结果相同,但少数语言(如土耳其语言)会为Unicode大小写转换应用特殊的规则,这时候就必须使用针对地区的方法来保证实现正确的转换。
4、字符串模式匹配
match()
参数:一个正则表达式或RegExp对象
返回一个数组。在字符串上调用这个方法本质上与调用RegExp的exec()方法相同。
search()
参数:一个正则表达式或RegExp对象
返回字符串中第一个匹配项的索引,如果没有找到,则返回-1
replace()
参数:一个RegExp对象或者一个字符串(这个字符串不会被转换成正则表达式),一个字符串或一个函数
利用replace()进行替换的时候,如果传入的是字符串,则只会替换第一个子字符串,要想替换所有的子字符串,则需要传入一个正则表达式,而且要指定全局(g)标志
split()
参数:用于分隔字符串的分隔符,数字(可选,用于指定数组的大小)
作用:基于指定的分隔符将一个字符串分割成多个子字符串,并将结果放在一个数组中
应用例子:
一个应用的字符串、数组和Math方法的例子,将ip地址/网络id位数(eg. 192.168.84.20/24) 中的网络id转换为子网掩码(255.255.255.0)
网络id位数转换为子网掩码的算法
24 ---> 11111111 11111111 11111111 00000000 ---> 255.255.255.0
21 ---> 11111111 11111111 11111000 00000000 ---> 255.255.248.0
32 ---> 11111111 11111111 11111111 11111111 ---> 255.255.255.255