關於咱們
QQ答疑交流羣:
600633658html
咱們的連接:前端
知乎 掘金 今日頭條 新浪微博 前端網 思否 簡書 B站正則表達式
什麼是對象
- 是由屬性以及屬性所對應的值組成的合集,是沒有順序的
- 除6種原始數據類型以外,全部的數據都是對象。
對象和原始類型區別segmentfault
- 對象有屬性,屬性所對應的值能夠是原始數據類型,也能夠是方法,還能夠是對象
-
對象有方法,方法是一種特殊的屬性,對應的值是一個函數,用於實現某種功能,因而可知函數也是對象。數組
(回顧爲何String Number Boolean也可使用方法或者調用屬性)
- 對象是可變的,改變的本質是對象屬性發生了變化。
對象的分類
內部對象瀏覽器
- 錯誤對象:Error
- 本地對象:Boolean String Number Array Date Function Object RegExp
- 內置對象:解釋器內置,不須要使用New global Math Json
宿主對象函數
運行環境提供的對象:window documentspa
自定義對象code
開發者本身建立的對象htm
原始類型轉換到對象
- Object(true)----{[[PrimitiveValue]]: true}
- Object(123)----{[[PrimitiveValue]]: 123}
- Object("abc")——{0:'a',1:'b',2:'c',length:3,[[PrimitiveValue]]: true}
- Object(null)----{}
- Object(undefined)----{}
(聯繫上文對象和原始類型區別)
對象上的兩個基礎方法
toString
- 將當前對象用字符串表示出來。
-
全部的內部對象和宿主對象都重寫了toString方法。
- Boolean String Number直接返回對應的字符串。
- Array:爲數組的每一項調用toString方法並將結果用逗號鏈接
- Date:返回一個由日期和時間組成的字符串(不一樣的環境下結果不同)
- Function:返回函數體內部的源碼
- Object:返回[object object]
- RegExp:返回正則表達式的直接量字符串(帶轉義符)
- 能夠接受一個2~36的數字做爲參數,表示須要轉換的內容是幾進制的
valueOf
- 有原始值返回原始值
- 沒有原始值返回自己
- Date對象返回距離1970年1月1日0點的毫秒數
對象轉換到原始類型
- Boolean:全部的對象轉換到布爾類型都爲true.(JS中只有6個值能轉成false)
- String:先調用toString方法,再調用valueOf方法
- Number:先調用valueOf方法,再調用toString方法
如何建立一個對象
-
使用字符字面量的方式(最簡單)
var o={age:123}
注意:屬性名中若是有空格,連字符,關鍵字或者保留字的時候必須使用引號(在ES5中保留字能夠不使用引號,可是不建議這麼作)最後一個逗號須要刪除,不然在IE7及如下的瀏覽器中會報錯
-
使用new操做符(最標準)
var o=new Object()
var s=new String(‘abcd’)
var n=new Number(123)
var a=new Array(3)
var d=new Date(2017/04/15)
var a=new Array 沒有參數的時候能夠不寫括號
-
使用ES5中的新方法(最精確,最麻煩)
Object.creat()
接受兩個參數:1要繼承的原型,2對象的詳細描述
對象的屬性的獲取
兩種寫法:點或者方括號,點後面放屬性名稱,括號裏面放表達式
屬性獲取過程詳解
當JS的解釋器在代碼中遇到「.」或者 「[ ]」的時候將進行如下操做
- 對「.」或者 「[ ]」前面的表達式進行計算並獲取結果
- 若是是undefined或null直接報錯
- 若是不是對象就轉換成對應的對象
- 若是是「.」,則查找對應的屬性
- 若是是 「[ ]」,先計算「[ ]」裏面的表達式,再將結果轉換爲字符串,並查找對應的屬性
- 若是該屬性存在則返回對應的值
- 若是該屬性不存在則返回undefined