Math對象
Math是 JavaScript 的原生對象迄沫,提供各種數(shù)學(xué)功能簸搞。該對象不是構(gòu)造函數(shù)奸攻,不能生成實例鸣奔,所有的屬性和方法都必須在Math對象上調(diào)用。
常用方法:
Math.ceil():向上取整
Math.floor():向下取整
Math.round():四舍五入
Math.abs():取絕對值
Math.random():默認(rèn)是取從[0,1)之間的隨機(jī)數(shù)
Math.max(a,b):取最大值 里面?zhèn)€數(shù)不限 非數(shù)字字符串識別不了
Math.min(a,b):取最大值 里面?zhèn)€數(shù)不限 非數(shù)字字符串識別不了
Math.sqrt(x):x的平方根
Math.pow(x,y):x的y次冪
字符串方法
- 字符串操作
截纫鬯:
substring()與slice()(數(shù)組中也有此方法)
參數(shù):指定子字符串的開始位置糊探,子字符串到哪里結(jié)束
作用:創(chuàng)建新的子字符串(可以理解為字符串截取)
substr(start,length))
參數(shù):可在字符串中抽取從 start 下標(biāo)開始的指定數(shù)目的字符扎狱。
作用:創(chuàng)建新的子字符串(可以理解為字符串截炔嗟健)
連接:
concat()(數(shù)組中也有該方法)
參數(shù):一個或多個字符串勃教,string.concat(string1, string2, ..., stringX)
將一個會多個字符串拼接起來淤击,當(dāng)然更常用的是使用 “+” 進(jìn)行拼接
重復(fù):
repeat()(ES6新增)
參數(shù):數(shù)字(表示重復(fù)的次數(shù))
作用:將原字符串重復(fù)n次
如果傳入負(fù)數(shù),則報錯故源,傳入小數(shù)和NaN等同于傳入0
- 字符串位置
indexOf()和lastIndexOf()(數(shù)組中也有該方法)
參數(shù):要搜索的子字符串污抬,開始搜索的位置(可選)
搜索給定的子字符串,如果找到則返回位置,否則返回-1
indexOf()返回 String 對象內(nèi)第一次出現(xiàn)子字符串的字符位置印机。
lastIndexOf()返回 String 對象中子字符串最后出現(xiàn)的位置矢腻。
ES6新增includes()、startsWith()射赛、endsWith()
- includes():返回布爾值多柑,表示是否找到了參數(shù)字符串
- startsWith():返回布爾值,表示參數(shù)字符串是否在源字符串的頭部
- endsWith():返回布爾值楣责,表示參數(shù)字符串是否在源字符串的尾部
這三個方法的參數(shù)與indexOf()竣灌,lastIndexOf()一樣
使用第二個參數(shù)n時,endsWith 的行為與其他兩個方法有所不同秆麸,它針對的是前n個字符初嘹,而其他兩個方法都是針對從第n個位置(不包含n)直到字符串結(jié)束。
3沮趣、 字符串大小寫轉(zhuǎn)換
ECMAScript中涉及字符串大小寫轉(zhuǎn)換的方法有4個:toLowerCase()屯烦、toLocaleLowerCase()、toUpperCase()和toLocaleUpperCase()房铭。
其中驻龟,toLowerCase()和toUpperCase()是兩個經(jīng)典的方法。而toLocaleLowerCase()和toLocaleUpperCase()方法則是針對特定地區(qū)的實現(xiàn)育叁。
對有些地區(qū)來說迅脐,針對地區(qū)的方法與其通用方法得到的結(jié)果相同,但少數(shù)語言(如土耳其語言)會為Unicode大小寫轉(zhuǎn)換應(yīng)用特殊的規(guī)則豪嗽,這時候就必須使用針對地區(qū)的方法來保證實現(xiàn)正確的轉(zhuǎn)換谴蔑。
4、字符串模式匹配
match()
參數(shù):一個正則表達(dá)式或RegExp對象
返回一個數(shù)組龟梦。在字符串上調(diào)用這個方法本質(zhì)上與調(diào)用RegExp的exec()方法相同隐锭。
search()
參數(shù):一個正則表達(dá)式或RegExp對象
返回字符串中第一個匹配項的索引,如果沒有找到计贰,則返回-1
replace()
參數(shù):一個RegExp對象或者一個字符串(這個字符串不會被轉(zhuǎn)換成正則表達(dá)式)钦睡,一個字符串或一個函數(shù)
利用replace()進(jìn)行替換的時候,如果傳入的是字符串躁倒,則只會替換第一個子字符串荞怒,要想替換所有的子字符串,則需要傳入一個正則表達(dá)式秧秉,而且要指定全局(g)標(biāo)志
split()
參數(shù):用于分隔字符串的分隔符褐桌,數(shù)字(可選,用于指定數(shù)組的大邢笥)
作用:基于指定的分隔符將一個字符串分割成多個子字符串荧嵌,并將結(jié)果放在一個數(shù)組中
應(yīng)用例子:
一個應(yīng)用的字符串呛踊、數(shù)組和Math方法的例子,將ip地址/網(wǎng)絡(luò)id位數(shù)(eg. 192.168.84.20/24) 中的網(wǎng)絡(luò)id轉(zhuǎn)換為子網(wǎng)掩碼(255.255.255.0)
網(wǎng)絡(luò)id位數(shù)轉(zhuǎn)換為子網(wǎng)掩碼的算法
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