字符串
- 有兩種形式的字符串:基本類型,對象類型
- 對象類型的字符串封裝了一些屬性以及方法,而基本類型則沒有
- 可以直接用基本類型字符串調用字符串對象封裝的屬性及方法,無須手動轉換
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之間的隨機數