《JavaScript 語言精粹》 學習筆記 —— 第八章 方法

來源:互聯網
上載者:User

第八章 方法

8.1、Array
array.concat(item...)
,返回一個新數組(淺拷貝),是由把指定的所有參數添加到array中構成的。
注1:可有1個或多個參數,如果參數是數組,數組的每個元素會被分別添加。
注2:它不修改array,返回的是一個新數組。
例子:

a.concat(4,[5, [6,7]]);    // Returns [1,2,3,4,5,[6,7]]

array.join(separator),返回一個字串,用 separator 分隔字元把它們串連在一起。預設分隔符號是半形逗號','。
array.pop(),返回 array 中最後一個元素,並移除它,數組長度減1。
註:如果 array 是空的,則不改變 array,返回undefined。
例子:
方法pop()和它的伴隨方法push()可以提供先進後出(FILO)棧的功能:

var stack = [];    // stack: []stack.push(1, 2);  // stack: [1,2]    Return 2stack.pop();       // stack: [1]    Return 1stack.push(4, 5);  // stack: [1,[4,5]]    Return 2stack.pop();       // stack: [1]    Return [4,5]stack.pop();       // stack: []    Return 1

array.push(item...),返回 push 後新數組的長度,它將一個或多個參數 item 附加到 array 的尾部。
注1:該方法不建立新的數組,而是直接修改原有的array。
注2:如果 item 是數組,會將參數數組作為單個元素添加之(此與concat不同)。
array.reverse(),返回反轉後的 array 數組。
注1:它在原數組上實現這一操作作為替代:重排指定的array的元素,但並不建立新數組。
注2:如果對array有多個引用,那麼通過所有引用都可以看到數組元素的新順序。
array.shift(),返回 array 中第一個元素,並移除它,並且將餘下的所有元素前移一位,以填補數組頭部的空缺。
注1:如果 array 是空的,將不進行任何操作,返回undefined。
注2:shift 通常比 pop 慢很多。
注3:該方法不建立新的數組,而是直接修改原有的array。
array.slice(start, end),返回一個淺複製後的新數組(不包括array[end]元素)。它對 array 中的一段作淺複製,第一個被複製的元素是 array[start],一直複製到 array[end]。
注1:start如果是負數,為從數組尾部開始算起的位置。也就是說-1指最後一個元素,-2指倒數第二個元素,以此類推。
注2:end如果沒有指定,預設為 array.length,即切分的數組包含從start開始到數組結束的所有元素。如果這個參數是負數,它聲明的是從數組尾部開始算起的元素。
注3:返回的新數組不包括array[end]。
注4:如果 start 大於 array.length,返回一個空數組。
注5:該方法並不修改數組。如果想刪除數組中的一段元素,應該使用方法Array.splice()。
注6:在Internet Explorer 4中,參數start不能為負數。這在IE的最新版本中已經更正。
例子:

var a = [1,2,3,4,5];a.slice(0,3);    // Return [1,2,3]a.slice(3);    // Return [4,5]a.slice(1,-1);    // Return [2,3,4]a.slice(-3,-2);    // Return [3]; buggy in IE 4: return [1,2,3]

array.sort(compareFn),對數組 array 的內容按比較函數進行排序,它不能正確地給一組數字進行排序。
注1:javascript預設的比較函數假定所有要被排序的元素都是字串,所以比較的時候會將其先轉化成字串;
注2:比較函數接受兩個參數,如果兩個參數相等則返回0,如果第一個參數應該排列在前面,則返回一個負數,如果第二個參數應該排列在前面,則返回一個正數。
例子:

var n = [4, 8, 15, 16, 23, 42];n.sort(); // n 是 [15, 16, 23, 4, 42, 8]n.sort(function() {return a - b;});// n 是 [4, 8, 15, 16, 23, 42];

array.splice(start, deleteCount, item...),從數組 array 中刪除1個或多個元素,並用心的item代替它們。返回一個包含移除元素的數組。
例子:

var a = ['a', 'b', 'c'];var r = a.splice(1, 1, 'ache', 'bug');// a 是 ['a', 'ache', 'bug', 'c'];// r 是 ['b'];

array.unshift(item...),像 push 方法一樣用於將元素添加到數組中,但它是把 item 插入到 array 的開始部分而不是尾部。它返回 array 的新的長度值。
例子:

var a = ['a', 'b', 'c']; // a 是 ['?', '@', 'a', 'b', 'c']var r = a.unshift('?', '@'); // r 是5

8.2、Function
function.apply(thisArg, argArray),此方法調用函數 function,傳遞一個將被綁定到 this 上的對象和一個可選的參數數組。apply 方法被用在 apply 調用模式中。
8.3、Number
number.toExponential(fractionDigits),把 number 轉換成一個指數形式的字串。 選擇性參數 fractionDigits 控制其小數點後的數字位元。它的值必須在 0 至 20 之間。

document.writeln(Math.PI.toExponential(0)); // 3e+0document.writeln(Math.PI.toExponential(2));  // 3.14e+0document.writeln(Math.PI.toExponential(7));  // 3.1415927e+0document.writeln(Math.PI.toExponential(16)); // 3.1415926535897930e+0document.writeln(Math.PI.toExponential());  // 3.141592653589793e+0

number.toFiexd(fractionDigits),把 number 轉換成一個十進位數形式的字串。選擇性參數 fractionDigits 控制其小數點後的數字位元。它的值必須在 0 至 20 之間。預設為0:

