Javascript進階程式設計第二版第五章–參考型別–筆記

來源:互聯網
上載者:User

5.1 Object 類型

建立Object執行個體有兩種方式

1.       使用new

var person = new Object();

person.name = ‘豪情’;

person.age = 29;

2.       使用對象字面量方式

var person = {

         name: ‘豪情’,

         age:29

}

 

5.2 Array 類型

建立數組有兩種

var arr = new Array();

var arr2 = [];

數組的length 不是唯讀,是唯寫的

5.2.1 轉換方法

toLocaleString(), toString()和valueOf()

join 方法重現了toString(),不同的分隔字元來分隔然後按字串形式返回數組。

var num = [1 , 2, 3];

alert(num.join(‘--’)); // output 1--2--3

5.2.2 棧方法

數組可以像棧一樣,棧是一種可以限制插入和刪除項的資料結構。保持後進先出的原則。

數組的插入或移除只發現在棧的頂部。

a)         push() 添加到數組的末尾

b)         pop() 從數組末尾移除最後一項,然後返回移除的項

5.2.3 隊列方法

隊列的資料結構是先進先出。

         shift() 移除數組中的第一個項並返回該項

         unshift() 能在數組前端添加任意個項並返回新數組的長度

5.2.4 重排序方法

         reverse() 反轉數組項的順序

         sort() 預設按升序排列數組項,也可以接受一個比較函數做為參數

5.2.5 操作方法

a)         concat() 如果傳遞給concat()方法的是一或多個數組,則該方法會將這些數組中的每一項都添加到結果資料中。如果傳遞的不是數組這些值會被簡單地添加到結果數組的末尾。

b)         slice(a, b) 參數表示返回項的起始和結束位置,如果只有一個參數,則返回指定位置開始到當前數組末尾的所有項。

c)         splice(a, b, c)

                         i.              當有兩個參數時:要刪除第一項的位置,或刪除的項數

                       ii.              當有三個參數時:替換。3個參數分別表示的意思是:起始位置,要刪除的項數和要插入的項,  當刪除項為0時,只插入不刪除。

 

這裡在和string的幾個方法比較一下,以免記錯:

slice 既可用於array,也可用於string

substring,substr只可用於string

substring,slice有兩個參數,第二個參數表示位置,其實splice,substr第二個參數都表示長度。

substring,slice,substr,2個參數時,slice,substr 2個可以為負,為負是計算位置(length + value),substring則視為0

 

splice() 方法與 slice() 方法的作用是不同的,splice() 方法會直接對數組進行修改。

slice可用於字串,splice則不可用於字串。

這裡邊也有幾個簡單的例子:

http://hi.baidu.com/jinwb/blog/item/b6a4ac4b2f7ae2fb83025c38.html

 

5.3 Date類型

Date.parse()

接收一個表示日期的字串參數,嘗試根據這個字串返回相應日期的毫秒數。

5.3.1 繼承的方法

重寫了toLocaleString(),toString(),valueOf()

5.3.2 日期格式化方法

toDateString(); //星期幾,月日和年

toTimeString(); // 時分秒和時區

toLocaleDateString(); //特定於地區的格式顯示星期幾,月日和年

toLocaleTimeString(); //特定於時分秒

toUTCString()  //特定於實現的格式完整的UTC日期

5.3.3 日期/時間組件方法

getTime() //日期毫秒數

setTime();//設定毫秒數

getFullYear():// 取得4位元的年份

5.4 RegExp類型

正則的匹配模式:

g—表示全域(global)

i—表示不區分大小寫(case-insensitive)

m—表示多行(multiline)

5.4.1 轉換方法

global—布爾值,是否設定了g標誌

ignoreCase—布爾值,是否設定了i標誌

lastIndex—整數,表示開始搜尋下一個匹配項的字元位置,從0算起

multiline—布爾值,表示是否設定了m標誌

source—Regex的字串表示,按照字面量形式返回

5.4.2 RegExp執行個體方法

exec(): 返回包含第一個匹配項資訊的數組

test(): 在模式與參數匹配的情況下,返回true,否則返回false

5.5 Function類型

函數實際上是對象,每個函數都是Function類型的執行個體,既然是對象,就會有屬性和方法,而且函數名實際上是指向函數對象的一個指標。

function sum(){return arguments[0] + arguments[1]} //第一次先行編譯檢查文法並執行

var sum = function(){return arguments[0] + arguments[1]} //第一次先行編譯檢查文法不執行,只有當調用時才執行

函數的內部屬性,

arguments,this

arguments是like array對象,有數組的屬性,比如,有長度也可用下標來訪問,但是它不是數組。

arguments.callee調用自身

this是指向當前函數,用call,apply動態改變this指向.

5.6 基本封裝類型

Boolean, Number和String

5.6.1 Boolean類型

Boolean類型是與布爾值對應的參考型別。

typeof 基本類型返回 Boolean

對參考型別則返回 object

5.6.2 Number類型

number類型是數字值對應的參考型別。

toString(基數) 返回幾進位數值的字串形式

toFixed(num) 返回num位小數

toExponential() 返回以指數表示的數值的字串形式

5.6.3 String類型

String類型是字串的對象封裝類型

1.      字元方法

charAt()以單字元字串的形式返回給定位置的那個字元

charCodeAt() 返回字元編碼

2.      字串操作方法

concat() 用於將一或多個字串拼接起來,返回拼接得到的新字串

slice,substr,substring在前面已做過比較,不多述

3.      字串位置方法

indexOf():從一個字串中搜尋給定的子字串位置,返回子字串的位置,如果沒有找到則返回-1;它從開關後向搜尋子字串,而lastIndexOf()從字串末尾向前搜尋

4.      字串大小寫轉換方法:

toLowerCase() 轉換為小寫

toUpperCase() 轉換為大寫

5.      字串模式比對方法

match() 本質上與exec()方法相同,match只接受一個參數,要麼是Regex,要麼是一個RegExp對象

search()尋找模式,返回字串中第一個匹配項索引,如果沒有找到則返回-1

replace()第二個參數還可以是一個函數

6.      localeCompare() 比較兩個字串位置7.     fromCharCode() 接受多個字元編碼然後把它們轉換成一個字串5.7.1 Global 類型

有isNaN(), isFinite(), parseInt(), parseFloat()

URI編碼方式

encode() 不會對本身屬於URI的特殊字元進行編碼,如冒號,正斜杠

encodeURIComponent() 會對它發現的任何非標準字元進行編碼

5.7.2 Math 類型

Math.PI π的值

Math.LN2 2的自然對數

 

Math.ceil(),向上舍入

Math.floor(),向下舍入,

Math.round(),正常舍入

 

Math.random()返回介於0和1之間的隨機數

其它:

Math.abs(num); //num絕對值

Math.sin(x);

Math.cos(x);

Math.tan(x);

Math.exp(num); //Math.E的num次冪

Math.log() //num 的自然對數

Math.pow() //num的power次冪

Math.sqrt(num) //num的平方根

Math.acos(x) //返回x的反餘弦值

Math.asin(x) //返回x的反正弦值

Math.atan(x) //返回x的反正切值

Math.atan2(y,x) //返回y/x的反正切值

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.