1. 程式人生 > >【web】javascript基礎鞏固——引用型別(二)

【web】javascript基礎鞏固——引用型別(二)

引用型別

1 引用型別是一種資料結構,從技術上講是一門面向物件的語言,但是不具備傳統的面向物件的語言所支援的類和介面等基本結構。
2 建立object例項有兩種方式:第一種使用new操作符後跟object建構函式;另一種是使用物件字面量表示法。物件字面量是物件定義的一種簡寫形式。
3 訪問物件的屬性有兩種方式:點表示法和方括號。方括號的主要優點是可以使用變數來訪問屬性。
4 Array型別:

  • 陣列的每一項都可以儲存任何型別的資料
  • 陣列的length屬性不是隻讀的,因此通過設定這個屬性,可以從陣列的末尾移除項或新增項。
  • 檢測陣列:value instanceof Array 或者 Array.isArray()
  • 轉換方法:toString()-返回的值用逗號分隔。valueOf(), toLocaleString()
  • join()方法-使用不通分隔符構建字串
  • 棧方法:陣列可以表現的像棧一樣,可以限制插入和刪除項的結構,push()和pop()方法
  • 佇列方法:資料為了表現的像佇列,從列表的前端移除項,實現這一操作的方法是shift(),它能夠移除陣列中第一項並返回該項,同時陣列長度減去1
  • 重排序方法:reverse():反轉順序,sort():預設升序排列,最小的值在最前面,為了實現排序,sort會呼叫每個陣列項的tostring()轉型方法,然後比較字串。原始陣列改變。
var value
=[1,2,3,4,5,6] value.sort(function(x,y){ return x>y })
  • 操作方法:

    • concat(): 複製當前陣列並將收到的引數新增到末尾 colors. concat (‘1’,’2’,’3’)//原陣列不變
    • slice(): 接受一個或兩個引數,即要返回值的起始和結束位置,不會改變原陣列。
    • splice():會改變原陣列,並始終返回一個數組,陣列包含刪除的項

      • 刪除:指定兩個引數:要刪除的第一項的位置和要刪除的項數:splice(0,2)會刪除前兩項。
      • 插入:提供三項:起始位置,0(要刪除的項),和要插入的項。splice(2,0,’red’,’green’):從當前陣列的位置2插入字串‘red‘,green。
      • 替換:指定三個引數:起始位置,要刪除項數,要插入的引數。
  • 位置方法:indexOf(),lastIndexOf()這兩個方法都接受兩個引數,要查詢的項和表示查詢起點位置的索引,其中,indexof()方法從陣列開頭向後查詢,lastindexof從陣列的末尾向前查詢。這兩個方法都返回要查詢的項在陣列的位置。

  • 歸併方法:reduce()/reduceRight()從第一項開始,遍歷到最後/相反。接受四個引數,前一個值,當前值,項的索引和陣列物件。
  • 迭代方法:5個迭代方法每個方法都接受兩個引數,要在每一項上執行的函式和執行該函式的作用域物件,傳入這些方法的函式會接受三個引數,陣列項的值,該項在陣列中的位置和陣列物件本身。
    • every()
    • some()
    • filter()
    • forEach()
    • map()

5 Date型別

  • Date.parse():接受日期的字串引數,然後嘗試轉換為毫秒數
  • Date.now():呼叫這個方法的日期和時間和毫秒數
  • Date.toString():eg:”Thu Dec 14 2017 16:46:50 GMT+0800 (CST)”

注:沒有直接的毫秒數轉成特定日期格式的函式,需要自己寫

6 RegEXP型別
g:表示全域性模式
i:表示不區分大小寫
m:表示多行模式
var pattern = /pattern/flags
7.函式

  • 函式是物件,函式名是指向物件的指標
  • 函式內部屬性:argument,this

    遞迴中使用:argument.callee指向函式名 
    
  • 函式的屬性:length和prototype屬性。

    **prototype屬性中儲存了所有的例項方法**    
    
  • 函式的方法:apply()和call()
    傳遞引數並非其真正用武之地,真正強大的地方是能夠擴充函式賴以執行的作用域最大的好處,就是物件不需要與方法有任何耦合的關係。
    bind():建立函式的例項。
    8 基本包裝型別
    三個特殊的引用型別:boolean, number,string
    Number:
    num.toFixed()會按照指定的小數位返回數值的字串表示。
    num.toExponential(1)接受一個引數,該引數同樣也是指定輸出結果重的小數位數。
    num.toPrecision()
    String:

  • 字元方法:str.charAt(1);//輸出該索引下的字元
    str.charCodeAt(1)//輸出該索引下的字元編碼/或者直接用方括號。

  • 字串方法:concat()(一般用加號)

    • slice()
    • substr()
    • substring()
  • 字串位置方法:indexOf(),lastIndexOf()

  • trim()方法:建立一個字串的副本,刪除前置及字尾的所有空格,然後返回結果。
  • 字串大小寫轉換:

    • toLowerCase()
    • toLocaleLowerCase()
    • toUpperCase()
    • toLocaleUpperCase()
  • localeCompare()比較字串是否相等(相等則為0)

  • fromCharCode()
  • 單體內建物件:除了以上的內建物件外,又定義了兩個單體物件:Global和Math
  • Global:內建方法:encodeURI()和encodeURIComponent()方法(為了去除無效字元);
    decodeURI(),decodeURIComponent()

  • Global物件的屬性:undefined,NAN,Infinity…一些內建對像…..