document.writeln(Math.PI.toFixed(0)); // 3document.writeln(Math.PI.toFixed(2));  // 3.14document.writeln(Math.PI.toFixed(7));  // 3.1415927document.writeln(Math.PI.toFixed(16)); // 3.1415926535897930document.writeln(Math.PI.toFixed());  // 3

number.toPrecision(precision),把 number 轉換成一個十進位形式的字串。選擇性參數 precision 控制有效數位位元。它的值必須在 0 到 21 之間。

document.writeln(Math.PI.toPrecision(2));  // 3.1 document.writeln(Math.PI.toPrecision(7));  // 3.141593 document.writeln(Math.PI.toPrecision(16)); // 3.141592653589793 document.writeln(Math.PI.toPrecision());  // 3.141592653589793

number.toString(radix),將 number 轉換成一個字串。選擇性參數 radix 是控制基數。它的值必須在 2 和 36 之間。預設 radix 是以 10 為基數的。

document.writeln(Math.PI.toString(2));  // 11.001001000011111101101010100010001000010110100011document.writeln(Math.PI.toString(8));  // 3.1103755242102643 document.writeln(Math.PI.toString(16)); // 3.243f6a8885a3document.writeln(Math.PI.toPrecision());  // 3.141592653589793 

8.4、Object
object.hasOwnProperty(name),如果這個 object 包含了一個名為 name 的屬性,返回 true。
注1:原型鏈中同名屬性是不會被檢查的。
注2:對 name 就是 hasOwnProperty 時不起作用, 此時會返回 false。
8.5、RegExp
regexp.exec(string)
,exec 方法使用Regex的最強大(和最慢)的方法。如果它成功地匹配 regexp 和字串 string,它會返回一個數組。數組中下標為 0 的元素將包含Regex regexp 匹配的子字串。下標為 1 的元素是分組 1 捕獲的文本,下標為 2 的元素是分組 2 捕獲的文本,以此類推。如果匹配失敗,返回 null。
regexp.test(string),test 方法使用Regex的最簡單(和最快)的方法。如果它成功地匹配 regexp 和字串 string,它返回 true。不要對這個方法使用 g 標識。
8.6、String
string.charAt(pos),返回在 string 中 pos 位置處的字元。pos 小於 0 或大於等於字串的長度,返回Null 字元串。
string.charCodeAt(pos),返回在 string 中 pos 位置處的字元碼位。pos 小於 0 或大於等於字串的長度,返回NaN。
string.indexOf(searchString, position),在 string 中尋找另一個字串 searchString。如果它被找到,則返回第一個被匹配字元的位置,否則返回-1。position 表示尋找的起始位置。
string.lastIndexOf(searchString, position),與 indexOf 方法類型,但它是從該字串的末尾開始尋找。
string.localeCompare(that),比較兩個字串。如果 string 比 that 小,結果為負數。如果他們相等,結果為0。
string.match(regexp),它匹配一個字串和一個Regex。它依據 g 標識來決定如何進行匹配。如果沒有 g 表示,那麼調用 string.match(regexp) 的結果與調用 regexp.exec(string)的結果相同。然而,如果 regexp 帶有一個 g 標識,那麼它返回一個包含除捕獲分組之外的所有匹配的數組。
string.replace(searchValue, replaceValue),對 string 進行尋找和替換操作,並返回一個新的字串。
注1:searchValue 可以是一個字串或一個正在運算式。
注2:如果 searchValue 是一個Regex並且帶有 g 標誌,那麼它將替換所有匹配之處。如果沒有,僅替換第一個匹配之處。
注3:replaceValue 可以是一個字串或一個函數。如果 replaceValue 是一個字串,字元 $ 擁有特別的含義:

  $$:     $

  $&:     整個匹配的文本
  $number:  分組捕獲的文本
  $`:      匹配之前的文本
  $':      匹配之後的文本
如果 replaceValue 是一個函數,此方法將對每個匹配依次調用它,並且該函數返回的字串將被用作替換的文本。傳遞給這個函數的第一個參數是整個被匹配的文本。第二個參數是分組 1 捕獲的文本,下一個參數是分組 2 捕獲的文本,以此類推。
string.slice(start, end),slice 方法複製 string 的一部分來構造一個新的字串。
注1:如果 start 參數是負數,它將與 string.length 相加。
注2:end參數是可選的,它的預設值是 string.length。
注3:如果 end 參數是負數,它將與 string.length 相加。
string.split(separator, limit),split 方法把這個 string 分隔成片段來建立一個字串數組。
注1:limit 可以限制被分割的片段數量。

var digits = '0123456789';var a = digits.split('', 5);// a 是 ['0', '1', '2', '3', '456789']

注2:separator 參數可以是一個字串或一個Regex。
string.substring(start, end),和 slice 方法一樣,只是它不能處理負數參數。沒有任何理由使用 substring 方法,建議用 slice 替代。
string.toLocaleLowerCase(),返回一個使用本地化規則把 string 中的所有字母轉換為小寫格式。
註:這個方法主要用在土耳其語上,因為在土耳其語中'I'轉換為'1',而不是'i'。
string.toLocaleUpperCase(),返回一個使用本地化規則把 string 中的所有字母轉換為大寫格式。也是主要用在土耳其語上。
string.toLowerCase(),返回一個所有字母都變為小寫新字串。
string.toUpperCase(),返回一個所有字母都變為大寫的新字串。
string.fromCharCode(char...),從一串數字中返回一個字串。

var a = String.fromCharCode(67, 97, 116); // a 是 'Cat'

小結:這一章中主要介紹了JavaScript中6大對象基本所擁有的基本方法,比較系統,也枯燥無味!

轉載請註明出處:http://blog.csdn.net/xxd851116/article/details/7710004

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.