string類型
String 類型用于表示由零或多個(gè) 16位 Unicode字符組成的字符序列,即字符串。字符串可以由雙 引號(hào)(")或單引號(hào)(')表示,因此下面兩種字符串的寫法都是有效的:
var firstName = "始皇";
var lastName = '秦';
字符字面量
string類型中的轉(zhuǎn)義序列,即非打印字符:
| 字面量 | 含義 |
|---|---|
| \n | 換行 |
| \t | 制表 |
| \b | 空格 |
| \r | 回車 |
| \f | 走紙換頁(yè),針對(duì)打印機(jī) |
| \r | 回車鍵(\u000D) |
| \t | 制表符(\u0009) |
| \v | 垂直制表符(\u000B) |
\\ |
斜杠 |
| ' | 單引號(hào)'He said, ' hey.' ' |
| '' | 雙引號(hào)"He said, "hey."" |
| \xnn | 用十六進(jìn)制nn表示一個(gè)字符(n為0-F),eg:\x41表示A |
| \unnnn | 用十六進(jìn)制nnnn表示一個(gè)Unicode字符(n為0-F),eg: \u03e3表示希臘字符Σ |
轉(zhuǎn)換為字符串
toString()
當(dāng)toString傳參時(shí),此參數(shù)表示輸出數(shù)值的基數(shù),通過(guò)這個(gè)基數(shù)輸出二進(jìn)制,八進(jìn)制,十六進(jìn)制:
var num = 10; alert(num.toString()); // "10"
alert(num.toString(2)); // "1010"
alert(num.toString(8)); // "12"
alert(num.toString(10)); // "10"
alert(num.toString(16)); // "a"
null和undefined值沒(méi)有tostring()方法,在不確定是否有這兩個(gè)值時(shí),可以使用String(),其轉(zhuǎn)換規(guī)則為:
- 如果值有toString()方法,則調(diào)用該方法;
- 如果值時(shí)null,返回"null";
- 如果值是undefined,返回"undefined";
常用方法
| 分類 | 名稱 | 描述 | 舉例 |
|---|---|---|---|
| 字符方法 | 返回某位置字符charAt() | 返回指定位置的字符,返回的字符是長(zhǎng)度為 1 的字符串。stringObject.charAt(index)如果參數(shù) index 不在 0 與 string.length-1 之間,該方法將返回一個(gè)空字符串。注意:一個(gè)空格也算一個(gè)字符。 |
var mystr="Hello world!"document.write(mystr.charAt(2));//l |
| 字符方法 | 返回某位置的字符編碼charCodeAt() | stringObject.charCodeAt(index) |
var mystr="Hello world!"alert(mystr.charAt(1));//101--e的字符編碼 |
| 字符方法 | 接收字符編碼,返回字符串fromCharCode() | 接收一或 多個(gè)字符編碼,然后將它們轉(zhuǎn)換成一個(gè)字符串。與charCodeAt() 執(zhí)行的是相反的操作 | alert(String.fromCharCode(104, 101, 108, 108, 111)); //"hello" |
| 字符串操作方法 | 拼接字符串concat() | 將一或多個(gè)字符串拼接并返回拼接得到的新字符串 |
var stringValue = "hello ";var result = stringValue.concat("world");
|
| 字符串位置方法 | 查找位置indexOf() | 返回指定的字符串首次出現(xiàn)的位置stringObject.indexOf(substring, startpos)從stringObject的startpos位置開始查找substring,如果沒(méi)有此參數(shù)將從stringObject的開始位置查找。 ①indexOf() 方法區(qū)分大小寫。 ②如果要檢索的字符串值沒(méi)有出現(xiàn),則該方法返回 -1。 |
var str="I love JavaScript!"document.write(str.indexOf("I") + "<br />");//0document.write(str.indexOf("v",8));//9 |
| 字符串位置方法 | 查找位置lastIndexOf() | 而 lastIndexOf()方法 是從字符串的末尾向前搜索子字符串 |
var stringValue = "hello world";alert(stringValue.lastIndexOf("o")); //7
|
| 大小寫轉(zhuǎn)換方法 | 大寫toUpperCase() | String 對(duì)象的 toUpperCase() 方法:將字符串小寫字母轉(zhuǎn)換為大寫 |
var mystr="Hello world!";var mynum=mystr.toUpperCase();
|
| 大小寫轉(zhuǎn)換方法 | 小寫toLowerCase() | String 對(duì)象的 toLowerCase()方法:將字符串所有大寫字母都變成小寫的字符串 |
var message="Hello world!";var mychar=message.toLowerCase()
|
| 模式匹配方式 | match() | 與exec()方法相同。match()方法只接受一個(gè)參數(shù),要么是一個(gè)正則表達(dá)式,要么是一個(gè) RegExp 對(duì)象 |
var text = "cat, bat, sat, fat";var pattern = /.at/; //與 pattern.exec(text)相同var matches = text.match(pattern); alert(matches[0]); //"cat"
|
| 模式匹配方式 | search() | 參數(shù)與match相同,:由字符串或 RegExp 對(duì)象指定的一個(gè)正則表達(dá)式。search()方法返回字符串中第一個(gè)匹配項(xiàng)的索引;如果沒(méi) 有找到匹配項(xiàng),則返回-1。而且,search()方法始終是從字符串開頭向后查找模式 |
var text = "cat, bat, sat, fat";var pos = text.search(/at/);alert(pos); //1
|
| 替換子字符串 | replace() | 第一個(gè)參數(shù)可以是一個(gè)RegExp對(duì)象或一個(gè)字符串,第二個(gè)參數(shù)可以是一個(gè)字符串或一個(gè)函數(shù),當(dāng)?shù)谝粋€(gè)參數(shù)是字符串,那么只會(huì)替換第一個(gè)子字符串。要想替 換所有子字符串,唯一的辦法就是提供一個(gè)正則表達(dá)式,而且要指定全局(g)標(biāo)志 |
var text = "cat, bat, sat, fat";var result = text.replace("at", "ond");alert(result); //"cond, bat, sat, fat"result = text.replace(/at/g, "ond");alert(result); //"cond, bond, sond, fond"
|
| 比較字符串 | localeCompare() | 比較兩個(gè)字符串-- ① 如果字符串在字母表中應(yīng)該排在字符串參數(shù)之前,則返回一個(gè)負(fù)數(shù)(大多數(shù)情況下是-1) ②如果字符串等于字符串參數(shù),則返回 0; ③如果字符串在字母表中應(yīng)該排在字符串參數(shù)之后,則返回一個(gè)正數(shù)(大多數(shù)情況下是 1) |
var stringValue = "yellow";alert(stringValue.localeCompare("brick")); //1alert(stringValue.localeCompare("yellow")); //0alert(stringValue.localeCompare("zoo")); //-1
|
| 字符串分割split() | 將字符串分割為字符串?dāng)?shù)組,并返回此數(shù)組。stringObject.split(separator,limit)separator--從該參數(shù)開始切割,如果把空字符串 ("")用作 separator,那么 stringObject 中的每個(gè)字符之間都會(huì)被分割。 |
var mystr = "www.imooc.com";document.write(mystr.split("."));// www,imooc,com document.write(mystr.split(".", 2)+"<br>");//www,imooc |
|
| 提取字符串substring() | 用于提取字符串中介于兩個(gè)指定下標(biāo)之間的字符stringObject.substring(startPos,stopPos)startPos--開始位置,必需項(xiàng) stopPos--結(jié)束位置,可選 |
var mystr="I love JavaScript";document.write(mystr.substring(7));//JavaScriptdocument.write(mystr.substring(2,6));//love |
|
| 提取指定數(shù)目的字符substr() | 從字符串中提取從 startPos位置開始的指定數(shù)目的字符串。stringObject.substr(startPos,length)如果參數(shù)startPos是負(fù)數(shù),從字符串的尾部開始算起的位置。也就是說(shuō),-1 指字符串中最后一個(gè)字符,-2 指倒數(shù)第二個(gè)字符,以此類推。 |
var mystr="I love JavaScript!";document.write(mystr.substr(7));
|
Math對(duì)象:
Math 對(duì)象是一個(gè)固有的對(duì)象,無(wú)需創(chuàng)建它,直接把 Math 作為對(duì)象使用就可以調(diào)用其所有屬性和方法。這是它與Date,String對(duì)象的區(qū)別。
Math 對(duì)象屬性

