第五章 引用類型前端
也稱爲對象定義,描述的是一類對象所具備的屬性和方法正則表達式
1.Object:基礎類型,其餘全部類型都從Object繼承了基本的行爲數組
建立實例方式 a.var person=new Object();b.對象字面量var person={函數
name:「nicomeds」,測試
age:29spa
};指針
2.Array:是一組值的有序列表,同時還提供了操做和轉換這些值的功能對象
建立方法:a.var colors=new Array();b.var colors=["red","yellow","blue"];排序
檢測數組:a.if(value instanceof array){};b.if(Array.isArray(value)){}繼承
棧方法(LIFO):push——返回修改後的數組長度;pop()——返回最後一項;
隊列方法(FIFO):shift()——移除第一項並返回該項;push();
unshift()——在數組前端添加任意個項並返回數組長度;pop();
重排序方法:reverse()——反序;sort()——升序;
操做方法:array1.concat(「yellow」,[「ll」]);//鏈接
colors.slice(1,4);//返回給定數組的指定項
splice():splice(0,2)——刪除,傳入刪除位置和項數;splice(2,0,「lll」)——插入,傳入位置,刪除項數,插入項; splice(2,1,"red")——替換
位置方法:indexOf()和lastindexOf()
3.Date提供有關時間和日期的信息,包括當前日期和時間以及相關計算
var Today =new Date();
Date.parse()/接受一個表示日期的字符串參數,返回相應日期的毫秒數
4.正則表達式
1.1 普通字符
字母、數字、漢字、下劃線、以及後邊章節中沒有特殊定義的標點符號,都是"普通字符"。
1.2 簡單的轉義字符
一些不便書寫的字符,採用在前面加 "/" 的方法。eg://表明 "/" 自己,
/^ |
匹配 ^ 符號自己 |
/$ |
匹配 $ 符號自己 |
/. |
匹配小數點(.)自己 |
1.3 可以與 '多種字符' 匹配的表達式
/d |
任意一個數字,0~9 中的任意一個 |
/w |
任意一個字母或數字或下劃線,也就是 A~Z,a~z,0~9,_ 中任意一個 |
/s |
包括空格、製表符、換頁符等空白字符的其中任意一個 |
. |
小數點能夠匹配除了換行符(/n)之外的任意一個字符 |
1.4 自定義可以匹配 '多種字符' 的表達式
使用方括號 [ ] 包含一系列字符,可以匹配其中任意一個字符。用 [^ ] 包含一系列字符,則可以匹配其中字符以外的任意一個字符。
1.5 修飾匹配次數的特殊符號
{m,n} |
表達式至少重複m次,最多重複n次,好比:"ba{1,3}"能夠匹配 "ba"或"baa"或"baaa" |
{m,} |
表達式至少重複m次,好比:"/w/d{2,}"能夠匹配 "a12","_456","M12344"... |
? |
匹配表達式0次或者1次,至關於 {0,1},好比:"a[cd]?"能夠匹配 "a","ac","ad" |
+ |
表達式至少出現1次,至關於 {1,},好比:"a+b"能夠匹配 "ab","aab","aaab"... |
* |
表達式不出現或出現任意次,至關於 {0,},好比:"/^*b"能夠匹配 "b","^^^b"... |
1.6 其餘一些表明抽象意義的特殊符號
^ |
與字符串開始的地方匹配,不匹配任何字符 |
$ |
與字符串結束的地方匹配,不匹配任何字符 |
/b |
匹配一個單詞邊界,也就是單詞和空格之間的位置,不匹配任何字符 |
一些符號能夠影響表達式內部的子表達式之間的關係:
| |
左右兩邊表達式之間 "或" 關係,匹配左邊或者右邊 |
( ) |
(1). 在被修飾匹配次數的時候,括號中的表達式能夠做爲總體被修飾 |
2.定義正則表達式
2.1)普通方式:var reg=/表達式/附加參數
表達式:一個字符串,表明了某種規則,其中可使用某些特殊字符,來表明特殊的規則,後面會詳細說明。
附加參數:用來擴展表達式的含義,目前主要有三個參數:
g:表明能夠進行全局匹配。
i:表明不區分大小寫匹配。
m:表明能夠進行多行匹配。
2.2)構造函數方式:var reg=new RegExp(「表達式」,」附加參數」);
普通方式中的表達式必須是一個常量字符串,而構造函數中的表達式能夠是常量字符串,也能夠是一個js變量
3,表達式操做
3.1>exec(str),返回str中與表達式相匹配的第一個字符串,並且以數組的形式表現
3.2>test(str),判斷字符串str是否匹配表達式,返回一個布爾值
eg:測試郵箱
function checkMail(mail)
{
var filter=/^([a-zA-Z0-9_\.\-])+\@([a-zA-Z0-9\-]+\.)+([a-zA-Z0-9]{2,4})+$/;
if(filter.test(mail))
return true;
else
return false;
}
5.函數:Function類型的實例,函數也是對象
沒有重載
函數聲明:function sum(num1,num2){//函數提高,率先讀取函數聲明
return num1+num2;}
函數表達式:var sum=function(num1,num2){
return num1+num2;
};
注:使用不帶圓括號的函數名是訪問函數指針,而非調用函數
(具體的見筆記2)
6.基本包裝類型:基本類型值能夠被當作對象來訪問
三種基本包裝類型分別是:boolean,number,string
特徵:
a.每一個包裝類型都映射到同名的基本類型
b.在讀取模式下訪問基本類型值時,就會建立對應的基本包裝類型的對象,方便數據操做
c.操做基本類型值的語句一經執行完畢,就會當即銷燬新建立的包裝對象
7.單體內置對象
Global對象:eval()方法:只接受一個參數——既要執行的ECMAscript字符串,
經過eval()執行的代碼被認爲是包含該次調用的執行環境的一部分,
eval()中建立的任何變量和函數都不會提高
Window對象
Math對象