undefined
Math 對(duì)象方法

undefined
| 方法 | 描述 | 舉例 |
|---|---|---|
| 向上取整ceil() | Math.ceil(x) |
document.write(Math.ceil(0.8))//1document.write(Math.ceil(-5.9))//-5 |
| 向下取整floor() | Math.floor(x) |
document.write(Math.floor(0.8))//0document.write(Math.floor(-5.9))//-6 |
| 四舍五入round() | Math.round(x) |
document.write(Math.round(1.6));//2 |
| 隨機(jī)數(shù)random() | Math.random() | 返回一個(gè)大于或等于 0 但小于 1 的符號(hào)為正的數(shù)字值。要想返回0-10之間的:document.write((Math.random())*10);
|
Array 數(shù)組對(duì)象
數(shù)組定義的方法:
- 定義了一個(gè)空數(shù)組:
var 數(shù)組名= new Array();
- 定義時(shí)指定有n個(gè)空元素的數(shù)組:
var 數(shù)組名 =new Array(n);
3.定義數(shù)組的時(shí)候,直接初始化數(shù)據(jù):
var 數(shù)組名 = [<元素1>, <元素2>, <元素3>...];
我們定義myArray數(shù)組,并賦值,代碼如下:
var myArray = [2, 8, 6];
數(shù)組方法

undefined
| 方法 | 描述 | 舉例 |
|---|---|---|
| 數(shù)組連接concat() | 用于連接兩個(gè)或多個(gè)數(shù)組。此方法返回一個(gè)新數(shù)組,不改變?cè)瓉?lái)的數(shù)組。arrayObject.concat(array1,array2,...,arrayN)
|
類1var mya1 = new Array(1, 2, 3);document.write(mya1.concat(4, 5));//1,2,3,4,5類2 var mya1= new Array("hello!")var mya2= new Array("world");document.write(mya1.concat(mya2));
|
| 指定分隔符連接數(shù)組元素join() | 用于把數(shù)組中的所有元素放入一個(gè)字符串。元素是通過(guò)指定的分隔符進(jìn)行分隔的。arrayObject.join(分隔符)如果省略分隔符,則用逗號(hào) |
document.write(myarr3.join("-")); |
| 顛倒數(shù)組元素順序reverse() | arrayObject.reverse() |
document.write(myarr.reverse()) |
| 選定元素slice() | 可從已有的數(shù)組中返回選定的元素。arrayObject.slice(start,end)①返回一個(gè)新的數(shù)組,包含從 start 到 end (不包括該元素)的 arrayObject 中的元素。 ②該方法并不會(huì)修改數(shù)組,而是返回一個(gè)子數(shù)組。 ③可使用負(fù)值從數(shù)組的尾部選取元素。-1為最后一個(gè)元素 |
var myarr = new Array(1,2,3,4,5,6);document.write(myarr.slice(2,4) );//3,4 |
| 數(shù)組排序sort() |
arrayObject.sort(方法函數(shù))如果不指定<方法函數(shù)>,則按unicode碼順序排列。 |
function sortNum(a,b) {return a - b;}document.write(myarr.sort(sortNum));//升序 |
注意區(qū)分切片數(shù)組的slice和切片字符串的substring